Matlab实验四拟合要点解析.docVIP

  • 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)

1亿VIP精品文档

相关文档