Matlab lsqcurvefit()函数的Python等价性

Matlab lsqcurvefit()函数的Python等价性,python,matlab,optimization,scipy,Python,Matlab,Optimization,Scipy,什么是与Matlab函数lsqcurvefit()等效或最接近的python函数(比如SciPy),该函数可以最小化数据和参数化函数(曲线)之间的平方误差 我知道scipy.optimize.curve_fit和scipy.optimize.leastsq很接近。然而,它们不使用信赖域相关最小二乘法。当然,我可以自己编写在算法之间切换的条件。但是,如果有现有的python代码,我就不必重新发明轮子。作者Nikolay Mayorov实现了一个信赖域反射算法,用于最小二乘优化,就像Matlab的一

什么是与Matlab函数lsqcurvefit()等效或最接近的python函数(比如SciPy),该函数可以最小化数据和参数化函数(曲线)之间的平方误差

我知道scipy.optimize.curve_fit和scipy.optimize.leastsq很接近。然而,它们不使用信赖域相关最小二乘法。当然,我可以自己编写在算法之间切换的条件。但是,如果有现有的python代码,我就不必重新发明轮子。

作者Nikolay Mayorov实现了一个信赖域反射算法,用于最小二乘优化,就像Matlab的一样

两者都是基于托马斯·科尔曼(Thomas F.Coleman)和李玉英(Yuying Li)的工作:

  • “受边界约束的非线性最小化的内部信赖域方法”,《暹罗优化杂志》,第6卷,418-445页,1996年,PDF格式

  • “关于有界的大规模非线性极小化的反射牛顿法的收敛性”,《数学规划》,第67卷,第2期,第189-224页,1994年,PDF格式


  • Matlab与Mayorov实现的实际算法可能存在一些差异,如后者所示。

    您的最终目标是什么?也许这会有帮助:?看看。其记录在@TrisNefzger建议的+1处。这应该在scipy的未来版本中提供。现在非常感谢你,特里斯·内夫茨格!这正是我要找的。这段代码似乎只使用内部信赖域反射算法,而没有在上述算法和Levenberg-Marquardt方法之间切换,Levenberg-Marquardt方法是Matlab函数lsqcurvefit()中使用的算法。当然,与内部信赖域反射算法的实现相比,这是一个小问题。我们可以编写一个小代码来切换自己。你会同意吗?@Hans:我想这是可能的,而且很快就会有单独的功能,可以导入共享或复杂功能的附加模块,例如从trust_region导入的trf.py。部分原因是某些函数的参数和选项集合对于我来说太复杂了,我更希望给定的functon只在较窄的范围内做一件事。无论如何,我不是在开发这个,如果你对SciPy有什么建议,请订阅它的邮件列表。两个小更正:1)更新版本是(现在)在Nikolay的公关中,我在评论中链接了。链接到的版本不是最终版本。2) 用户的主要入口点应该是
    最小二乘法
    ;trf.py是一个实现细节。@ev br:我看了一遍,但没有看到关于信赖域反射最小二乘法的任何内容,而信赖域反射最小二乘法是主要问题(SO 32261976)的“这一点”。trf.py可能是你大局中的一个相对细节;trust_region.py应该包括在内。@TrisNefzger:很明显,trf.py也包括在公关中,所以不清楚你在说什么。