主要内容

编程拟合

MATLAB函数多项式模型

两个MATLAB®函数可以用一个多项式模型数据。

多项式拟合函数

函数

描述

polyfit

polyfit (x, y, n)找到一个多项式的系数p (x)的程度n适合的y数据通过最小化的平方和的偏差的数据模型(最小二乘匹配)。

polyval

polyval (p, x)返回一个多项式的值的程度n这是由polyfit,评估x

如果你正在试图创建模型物理情况,总是重要的考虑一个特定的顺序模型是否在你的情况下有意义。

线性模型与Nonpolynomial条款

这个例子展示了如何适应数据与一个线性模型,其中包含nonpolynomial条款。

当一个多项式函数不会产生令人满意的模型数据,你可以尝试使用一个线性模型与nonpolynomial条款。例如,考虑下面的函数是线性的参数 一个 0 , 一个 1 , 一个 2 ,但非线性的 t 数据:

y = 一个 0 + 一个 1 e - - - - - - t + 一个 2 t e - - - - - - t

你可以计算出未知系数 一个 0 , 一个 1 , 一个 2 通过构建和解决一组联立方程和求解参数。以下语法完成组建设计矩阵,每一列表示一个变量用来预测响应(模型中的一个术语)和每一行对应一个变量的观察。

输入ty列向量。

t = [0 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)];

系数计算模型。

y = X \
一个=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)) *;情节(T Y“- - -”、t、y,“o”)、网格标题(“块模型和原始数据”)

图包含一个坐标轴对象。标题图的坐标轴对象模型和原始数据包含2线类型的对象。一个或多个行显示的值只使用标记

多元回归

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

当y是多个预测变量的函数,矩阵方程表达变量之间的关系必须扩展到容纳额外的数据。这就是所谓的多元回归

衡量一个量 y 数的值 x 1 x 2 。将这些值存储在向量x1,x2,y,分别。

x1 = [。2。5。6。81。01。1]'; x2 = [.1 .3 .4 .9 1.1 1.4]'; y = [.17 .26 .28 .23 .27 .24]';

一个模型数据的表单

y = 一个 0 + 一个 1 x 1 + 一个 2 x 2

多元回归解决未知系数 一个 0 , 一个 1 , 一个 2 通过最小化的平方和的偏差的数据模型(最小二乘匹配)。

构建和解决一组联立方程,形成一个设计矩阵,X

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

使用反斜杠符解的参数。

y = X \
一个=3×10.1018 0.4844 -0.2847

常用的数据模型

y = 0 1 0 1 8 + 0 4 8 4 4 x 1 - - - - - - 0 2 8 4 7 x 2

验证模型,找到最大的绝对值偏差的数据模型。

Y = X *;MaxErr = max (abs (Y - Y))
MaxErr = 0.0038

这个值远小于任何数据值,表明该模型准确的数据。

编程拟合

这个例子展示了如何使用MATLAB函数:

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

负载人口普查

这增加了以下两个变量MATLAB工作区。

  • cdate是一个列向量包含10的1790年到1990年的增量。

  • 流行是一个列向量与美国人口数量每年对应cdate

图数据。

情节(cdate、流行,“罗”)标题(从1790年到1990年美国人口的)

图包含一个坐标轴对象。坐标轴对象与标题美国人口从1790年到1990年包含一行对象显示它的值只使用标记。

情节展示了一个强大的模式,这表明变量之间有高度的相关性。

计算相关系数

在这个部分的示例中,您确定变量之间的统计相关性cdate流行建模的数据来证明。有关相关系数的更多信息,请参阅线性相关

计算相关系数矩阵。

corrcoef (cdate、流行)
ans =2×21.0000 0.9597 0.9597 1.0000

对角矩阵的元素代表了完美的相关性与本身和每个变量等于1。非对角元素非常接近1,表明有一种强烈的变量之间的统计相关性cdate流行

适合一个多项式数据

这部分的应用例子polyfitpolyvalMATLAB函数模型数据。

计算合适的参数。

[p,错误]= polyfit (cdate流行2);

评估健康。

pop_fit = polyval (p cdate错误);

数据和适合的阴谋。

情节(cdate pop_fit,“- - -”cdate流行,“+”);标题(从1790年到1990年美国人口的)传说(“多项式模型”,“数据”,“位置”,“西北”);包含(“人口普查年”);ylabel (“人口(百万)”);

图包含一个坐标轴对象。坐标轴对象与标题美国人口从1790年到1990年,包含普查年,ylabel人口(百万)包含2线类型的对象。一个或多个行显示的值只使用这些对象标记代表多项式模型,数据。

情节表明,二次多项式拟合数据提供了一个很好的近似。

计算的残差。

res =流行——pop_fit;人物,情节(cdate res,“+”)标题(二次多项式模型的残差的)

图包含一个坐标轴对象。坐标轴对象与标题残差的二次多项式模型包含一行对象显示其值只使用标记。

注意,残差的情节展现模式,这表明一个二次多项式建模数据可能不适合。

情节和计算置信界限

信心界限置信区间预测的反应。区间的宽度表示的程度的确定性。

这部分的例子适用polyfitpolyval人口普查样本数据为一个二阶多项式模型边界产生信心。

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

评估健康和预测误差估计(δ)。

[pop_fitδ]= polyval (p cdate错误);

图数据,健康,和信心。

情节(cdate、流行,“+”,cdate pop_fit,“g -”,cdate、pop_fit + 2 *δ“:”,cdate、pop_fit-2 *δ“:”);包含(“人口普查年”);ylabel (“人口(百万)”);标题(“二次多项式符合置信界限”网格)

图包含一个坐标轴对象。坐标轴对象与标题二次多项式适合置信界限),包含普查年,ylabel人口(百万)包含4线类型的对象。一个或多个行显示的值只使用标记

95%的区间表明你有95%的机会,一个新的观察范围内下降。