【发布时间】:2020-09-25 14:57:44
【问题描述】:
几周前,我开始在 Matlab 中从头开始编写 Levenberg-Marquardt 算法。我对数据的多项式拟合很感兴趣,但我无法达到我想要的准确度。在我尝试了其他多项式之后,我使用了五阶多项式,这似乎是最好的选择。无论我尝试实施什么改进,该算法总是收敛到相同的函数最小化。到目前为止,我没有成功添加以下功能:
- 测地线加速度项作为二阶校正
- 更新阻尼参数的延迟满足
- 接近高斯-牛顿方向的增益因子或 取决于迭代的最陡下降方向。
- 有限差分法的中心差分和正差分
我没有非线性最小二乘的经验,所以我不知道是否有办法进一步最小化残差,或者这种方法是否没有更多改进空间。我在下面附上最后一次迭代的多项式行为的图像。如果我运行代码进行更多迭代,则曲线最终不会在迭代之间发生变化。据观察,从时间 = 0 到时间 = 12 非常适合。但我无法修复从时间 = 12 到时间 = 20 的函数行为。非常感谢任何帮助。
【问题讨论】:
-
有代码可以分享吗?您对此方法使用的参考是什么?
-
发布您的代码会有所帮助;否则,我们看不到发生了什么。
-
据我所知,多项式拟合是一个线性问题,Levenberg-Marquardt 是矫枉过正。
标签: machine-learning regression numerical-methods non-linear-regression levenberg-marquardt