我是Python新手,我试着弄清楚每件事是如何工作的。我对scipy.optimize包的最小化函数有一个小问题。我试图用一些起始值最小化给定函数,但python给了我非常高的参数值。 这是我的简单代码:
import numpy as np
from scipy.optimize import minimize
global array
y_wert = np.array([1,2,3,4,5,6,7,8])
global x_wert
x_wert = np.array([1,2,3,4,5,6,7,8])
def Test(x):
Summe = 0
for i in range(0,len(y_wert)):
Summe = Summe + (y_wert[i] - (x[0]*x_wert[i]+x[1]))
return(Summe)
x_0 = [1,0]
xopt = minimize(Test,x_0, method='nelder-mead',options={'xatol': 1e-8, 'disp': True})
print(xopt)
如果运行此脚本,最佳给定参数为:
[1.02325529e+44, 9.52347084e+40]
这并不能解决这个问题。我也尝试了一些稍微不同的StartValue,但这并不能解决我的问题。 谁能给我一个线索,说明我的错误在哪里? 非常感谢你的帮助
你的测试函数实际上是一条带负梯度的直线,所以没有最小值,它是一个无限递减的函数,这解释了你的大结果,试试x平方之类的
相关问题 更多 >
编程相关推荐