scipy.optimze.fmin_bfgs公司返回同一目标函数的不同结果

2024-04-20 08:36:09 发布

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

我使用scipy来最小化一些函数,但是遇到了一个奇怪的问题。问题是如果我跑了scipy.optimize.fmin_bfgs公司多次使用相同的目标函数和初始点,每次返回不同的结果。在

这是我的代码:

# objective function (a bit long, I know)
>>> def obj_fun(x):
...     x1, x2, x3, y1, y2, y3 = x[0], x[1], x[2], x[3], x[4], x[5]
...     return -(x1 * (y2 - y3) + x2 * (y1 - y3) + x3 * (y1 - y2)) ** 2.0 + 10240.0 * ((x1 ** 2.0 + 2.0 * x1 * y1 + 3.0
* y1 ** 2.0 - 1.0) ** 2.0 + (x2 ** 2.0 + 3.0 * x2 * y2 + 2.0 * y2 ** 2.0 - 3.0) ** 2.0 + (x3 ** 2.0 + 1.3 * x3 * y3 + 4.
0 * y3 ** 2.0 - 7.0) ** 2.0)

以及我如何称呼fmin_bfgs

^{pr2}$

请注意,我使用完全相同的目标函数和初始点调用fmin_bfgs,但它只是返回不同的结果。在

这会是什么?我怎样才能达到期望的行为?在

编辑:

我刚刚在一台有AMD A10-5750M处理器的计算机上测试了同样的代码,它工作了!!我也没在电脑里测试过!!我自己的电脑有一个Intel Core i3-2330M,当然不能用了。 这3台计算机运行在windows8.1上,安装了相同版本的python、numpy和scipy(分别为2.7、1.7.1和0.11.0)。在

我不知道这是否重要,但我已经疯了。在


Tags: 函数代码目标计算机scipyoptimizex1x2