为什么这个多项式方程受到严格限制?

时间:2015-08-24 01:30:44

标签: matlab math polynomial-math polynomial-approximations

我有1x1024矩阵。所以我想估计一个多项式方程。

X= (0:1023)'
Y= acquired data.  A 1024 element vector

然后我在MATLAB中尝试这个:

polyfit(x,y,5)

但MATLAB会发出异常结果并发出警告。

Warning: Polynomial is badly conditioned. Add points with distinct X values, reduce the degree of the ...

我不明白我做错了什么?

更新

我收到了很多这样的数字。

Y =

-0.0000000150
 ...
0.00001
...
0
...
0.17

X = 0~255

polyfit(X,Y,4)

我得到了一个多项式,但它与原始曲线不匹配。 在原始曲线和polyfit曲线之间是否有任何匹配选项?

1 个答案:

答案 0 :(得分:2)

警告是因为您提供给polyfit的数据具有所需的多项式次数并不合适。具体而言,您的数据存在不足的可变性,因此您可以成功地实现良好的匹配。因此,MATLAB会为您提供警告,因为数据无法与您所需的度数多项式正确拟合。

对此的解决方案是获得更多的点,以便您可以获得所需的多项式次数拟合,或者降低所需的多项式次数。

尝试小于5 ... 4,3或2:

的值
coeff = polyfit(x, y, 4);
%// or
%coeff = polyfit(x, y, 3);
%coeff = polyfit(x, y, 2);

尝试每个学位,直到你不再收到警告为止。但是,如果没有实际数据,我只能推测出错了,这是我最好的猜测。