Python:使用scipy优化最小化并不会最小化函数

Python:使用scipy优化最小化并不会最小化函数,python,numpy,scipy,scipy-optimize-minimize,Python,Numpy,Scipy,Scipy Optimize Minimize,我是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

我是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平方的方法,而不是

您希望最小化和的绝对值。您的代码将负和最小化为-∞. 在
Test
do:
return(abs(Summe))
。还可以看看输出的消息,它通常是非常有价值的信息。在解释结果之前,
success
字段需要检查。