'fitnlm'或'lsqcurvefit'用于非线性最小二乘回归?

时间:2014-03-20 23:40:51

标签: matlab regression

我试图使用最小二乘法将实验数据拟合到三次多项式方程。我有两个自变量和一个因变量,这使它成为一个非线性拟合。我用函数'fitnlm'和'lsqcurvefit'计算了系数,两者都推荐用于非线性回归拟合。虽然我输入了相同的初始系数(猜测)值,但我从两个函数中获得了不同的系数值。请建议两个功能中的哪一个更好,哪些系数可以信任。并且,如何在使用lsqcurvefit时检查均方根误差的值? 非常感谢任何帮助/建议/有用的评论。

1 个答案:

答案 0 :(得分:0)

根据this matlab central discussion,nlinfit(以及扩展fitnlm)使用Levenberg-Marquardt算法。另外,根据lsqnonlin的文档页面(这是lsqcurvefit的基础函数),默认算法是“信任区域反射”'但Levenberg-Marquardt也是一种选择。如果在lsqcurvefit函数中指定使用L-M算法选项,结果是否更符合您的fitnlm结果?

至于如何选择lsqcurvefit中哪个算法选项更好......这是科学中有趣的部分;)LM确实在其方法中融入了信任区域原则,因此可能有一些理论重叠,并且两者都被认为比Nelder-Mead更强大,所以我不能想到有利于一个人优先于另一个人。

编辑:Here是一个数学源,讨论了MATLAB使用的各种非线性方程求解算法。