我正在使用scipy
的{{1}}算法设置初始条件,并且总是在我的计算机上得到相同的结果,但是如果我在任何其他计算机上尝试这个(所有计算机都使用最新的Scipy,Python,和颠簸的包和相同的64位Ubuntu Linux),我在每台PC上得到不同的结果。这是为什么?
谢谢。
答案 0 :(得分:0)
答案是肯定的。
正如您在document上找到的,
在optimize.least_squares
;
所有这些都是迭代方法,从初始值(或向量)开始,逐步进入最小值。如何确定此步骤与方法不同,但在所有方法中都是确定性的 有关更多详细信息,请阅读此函数的开发人员撰写的this blog。
我不确定为什么你会在每部电脑上得到不同的结果,抱歉。
答案 1 :(得分:0)
默认情况下(如果为diff_step=None
,optimize.least_squares
使用机器相关的步长作为有限差分近似[1]。对于特定计算机,结果应该是确定性的,但在另一台计算机上可能会有所不同。
除非存在其他与机器相关的参数,否则手动设置diff_step
应该在不同的机器上产生相同的结果。
[1]参见scipy documentation。