多项式受到严重限制

时间:2018-05-21 14:46:45

标签: matlab polynomials data-fitting

我有以下数据:

x = [0 5 10 15 20 25 30 35].';
y = [72.3 73.6 75.1 77.0 77.6 77.9 79.2 80.4].';

当我输入此代码时:

pg7 = polyfit(x,y,7);

出现以下警告,我不知道原因:

Warning: Polynomial is badly conditioned. Add points with distinct X values, reduce the degree of the polynomial, or try
centering and scaling as described in HELP POLYFIT. 

2 个答案:

答案 0 :(得分:1)

您正尝试在8个数据点上执行7阶的多项式回归。这不是回归,而是插值,因为8个点唯一地确定了7阶多项式。

正如错误消息告诉您的那样,添加更多积分或降低学位。

或者,如果您确实在插值之后,则执行拉格朗日插值而不是拟合。

答案 1 :(得分:0)

警告声明可能存在与拟合过程相关的数字问题,因为您的x值不以0 为中心,因为您使用的是确定的模型。

使用曲线拟合工具(cftool),您可以看到居中和缩放之间的差异,而不是这样,在适合的SSE分别为1.831e-24和6.664e-27之间。

换句话说 - 在这个特定情况下 ,实际上对数据进行居中和缩放并不重要,可以安全地忽略警告。

另一方面,除非你有充分的理由这样做,否则你可能不应该将最大可能度多项式拟合到你的数据中(称为“过度拟合”),因为这被认为是捕获的噪声而不是潜在的现象。考虑使用较小程度的多项式(例如6),splinepchip等。