多项式拟合的根老是不好求?MATLAB里的polyfit你已经用得滚瓜烂熟,但碰到高阶多项式,数值不稳定真让人头大。polyfitroots就挺适合你这种场景,直接帮你把根求出来,比自己倒腾稳多了。

polyfit_roots_drv.m是主程序,像个调度员一样,把你的数据传进去,再把结果整出来。写个脚本,调用它就行,逻辑清晰,接口也还挺好用。

核心算法在polyfit_roots.m,它不像原生polyfit那样只给系数,而是上来就帮你把根算好。你要是搞过数值方法,看到它用了牛顿法或者迭代法估计会会心一笑,挺地道的思路。

还有个arnoldi.m也挺有料,它用的是阿诺尔迪迭代法,搞过稀疏矩阵的肯定熟。目的是帮你搞 Krylov 子空间,从而更高效求解特征值,大规模问题就靠它了。

要验证拟合效果,可以用polyval_roots.m来看看多项式在某些点上的值。你要画个图、残差,这个函数还蛮实用的。

文档也准备得比较齐全,license.txt是开源协议,html文档可以快速上手。建议你先跑一遍例子,再结合源码理解逻辑。

如果你常在做高阶拟合、信号或系统辨识,polyfitroots确实是个不错的工具。直接拿根用,比手动解多项式靠谱多了。