如何在Python中正确使用fminsearch?

2024-09-27 09:35:39 发布

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

我正在尝试用python翻译我的一部分matlab代码。实际上,我正在寻找如何翻译fminsearch,我在这个网站上找到了这个例子:

import scipy.optimize

banana = lambda x: 100*(x[1]-x[0]**2)**2+(1-x[0])**2
xopt = scipy.optimize.fmin(func=banana, x0=[-1.2,1])

我的第一个问题是如何同时返回fmin的值?在

在我输入代码时:

^{pr2}$

Python回答我:

Xu = scipy.optimize.fmin(func=banana, X)
SyntaxError: non-keyword arg after keyword arg

我不明白Python为什么告诉我,因为我要做的是最小化函数diff_norm更改X的值,所以我精确地说,X是一个长度为10的数组。在

非常感谢你的帮助!在


Tags: lambda代码import网站argscipykeyword例子
1条回答
网友
1楼 · 发布于 2024-09-27 09:35:39

Python告诉您,因为在Python中,关键字参数总是跟在非关键字(即位置)参数后面(关键字参数有一个指定的名称,如fmin调用中的func)。函数调用应该如下所示:

Xu = scipy.optimize.fmin(func=banana, x0=X)

为了遵守Python's calling conventions。或者,根据function definition of ^{},您只能为这两个第一个参数提供位置参数:

^{pr2}$

这将返回最小化函数的值,因此,只需调用提供以下参数的函数:

minval = banana(Xu)

或者,您可以使用full_output = True调用fmin,并获得元素的元组,该元组的第二个元素是最小值:

_, minval, *_ = scipy.optimize.fmin(banana, X, full_output=True)

现在minval包含了完整的输出。在

相关问题 更多 >

    热门问题