主要内容

程序拟合

MATLAB软件多项式模型的函数

两个MATLAB®函数可以用多项式对数据建模。

多项式拟合函数

功能

说明

拟合

polyfit(x,y,n)求多项式的系数p(x)学位N这符合Y通过最小化模型中数据偏差的平方和得到的数据(最小二乘拟合)。

多项式求值

波里瓦尔(p,x)返回次多项式的值N这是由拟合,评估时间.

这个例子展示了如何用多项式来建模数据。

量一个量Y在几个时间点T.

t=[0.3 0.8 1.1 1.6 2.3];y=[0.6 0.67 1.01 1.35 1.47 1.25];绘图(t,y,“o”)职务('y与t的曲线图')

图中包含一个轴。标题图为y与t的轴包含线型对象。

你可以尝试用二次多项式函数来模拟这些数据,

Y = A. 2. T 2. + A. 1. T + A. 0 .

未知系数, A. 0 , A. 1. ,和 A. 2. 通过最小化模型数据偏差的平方和(最小二乘拟合)计算。

使用拟合求多项式系数。

p=多边形拟合(t,y,2)
第=1×3-0.2942 1.0231 0.4981

MATLAB计算多项式系数的降幂。

该方程给出了数据的二次多项式模型

Y = - 0 . 2. 9 4. 2. T 2. + 1. . 0 2. 3. 1. T + 0 . 4. 9 8. 1. .

在等距时间上计算多项式,t2级. 然后,将原始数据和模型绘制在同一个图上。

t2=0:0.1:2.8;y2=polyval(p,t2);曲线图(t,y,“o”,t2,y2)标题('数据(点)和模型(线)的绘图')

图中包含一个轴。带有数据(点)和模型(线)标题图的轴包含2个线型对象。

在数据时间向量上评估模型

y2=多值(p,t);

计算残差。

res=y-y2;

绘制残差图。

图,绘图(t,res,'+')职务('残差图')

图中包含一个轴。带有残差标题图的轴包含线型对象。

请注意,二次拟合大致遵循数据的基本形状,但不捕捉数据所在的平滑曲线。残差中似乎有一种模式,这表明可能需要一种不同的模型。第五次多项式(如下所示)可以更好地跟踪数据的波动。

重复这个练习,这次使用拟合.

p5=多边形拟合(t,y,5)
第5页=1×60.7303 -3.5892 5.4281 -2.5175 0.5910 0.6000

计算多项式t2级并在新的图形窗口中绘制数据顶部的拟合。

y3=polyval(p5,t2);曲线图(t,y,“o”,t2,y3)标题('五次多项式拟合')

图中包含一个轴。标题为五次多项式拟合的轴包含2个线型对象。

注意

如果你试图模拟一个实际情况,那么考虑一个特定订单的模型在你的情况下是否有意义是很重要的。

具有非多项式项的线性模型

这个例子展示了如何用包含非多项式项的线性模型来拟合数据。

当多项式函数不能产生令人满意的数据模型时,可以尝试使用带有非多项式项的线性模型。例如,考虑下列参数中的线性函数 A. 0 , A. 1. ,和 A. 2. ,但在 T 数据:

Y = A. 0 + A. 1. E - T + A. 2. T E - T .

你可以计算未知系数 A. 0 , A. 1. ,和 A. 2. 通过构造和求解一组联立方程组并求解参数。下面的语法通过形成一个设计矩阵,其中每列表示用于预测响应的变量(模型中的一个项),每行对应于这些变量的一个观察值。

输入TY作为列向量。

t=[0.3 0.8 1.1 1.6 2.3]';y=[0.6 0.67 1.01 1.35 1.47 1.25]';

形成设计矩阵。

X=[个(大小(t))exp(-t)t.*exp(-t)];

计算模型系数。

a=X\y
a=3×11.3983 -0.8860 0.3085

因此,数据模型如下所示:

Y = 1. . 3. 9 8. 3. - 0 . 8. 8. 6. 0 E - T + 0 . 3. 0 8. 5. T E - T .

现在在规则间隔的点上评估模型,并用原始数据绘制模型。

T=(0:0.1:2.5)';Y=[个(尺寸(T))exp(-T)T.*exp(-T)]*a;绘图(T,Y,'-',t,y,“o”),网格职务('模型和原始数据的绘图')

图中包含一个轴。带有模型标题图和原始数据的轴包含2个线型对象。

多元回归

这个例子展示了如何使用多元回归模型的数据是一个多预测变量的函数。

当y是多个预测变量的函数时,表示变量之间关系的矩阵方程必须展开以容纳额外的数据。这叫做多元回归.

量一个量 Y 对于几个值 1. 2. . 将这些值存储在向量中x1型,x2个,和Y分别是。

x1=[2.5.6.8 1.0 1.1]';x2=[1.3.4.9 1.1 1.4]';y=[17.26.28.23.27.24]';

此数据的模型的形式如下

Y = A. 0 + A. 1. 1. + A. 2. 2. .

未知系数的多元回归求解 A. 0 , A. 1. ,和 A. 2. 通过最小化模型数据偏差的平方和(最小二乘拟合)。

通过形成设计矩阵,构造并求解联立方程组,.

X=[个(大小(x1))x1 x2];

使用反斜杠运算符求解参数。

a=X\y
a=3×10.1018 0.4844 -0.2847

数据的最小二乘拟合模型是

Y = 0 . 1. 0 1. 8. + 0 . 4. 8. 4. 4. 1. - 0 . 2. 8. 4. 7. 2. .

为了验证模型,找出数据与模型偏差绝对值的最大值。

Y=X*a;最大误差=最大值(绝对值(Y-Y))
最大误差=0.0038

此值比任何数据值都小得多,表明此模型准确地跟踪数据。

程序拟合

此示例演示如何使用MATLAB函数:

从加载样本普查数据人口普查.mat,其中包含1790年至1990年的美国人口数据。

负载人口普查

这将向MATLAB工作区添加以下两个变量。

  • cdate公司是以10为增量包含1790年到1990年的列向量。

  • 流行音乐是一个列向量,其中的美国人口数对应于美国每年的人口数cdate公司.

绘制数据。

绘图(cdate、pop、,'反渗透')职务(“1790年至1990年的美国人口”)

图中包含一个轴。标题为“1790年至1990年美国人口”的轴包含线型对象。

图中显示了一个很强的模式,这表明变量之间有很高的相关性。

计算相关系数

在本示例的这一部分中,将确定变量之间的统计相关性cdate公司流行音乐证明数据建模的合理性。有关相关系数的详细信息,请参见线性相关.

计算相关系数矩阵。

corrcoef(cdate,流行音乐)
答案=2×21.0000 0.9597 0.9597 1.0000

对角线矩阵元素表示每个变量与其自身的完美相关性,等于1。非对角线元素非常接近1,表明变量之间存在很强的统计相关性cdate公司流行音乐.

对数据拟合多项式

本部分示例应用拟合多项式求值MATLAB函数对数据进行建模。

计算拟合参数。

[p,ErrorEst]=polyfit(cdate,pop,2);

评估适合度。

pop_fit=polyval(p,cdate,ErrorEst);

绘制数据和拟合曲线。

绘图(cdate、pop\u fit、,'-',日期,流行音乐,'+'); 职务(“1790年至1990年的美国人口”)图例('多项式模型','数据','位置','西北'); xlabel公司('普查年'); 伊莱贝尔('人口(百万)');

图中包含一个轴。标题为“1790年至1990年美国人口”的轴包含2个线型对象。这些对象表示多项式模型、数据。

曲线图表明,二次多项式拟合能很好地逼近数据。

计算此拟合的残差。

res=弹出-弹出拟合;图形,绘图(cdate,res,'+')职务('二次多项式模型的残差')

图中包含一个轴。二次多项式模型的带有标题残差的轴包含一个线型对象。

请注意,残差的曲线图显示了一种模式,这表明二次多项式可能不适合对该数据进行建模。

绘制并计算置信边界

置信限是预测响应的置信区间。间隔的宽度表示拟合的确定程度。

示例的这一部分适用于拟合多项式求值人口普查样本数据产生二阶多项式模型的置信限。

以下代码使用的间隔为 ± 2. Δ ,对应于大样本的95%置信区间。

评估拟合和预测误差估计(delta)。

[pop\u fit,delta]=polyval(p,cdate,ErrorEst);

绘制数据、拟合和置信边界。

绘图(cdate、pop、,'+',...日期,流行歌曲,'g-',...cdate,pop\u fit+2*三角形,'r:',...cdate,pop_fit-2*三角洲,'r:'); xlabel公司('普查年'); 伊莱贝尔('人口(百万)'); 职务('带置信边界的二次多项式拟合')网格

图中包含一个轴。带置信边界的二次多项式拟合轴包含4个线型对象。

95%的间隔表示您有95%的机会让新的观察值落在范围内。