MATLAB多项式拟合,数据够多,高次拟合不出

MATLAB多项式拟合,数据够多,高次拟合不出

问题描述:

代码和报错如下,降低次数为2就可以解决,网上有给出解释
“x值的条件不够,没办法进行更高阶次的拟合,降低拟合的阶数即可
(k阶拟合需要确定k+1个未知参数(如1阶拟合y = ax + b需要确定a和b两个参数),故而至少需要k+1个方程,故而需要至少k+1个不同的已知数对(x,y),由于函数中x只能对应一个y,故而需要至少k+1个不同的x。)”

请教各位,我的(x,y)值有100多组,为什么不能进行高次拟合
x值的范围在[880,950],y在[-40000,-30000]
猜测是因为3次拟合的系数非常接近0吗??因为2次拟合的结果已经挺符合的了

X=Arr1(:,1)';
Y=G_fin';
FN2=polyfit(X,Y,3);

警告: 多项式未正确设置条件。请添加具有不同 X 值的点,减少多项式的阶数,或者尝试按照 HELP POLYFIT 中所述进行中心化和缩放。

In polyfit (line 79)
In Untitled (line 29)

不是说系数接近0,而是说你的数据出现秩亏的情况,就是说你的数据里面高次项和低次项出现了线性相关,次数再高也没有必要了。