- 23
- 0
- 约7.54千字
- 约 16页
- 2016-04-27 发布于湖北
- 举报
实验四.Matlab拟合
一、实验目的
直观了解拟合基本内容;掌握最小二乘拟合的基本原理;掌握用
matlab命令求解拟合问题;掌握matlab拟合工具箱的基本使用方法
二.实验原理与方法
在科学计算中经常要建立实验数据的数学模型。给定函数的实验数据,需要用比较简单和合适的函数来逼近(或拟合)实验数据。这种逼近的特点是:
(a) 适度的精度是需要的;
(b) 实验数据有小的误差;
(c) 对于某些问题,可能有某些特殊的信息能够用来选择实验数据的数学模型。
曲线拟合的数学描述描述:已知一组(二维)数据,即平面上 个点, 互不相同。 寻求一个函数(曲线)使在某种准则下与所有数据点最为接近,即拟合的最好,不要求曲线(面)通过所有数据点,而是要求它反映对象整体的变化趋势。逼近离散数据的基本方法就是曲线拟合,常采用最小二乘拟合。最小二乘拟合分为线性最小二乘拟合与非线性最小二乘拟合
1.线性最小二乘法
(一)线性最小二乘法的基本思路:
第一步:先选定一组基函数(线性无关) ( mn), 构造函数
其中 为待定系数。
第二步: 确定系数,使n个点与曲线的距离的平方和最小,该准则称为最小二乘准则,求系数的方法称为线性最小二乘拟合法。
问题归结为,求 a1,a2, …am 使 J(a1,a2, …am) 最小。
(1)记
则为的n元二次函数。由数学分析(或高等数学)的极值理论,J 达到最小的充分必要条件是?满足
于是得到求使J 达到最小的 的方法是求解线性方程组:
也即求解线性方程组:
若记,
则线性方程组可表示为:
由于当线性无关时,列满秩,可逆所以上述方程组有唯一解:(称为该线性方程组的最小二乘意义下的解)。此即线性最小二乘拟合所得系数。
用作线性最小二乘拟合的误差也可以考虑以下两种形式:
1.最小平方误差:
2.最大偏差:
(二)基函数组的选取
线性最小二乘拟合 f(x)=a1r1(x)+ …+amrm(x)中函数{r1(x), …rm(x)}的选取
通过机理分析建立数学模型来确定f(x),如果通过机理分析能知道和之间的关系,则很容易可以确定。
若无法知道和之间的关系,则可以通过对数据作图,直观的判断该组数据应用什么样的曲线去拟和。
f=a1+a2x f=a1+a2x+a3x2
常用曲线有如下几种:
直线:
多项式:(一般m=2,3,不宜太 高)
双曲线(一支):,拟合前需做变量替换转换成多项式,这样做比较简单。
指数函数:,拟合前需做变量替换,转换成,这样做比较简单
在实际计算过程中,面对一组数据,到底用什么曲线拟合好,可以在直观判断的基础上,选几种曲线分别拟合,然后作比较,选择拟合效果好的曲线。
用MATLAB作线性最小二乘拟合
作多项式f(x)=a1xm+ …+amx+am+1拟合,也即选取基函数
可利用命令:
a=polyfit(x,y,m)
说明:为原始样本点构成的向量, 为选定的多项式的阶数,为拟合得到的多项式的系数,从高次项到低次项降幂排列,为长度为的数组。
注:多项式在x处的值y可用以下命令计算:
y=polyval(a,x)
2.选取基函数:
建立超定方程组:
其中
使用matlab命令求解:或者
例 对下面一组数据作二次多项式拟合
xi 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 yi -0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2 即要求 出二次多项式:
中的系数:,使得
达到最小
解法1.用解方程组的方法
1)输入以下命令:
x=0:0.1:1;
y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];
R=[(x.^2) x ones(11,1)];
A=R\y
计算结果:
A = -9.8108 20.1293 -0.0317
所求拟合多项式
解法2.用多项式拟合的命令
1)输入以下命令:
x=0:0.1:1;
y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];
A=polyfit(x,y,2)
z=polyval(A,x);
plot(x,y,k+,x,z,r) %作出数据点和拟合曲线的图形
2)计算结果: A = -9.8108 20.1293 -0.0317
所求拟合多项式
两种方法是等价的,所求拟合系数也是相同的。
用MATLAB作非线性最小二乘拟合
非线性最小二乘是假设是待定系数的非线性函数
原创力文档

文档评论(0)