主要内容

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 *π,10);y = sin (x);

使用polyfit适合7点th-degree多项式。

p = polyfit (x, y, 7);

评估细网格上的多项式和阴谋的结果。

x1 = linspace(0, 4 *π);日元= polyval (p, x1);图绘制(x, y,“o”)举行情节(x1, y1)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。

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”,“日元”,“f1”)

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。这些对象代表y, y₁, f1。

首先生成一个向量的x点,等距的间隔[0,2.5],然后评估小块土地(x)在这些点。

x = (0:0.1:2.5)”;y =小块土地(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) ';日元=小块土地(x1);f1 = polyval (p, x1);图绘制(x, y,“o”)举行情节(x1, y1,“- - -”)情节(x1, f1,“r——”轴([0 5 0 2])

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。

创建一个表1750 - 2000年的人口数据和绘制数据点。

年= (1750:25:2000)';流行= 1 e6 * [791 856 978 1050 1262 1544 1650 2532 6122 8170 11560] ';T =表(流行),
T =11×2表1775年流行___ _____ 1750 7.91 e + 08年8.56 e + 08年1800 9.78 1.05 e + e + 1825年08 09年1850 1.262 1.544 e + e + 09年1875 09年1900 1.65 2.532 e + e + 09年1925 09年1950 6.122 8.17 e + e + 09年1975 09年2000 1.156 e + 10
情节(年,流行,“o”)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

使用polyfit有三个输出适合5 th-degree多项式使用定心和缩放,这提高了数值的属性问题。polyfit中心的数据一年在0和尺度的标准偏差1,避免一个坏脾气的范德蒙矩阵的计算。

(p ~μ)= polyfit (T。年,T。流行,5);

使用polyval有四个输入评估p按比例缩小的年,(year-mu(1)) /μ(2)。阴谋的结果与最初的几年。

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

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。

适合简单线性回归模型的一组离散二维数据点。

创建一些向量样本数据点(x, y)。适合第一次多项式数据。

x = 1:50;y = -0.3 * x + 2 * randn (50);p = polyfit (x, y, 1);

评价拟合多项式p在点x。情节与数据生成的线性回归模型。

f = polyval (p (x);情节(x, y,“o”f, x,,“- - -”)传说(“数据”,“线性适应”)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象表示数据,线性。

符合线性模型的一组数据点和阴谋的结果,包括95%的预测区间的估计。

创建一些向量样本数据点(x, y)。使用polyfit适合第一次多项式数据。指定两个回归系数的线性输出符合以及误差估计结构。

x = 1:10 0;y = -0.3 * x + 2 * randn (1100);[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%的预测区间”)

图包含一个坐标轴对象。坐标轴对象与标题与95%的预测区间线性的数据包含4线类型的对象。这些对象表示数据,线性,95%的预测区间。

输入参数

全部折叠

查询点,指定为一个向量。的点x对应于安装中包含的函数值y。如果x不是一个向量,那么polyfit将它转换成一个列向量x (:)

警告消息结果时x重复(或几乎重复)点或者x可能需要定心和可伸缩性。

数据类型:|
复数的支持:金宝app是的

在查询点,拟合值指定为一个向量。中的值y包含在查询对应点x。如果y不是一个向量,那么polyfit将它转换成一个列向量y (:)

数据类型:|
复数的支持:金宝app是的

多项式的次数,指定为一个正整数标量。n指定最左边的多项式系数p

输出参数

全部折叠

最小二乘多项式系数,作为一个向量返回。p长度n + 1和包含了多项式系数按照权力,最高的权力n。如果任何一xy包含价值观和n <长度(x),那么所有元素p

使用polyval评估p在查询点。

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

描述
R 三角R因素(可能排列)范德蒙矩阵的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并不总是导致一个更好的选择。高阶多项式可以数据点之间的振荡,导致贫穷适合的数据。在这些情况下,您可以使用一个低阶多项式适合(这往往是平滑点)之间或不同技术,根据不同的问题。

  • 多项式是无界的,振荡函数的性质。因此,他们不适合推断数据或单调有界(增加或减少)数据。

算法

polyfit使用x形成范德蒙矩阵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 \ y。由于范德蒙矩阵的列向量的权力x的条件数V常大,高阶,导致奇异系数矩阵。在这些情况下定心和扩展可以改善系统的数值属性来产生更可靠的健康。

扩展功能

版本历史

之前介绍过的R2006a