我使用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
:
请注意,我使用完全相同的目标函数和初始点调用fmin_bfgs
,但它只是返回不同的结果。在
这会是什么?我怎样才能达到期望的行为?在
我刚刚在一台有AMD A10-5750M
处理器的计算机上测试了同样的代码,它工作了!!我也没在电脑里测试过!!我自己的电脑有一个Intel Core i3-2330M
,当然不能用了。
这3台计算机运行在windows8.1上,安装了相同版本的python、numpy和scipy(分别为2.7、1.7.1和0.11.0)。在
我不知道这是否重要,但我已经疯了。在
目前没有回答
相关问题 更多 >
编程相关推荐