我一直在尝试获得单个变量函数的最小值。功能是:
sym.sqrt((x+6)**2 + 25) + sym.sqrt((x-6)**2 - 121)
函数的导数(即 (x - 6)/sym.sqrt((x - 6)**2 - 121) + (x + 6)/sym.sqrt((x + 6)**2 + 25))由于第一项,x 等于 -5 ad 变得复杂,因为 x 大于(例如,-4)但小于 18(为了简单起见,我们可以在这里忽略)。因此,我编写的代码只评估 x 在 -6 和 -10 之间的函数(通过检查,我可以看到最小值在 -8.6 左右,所以我选择了 -10):
def h(x):
for x in np.arange(-10,-5):
sym.sqrt((x+6)**2 + 25) + sym.sqrt((x-6)**2 - 121)
result = optimize.minimize_scalar(h,bounds=(-10,-5))
x_min = result.x
print(x_min)
不幸的是,我收到了这个错误:
TypeError: 输入类型不支持 ufunc 'isnan',并且根据转换规则 ''safe'' 无法安全地将输入强制转换为任何支持的类型
有人可以帮我解决这个问题吗?
慕妹3146593
相关分类