polyfit

多项式拟合

描述

例子

p= polyfit(x,y,n)返回系数多项式P(X)n即在数据的最佳拟合(在最小平方意义上)y。的系数p是降序功率,以及长度pn + 1个

p ( x ) = p 1 x n + p 2 x n - 1 + ... + p n x + p n + 1

(p,年代] = polyfit(x,y,n)也返回一个结构年代可以用作输入polyval获取错误估计。

例子

(p,年代,] = polyfit(x,y,n)也回报,是一个具有定心和缩放值的二元向量。亩(1)意思是(x)亩(2)性病(x)。使用这些值,polyfit中心x在零和尺度它具有单位标准偏差,

x ^ = x - x ¯ σ x

此定心和缩放变换同时提高多项式和拟合算法的数值性质。

例子

全部折叠

产生10个点沿同样在间隔的正弦曲线间隔开[0, 4 *π)

X = linspace(0,4 * PI,10);Y =的sin(x);

使用polyfit对点拟合一个七次多项式。

p = polyfit (x, y, 7);

评估上更精细的网格多项式得出结果。

x1 = linspace(0, 4 *π);日元= polyval (p, x1);图绘制(x, y,'O')保持图(X1,Y1)保持

创建一个由5个等间隔点组成的向量[0, 1]和评估 y ( x ) = ( 1 + x ) - 1 在这些点。

x = linspace (0, 1, 5);y = 1. / (1 + x);

适合度4的多项式至5分。在一般情况下,n点,你可以安装一个多项式的程度n-1个正好穿过分。

P = polyfit(X,Y,4);

评估原始函数和多项式拟合在0到2之间的更细网格点。

x1 = linspace (0, 2);日元= 1. / (1 + x1);f1 = polyval (p, x1);

绘制在更广泛的间隔的函数值和所述多项式拟合(0, 2)与用于获得突出显示为圆圈的多项式拟合的点。多项式拟合是在原有的良好[0, 1]区间,但迅速偏离该区间外的拟合函数。

图绘制(x, y,'O')保持图(X1,Y1)图(X1,F1,'R--')图例(“y”,'Y1','F1')

第一生成的矢量x点,在区间内等间隔[0, 2.5],然后评估ERF(x)的在这些点。

X =(0:0.1:2.5)';Y = ERF(X);

确定6度的近似多项式的系数。

P = polyfit(X,Y,6)
p =1×70.0084 -0.0983 0.4217 -0.7435 0.1471 1.1064 0.0004

要查看适合有多好,在评估数据点的多项式和生成一个图表,显示的数据,装配和错误。

f = polyval (p (x);T =表(x, y, f, yf,'VariableNames'{“X”,“Y”,“健康”,'FitError'})
T =26日×4表X Y适合FitError ___ ____ __________ ___________ 0 0 0.00044117 -0.00044117 0.1 0.11246 0.11185 0.00060836 0.2 0.2227 0.22231 0.00039189 0.3 0.32863 0.32872 -9.7429 e-05 0.4 0.42839 0.4288 -0.00040661 0.5 0.5205 0.52093 -0.00042568 0.6 0.60386 0.60408 -0.00022824 0.7 0.6778 0.67775 4.6383 e-05 1 0.8 0.7421 0.74183 0.00026992 0.9 0.79691 0.79654 0.00036515 0.8427 0.84238 0.0003164 1.1 0.88021 0.88005 0.00015948 1.2 0.91031 0.91035 -3.9919 e-05 1.3 0.93401 0.93422 -0.000211 1.4 0.95229 0.95258-0.00029933 1.5 0.96611 0.96639 -0.00028097⋮

在此期间,插补值和实际值相当接近达成一致。创建一个阴谋表明此区间之外如何,外推的值,可以快速从实际数据发散。

X1 =(0:0.1:5)';Y1 = ERF(X1);f1 = polyval (p, x1);图绘制(x, y,'O')保持图(X1,Y1,“- - -”)图(X1,F1,'R--')轴([0 5 0 2])保持

建立人口数据表的年1750年至2000年,并绘制数据点。

年=(1750:25:2000)“;弹出= 1E6 * [791 856 978 1050 1262 1544 1650 2532 6122 8170 11560]';T =表(年,POP)
T =11×2表今年流行____ _________ 1750 7.91e + 08 1775 8.56e + 08 1800 9.78e + 08 1825 1.05E + 09 1850 1.262e + 09 1875年1.544e + 09 1900 1.65e + 09 1925年2.532e + 09 1950年6.122e + 09 1975年8.17e + 09 2000 1.156e + 10
图(一年,流行,'O')

使用polyfit与三个输出,以适应使用定心和缩放一个第五次多项式,这改善了问题的数值性质。polyfit中心数据一年在第0和尺度它具有1的标准偏差,这避免了在拟合计算病态Vandermonde矩阵。

[P,〜,μ= polyfit(T.year,T.pop,5);

使用polyval有四个输入要计算p随着岁月的流逝,(year-mu(1)) /μ(2)。暗算原年的结果。

f = polyval (p,年,[],μ);持有情节(一年,f)

适合一个简单的线性回归模型的一组离散的2-d的数据点。

创建样本数据点的几个向量(X,Y)。飞度一次多项式的数据。

X = 1:50;Y = -0.3 * X + 2 * randn(1,50);P = polyfit(X,Y,1);

求拟合多项式p在点上x。绘制所得线性回归模型的数据。

f = polyval (p (x);情节(x, y,'O'中,x,F,“- - -”)图例('数据',“线性适应”)

适合于一组数据点的线性模型和绘制的结果,包括一个95%预测区间的估计。

创建样本数据点的几个向量(X,Y)。使用polyfit为适合第一多项式到数据。指定两个输出返回的系数进行的线性拟合以及误差估计结构。

x = 1:10 0;y = -0.3*x + 2*randn(1,100);[p, S] = polyfit (x, y, 1);

求一阶多项式拟合的值p在点上x。将误差估计结构指定为第三个输入,以便polyval计算的标准误差的估计值。该标准误差估计在返回三角洲

[y_fitδ]= polyval (p, x, S);

绘制的原始数据,线性拟合,和95%预测区间 y ± 2 Δ

情节(x, y,“博”)保持图(X,y_fit,的r -)情节(X,y_fit + 2 *增量,'M--', x, y_fit-2 *δ,'M--')标题(“数据的线性拟合的95%预测区间”)图例('数据',“线性适应”,“95%的预测区间”)

输入参数

全部折叠

查询点,指定为矢量。在该点x所包含的拟合函数值y。如果x不是矢量吗polyfit将其转换为列向量X(:)

警告消息导致时x已经重复(或几乎重复的)点,或如果x可能需要定心和缩放。

数据类型:|
复数的支持:万博1manbetx

在查询点拟合值,指定为矢量。中的数值y对应于查询点包含在x。如果y不是矢量吗polyfit将其转换为列向量Y(:)

数据类型:|
复数的支持:万博1manbetx

多项式拟合度,指定为正整数标量。n指定最左边的系数的多项式功率在p

输出参数

全部折叠

最小二乘拟合多项式系数,返回作为一个向量。p有长度n + 1个包含幂递减的多项式系数,其最高幂为n。如果任x要么y包含价值观和Ñ<长度(x)的,然后是所有元素p

使用polyval评估p在查询点。

误差估计结构。这个可选的输出结构,主要是用来作为输入到polyval函数来获得误差估计。年代包含以下字段:

描述
R 从的Vandermonde矩阵的QR分解三角形因子x
df 自由程度
normr 残差的常态

如果数据y是随机的,那么协方差矩阵的估计p(RINV * RINV')* normr ^ 2 / DF,其中RINV是的逆R

如果在数据中的错误y是独立且正态且方差恒定的,那么[Y,δ= polyval(...)产生包含预测的至少50%的误差范围。那是,y±三角洲含有未来观察的预测的至少50%x

定心和缩放值,作为双元素向量返回。亩(1)意思是(x)亩(2)性病(x)。这些数值中心查询点x在与单元的标准偏差为零。

使用作为第四输入到polyval评估p在缩放点,(x - mu(1)) /μ(2)

限制

  • 在点多的问题,用增加多项式拟合度polyfit并不总是会有更好的结果。高阶多项式可以在数据点之间振荡,导致a贫穷拟合数据。在这种情况下,你可以使用一个低阶多项式拟合(这往往点之间平滑)或不同的技术,根据不同的问题。

  • 多项式本质上是无界的振荡函数。因此,它们不适用于外推有界数据或单调(增加或减少)数据。

算法

polyfit使用x以形成Vandermonde矩阵Vn + 1个列和m =长度(x)行,形成线性系统

( x 1 n x 1 n - 1 1 x 2 n x 2 n - 1 1 x n x n - 1 1 ) ( p 1 p 2 p n + 1 ) = ( y 1 y 2 y ) ,

哪一个polyfit与求解P = V \ÿ。因为Vandermonde矩阵中的列是向量的幂x的条件号V对于高阶拟合,通常是大的,导致一个奇异系数矩阵。在这种情况下,定心和缩放可以改善系统的数值特性,以产生更可靠的拟合。

扩展功能

R2006a前推出