昆明理工数值分析大作业最小二乘法_第1页
昆明理工数值分析大作业最小二乘法_第2页
昆明理工数值分析大作业最小二乘法_第3页
昆明理工数值分析大作业最小二乘法_第4页
昆明理工数值分析大作业最小二乘法_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数值分析实验报告课题八 曲线拟合的最小二乘法一、问题提出从随机的数据中找出其规律性, 给出其近似表达式的问题, 在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。在某冶炼过程中, 根据统计数据的含碳量与时间关系, 试求含碳量 y与时间 t 的拟合曲线。二、实验要求t(分)0510152025303540455055y(×10-4)01.272.162.863.443.874.154.374.514.584.024.641、用最小二乘法进行曲线拟合;2、近似解析表达式为( t) = a1t + a2t 2 + a3t 3 ;3、打印出拟合函数(t),并打印出 (tj

2、 )与 y(tj)的误差, j = 1,2,",12 ;4、另外选取一个近似表达式,尝试拟合效果的比较;5、 * 绘制出曲线拟合图。三、实验目的1、掌握曲线拟合的最小二乘法;2、最小二乘法亦可用于解超定线代数方程组;3、探索拟合函数的选择与拟合精度间的关系。四、实验原理最小二乘法拟合在函数的最佳平方逼近中f(x)a,b,对已知函数f(x)的一组离散数据(xi,yi),i=0,1,m,yi=f(xi),求函数拟合S*(x),记误差i=S*(xi)-yi 要求一个函数与所给数据的曲线拟合,这里,要求一个函数与所给数据拟合,若记误差,设是上线性无关函数族,在中找一函数,使误差平方和, (4

3、.1)这里. (4.2) 这就是一般的最小二乘逼近,用几何语言说,就称为曲线拟合的最小二乘法。 用最小二乘法求拟合曲线时,首先要确定的形式。这不单纯是数学问题,还与所研究问题的运动规律及所得观测数据有关;通常要从问题的运动规律或给定数据描图,确定的形式,并通过实际计算选出较好的结果这点将从下面的例题得到说明。的一般表达式为(4.2)式表示的线性形式。若是次多项式,就是次多项式。为了使问题的提法更有一般性,通常在最小二乘法中都考虑为加权平方和 (4.3)这里是上的权函数,它表示不同点处的数据比重不同,例如,可表示在点处重复观测的次数,用最小二乘法求拟合曲线的问题时,就是在形如(4.2)式的中求一

4、函数,使(4.3)式取得最小。它转化为求多元函数 (4.4)的极小点的问题。由求多元函数极值的必要条件,有 五、实验设计和实验步骤本实验利用最小二乘法和题目所给函数形式对所给数据进行拟合。而后选用不同函数形式对所给数据进行拟合得到拟合数据和所给数据的相对误差。而后在正交多项式函数组的基础上建立相对最佳基函数选择指标P并且记录了相对最佳拟合函数。现将实验步骤陈述如下:(1) 建立正交多项式函数族建立的程序思路和拟合函数系数求解。(2) 编辑程序进行计算记录实验结果。(3) 对所得结果进行总结和分析,找出存在的问题,探索拟合函数的选择与拟合精度间的关系。评价本次实验的结果。六、编程思路实验使用ma

5、tlab工具编写了计算使用正交函数族=span(0(x),1(x)n(x)进行最小二乘法拟合的拟合函数各项系数的函数程序。这是比较简单的。并计算了其误差。现将编程思路陈述如下:一,按照不同和拟合多项式求拟合函数及其误差:(1) 利用已知条件生成相应正交多项式函数族=span(0(x),1(x)n(x)。(2) 求格拉姆矩阵(即求其对角线元素)G= (3) 求(k(x),f(x))(4) 对应除以相应格拉姆矩阵对角线元素得到拟合函数系数向量a.(5) 生成拟合函数绘图并且计算原来拟合数据中对应x点的函数值,求其误差。(6) 改变所选择拟合函数的类型进行拟合如上过程求其拟合函数误差及相应图像。(4

6、) 探索拟合函数的选择与拟合精度间的关系。利用已经建立的最小二乘法拟合函数来建立相应的最佳拟合函数寻找函数,是一个比价复杂的过程,这里我们仅仅使用上面的正交多项式生成的函数族=span(0(x),1(x)n(x)来寻找适宜的基函数值个数,通过误差是否达到某一个极值来反应其适宜度的变化情况,现将该程序的建立思路简述如下:(1) 利用拟合数据和拟合函数值的相对误差建立判断指标P,(2) 利用判断指标P随着基函数个数的变化找出拟合数据范围内的最大值,最小值和峰值。(3) 记录峰值处的拟合函数个数。(4) 在一定范围内画出判断指标P随基函数个数变化的函数图。七、程序建立及实验结果利用正交多项式求最小二

7、乘法拟合函数:function w=zjdxsnh(n,x,y);m=length(x);mf=zeros(1,n);mp=zeros(1,n);P=ones(n,m);aw=0;af=zeros(1,n-2);bf=zeros(1,n-2);for i=1:m; aw=x(i)+aw;endaf(1)=aw/m;for i=1:m P(2,i)=x(i)-af(1);endfor i=3:n; d=i-2; sump1=sum(P(i-1,:).2); sump2=sum(P(i-2,:).2); sump3=sum(P(i-1).2).*x); af(i-1)=sump3/sump1; b

8、f(i-2)=sump1/sump2; P(i,:)=x.*P(i-1,:)-af(i-1)*P(i-1,:)-bf(i-2)*P(i-2,:);endfor j=1:n; for k=1:m; mf(j)=mf(j)+P(j,k)2; mp(j)=mp(j)+P(j,k)*y(k); endend%正交多项式的系数计算A=zeros(n,n+2);A(:,3)=1;A(2,4)=af(1);A(:,1)=zeros();A(:,2)=zeros();for i=3:n; d=i-1; for j=4:(n+2); A(i,j)=A(i-1,j-1)-af(i-2)*A(i-1,j)-bf(i

9、-2)*A(i-2,j-2); endend%最终系数计算AY=zeros(1,n);a=mp./mf;AX=zeros(n,n+2);for z=1:n AX(z,:)=a(z)*A(z,:);endfor b=1:n; for t=1:b; AY(b)=AX(n-t+1,b+3-t)+AY(b); endendw=AY;由于使用的是课本上的正交多项式进行拟合,其系数的计算会带来巨大的误差,故最终的拟合多项式和原来的拟合数据发生了很大误差,这说明利用以上这一思路和实验设计来求解题目是不适合的。即:采用生成多项式的方法和思路去寻找最小二乘法拟合是不合理的。至于后面探索精度和拟合多项式类型之间关系的工作至此无法做起!由此本实验转换思路利用matlab强大的拟合功能来进行:所使用的代码如下:x=05 10152025303540455055;y=01.272.162.863.443.874.154.374.514.584.024.64;plot(x,y,'*');hold onp=polyfit(x,y,n);xx=0:1:55;yy=polyval(p,xx);plot(xx,yy);分别采用5次多项式,4次多项式和3次多项式所得

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论