python极值类问题
代码如下:import numpy as np
x = np.arange(0,10,0.001)
y = abs(x-0)+abs(x-1)+abs(x-2)+abs(x-2.5)+abs(x-10)
z = min(y)
print(z)
这个代码在给定的x范围内求出了y的极小值,请问大佬们这个时候该如何输出相对应的x呢?谢谢!! 本帖最后由 Twilight6 于 2020-6-16 07:17 编辑
你可以通过 y 函数写出 关于 x 的函数,然后将 z = min(y) 等于 y 的值 代入 x 函数中计算 x
或者这样:
import numpy as np
x = np.arange(0,10,0.001)
y = abs(x-0)+abs(x-1)+abs(x-2)+abs(x-2.5)+abs(x-10)
z = min(y)
print('函数 y 的最小值为:',z)
print('计算后的 y 中有%d个最小值'%list(y).count(min(y)) )
print('查找这个 y 所在的位置:',list(y).index(z)) # 因为只有一个 那么就直接查找就好
print('当 y 最小时 x 取值为:',0.001*list(y).index(z)) # 因为你步长都是 0.001那么查找出位置乘以 0.001 即可算出 x 的值
没怎么用 Python 算过函数,所以想不到其他便捷的方法
Twilight6 发表于 2020-6-16 07:16
你可以通过 y 函数写出 关于 x 的函数,然后将 z = min(y) 等于 y 的值 代入 x 函数中计算 x
或者 ...
abs是啥{:10_297:} 小甲鱼的铁粉 发表于 2020-6-16 08:46
abs是啥
Python 内置函数 算绝对值滴 Twilight6 发表于 2020-6-16 08:48
Python 内置函数 算绝对值滴
嗯{:10_256:} Twilight6 发表于 2020-6-16 07:16
你可以通过 y 函数写出 关于 x 的函数,然后将 z = min(y) 等于 y 的值 代入 x 函数中计算 x
或者 ...
谢谢兄弟,已经完美解决
页:
[1]