vis*_*tor 16 scipy least-squares levenberg-marquardt
SciPy为非线性最小二乘问题提供了两个函数:
optimize.leastsq()
仅使用Levenberg-Marquardt算法.
optimize.least_squares()
允许我们选择Levenberg-Marquardt,Trust Region Reflective或Trust Region Dogleg算法.
我们应该总是用least_squares()
而不是leastsq()
吗?
如果是这样,后者的目的是什么?
小智 18
我们应该总是使用least_squares()而不是leastsq()吗?
是.
如果是这样,后者的目的是什么?
向后兼容性.
该least_squares
功能是0.17.1中的新功能.它的文档是指leastsq
作为
用于Levenberg-Marquadt算法的MINPACK实现的传统包装器.
当方法被选为'lm'时,实际调用的原始提交引入.但贡献者(Nikolay Mayorov)随后决定least_squares
leastsq
如果我向MINPACK函数编写一个新的包装器,而不是调用leastsq,那么least_squares可能会感觉更加可靠和均匀.
所以他做到了.因此,leastsq
不再需要least_squares
,但我希望它至少保留一段时间,以避免破坏旧代码.