|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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(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 算过函数,所以想不到其他便捷的方法
|
|