Python scipy.optimize.least_squares是确定性的吗?

Python scipy.optimize.least_squares是确定性的吗?,python,scipy,deterministic,Python,Scipy,Deterministic,我使用的是scipy的优化。最小二乘法设置了初始条件,在我的计算机上总是得到相同的结果,但是如果我在任何其他计算机上尝试这个方法(都使用最新的scipy、Python和bumpy包以及相同的64位Ubuntu Linux),我在每台计算机上都会得到不同的结果。这是为什么 谢谢。答案是肯定的 正如你在网上看到的, 在优化上实现了3种方法 信赖域反射算法 具有矩形信赖域的dogleg算法 Levenberg-Marquardt算法 所有这些都是迭代方法,从初始值(或向量)开始,逐步到最小值。如何确定

我使用的是
scipy
优化。最小二乘法设置了初始条件,在我的计算机上总是得到相同的结果,但是如果我在任何其他计算机上尝试这个方法(都使用最新的scipy、Python和bumpy包以及相同的64位Ubuntu Linux),我在每台计算机上都会得到不同的结果。这是为什么

谢谢。

答案是肯定的

正如你在网上看到的, 在
优化上实现了3种方法

  • 信赖域反射算法
  • 具有矩形信赖域的dogleg算法
  • Levenberg-Marquardt算法
  • 所有这些都是迭代方法,从初始值(或向量)开始,逐步到最小值。如何确定该步骤因方法而异,但在所有方法中都是确定的。
    有关更多详细信息,您可以阅读此函数的开发人员编写的

    对不起,我不知道为什么在每台电脑上会得到不同的结果。

    默认情况下(如果
    diff\u step=None
    ),
    优化。最小二乘法使用与机器相关的步长进行有限差分近似[1]。对于一台特定的计算机,结果应该是确定的,但在另一台计算机上可能会有所不同

    除非存在其他机器相关参数,否则手动设置
    diff_step
    应在不同机器上产生相同的结果


    [1] 查看。

    您是否找到原因?