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

2024-09-27 09:22:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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,但这并不能解决我的问题。 谁能给我一个线索,说明我的错误在哪里? 非常感谢你的帮助


Tags: 函数testimportnpscipyarrayglobaloptimize
1条回答
网友
1楼 · 发布于 2024-09-27 09:22:48

你的测试函数实际上是一条带负梯度的直线,所以没有最小值,它是一个无限递减的函数,这解释了你的大结果,试试x平方之类的

相关问题 更多 >

    热门问题