资源描述:
《实验3--曲线拟合的最小二乘法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三曲线拟合的最小二乘法1、实验目的:在科学研究与工程技术中,常常需要从一组测量数据出发,寻找变量的函数关系的近似表达式,使得逼近函数从总体上与已知函数的偏差按某种方法度量能达到最小而又不一定过全部的点。这是工程中引入最小二曲线拟合法的出发点。充分掌握:1.最小二乘法的基本原理;2.用多项式作最小二乘曲线拟合原理的基础上,通过编程实现一组实验数据的最小二乘拟合曲线。2、实验要求:1)认真分析题目的条件和要求,复习相关的理论知识,选择适当的解决方案和算法;2)编写上机实验程序,作好上机前的准备工作;3)上机调试程序,并试算各种方案,记录计
2、算的结果(包括必要的中间结果);4)分析和解释计算结果;5)按照要求书写实验报告;3、实验内容:1)给定数据如下:x:0.15,0.4,0.6,1.01,1.5,2.2,2.4,2.7,2.9,3.5,3.8,4.4,4.6,5.1,6.6,7.6;y:4.4964,5.1284,5.6931,6.2884,7.0989,7.5507,7.5106,8.0756,7.8708,8.2403,8.5303,8.7394,8.9981,9.1450,9.5070,9.9115;试作出幂函数拟合数据。2)已知一组数据:x:0,0.1,0.2,0
3、.3,0.4,0.5,0.6,0.7,0.8,0.9,1y:-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.30,11.2;试用最小二乘法求多项式函数,使与此组数据相拟合。4、题目:曲线拟合的最小二乘法5、原理:从整体上考虑近似函数同所给数据点(i=0,1,…,m)误差(i=0,1,…,m)的大小,常用的方法有以下三种:一是误差(i=0,1,…,m)绝对值的最大值,即误差向量的∞—范数;二是误差绝对值的和,即误差向量r的1—范数;三是误差平方和的算术平方根,即误差向量r的2—范数;前两
4、种方法简单、自然,但不便于微分运算,后一种方法相当于考虑2—范数的平方,因此在曲线拟常采用误差平方和来度量误差(i=0,1,…,m)的整体大小.。数据拟合的具体作法是:对给定数据(i=0,1,…,m),在取定的函数类中,求,使误差(i=0,1,…,m)的平方和最小。6、设计思想:从几何意义上讲,就是寻求与给定点(i=0,1,…,m)的距离平方和为最小的曲线。函数称为拟合函数或最小二乘解,求拟合函数的方法称为曲线拟合的最小二乘法。7、对应程序:(1)幂函数程序#include#includevoidmain
5、(){doublea0[16][2],a1[2][16],A[2][2],Y[2];inti,j,k;doublex[16]={0.15,0.4,0.6,1.01,1.5,2.2,2.4,2.7,2.9,3.5,3.8,4.4,4.6,5.1,6.6,7.6},y[16]={4.4964,5.1284,5.6931,6.2884,7.0989,7.5507,7.5106,8.0756,7.8708,8.2403,8.5303,8.7394,8.9981,9.1450,9.5070,9.9115};doublem0,m1,n;for(i=0
6、;i<=15;i++){a0[i][0]=1;a0[i][1]=log(x[i]);y[i]=log(y[i]);printf("输入X的值:");printf("%f",a0[i][1]);printf("得到的对应的函数值:");printf("%f",y[i]);}printf("");for(i=0;i<=15;i++)for(j=0;j<=1;j++){a1[j][i]=a0[i][j];}//以上正确A[0][0]=0;A[0][1]=0;A[1][0]=0;A[1][1]=0;Y[0]=0;Y[1]=0;for(i=
7、0;i<=1;i++){for(j=0;j<=1;j++){for(k=0;k<=15;k++){A[i][j]+=a1[i][k]*a0[k][j];}}}for(i=0;i<=1;i++){for(j=0;j<=15;j++){Y[i]+=a1[i][j]*y[j];}}m0=(Y[0]*A[1][1]-Y[1]*A[0][1])/(A[0][0]*A[1][1]-A[1][0]*A[0][1]);n=(Y[0]*A[1][0]-Y[1]*A[0][0])/(A[0][1]*A[1][0]-A[1][1]*A[0][0]);m1=ex
8、p(m0);printf("得到的幂函数X的系数是:%f",m1);printf("得到的幂函数X的指数是:%f",n);}(2)最小二乘法求多项式#include#