刘盼计算方法试验_第1页
刘盼计算方法试验_第2页
刘盼计算方法试验_第3页
刘盼计算方法试验_第4页
刘盼计算方法试验_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、计算方法实验报告学号2015216772姓名刘盼班级计算机一班实验项目名称插值与拟合一、实验名称实验一插值与拟合二、实验目的:1,明确插值多项式和分段插值多项式各自的优缺点;2 .编程实现拉格朗日插值算法,分析实验结果体会高次插值产生的龙格现象;3 .理解最小二乘拟合,并编程实现线性拟合,掌握非线性拟合转化为线性拟合的方法4,运用常用的插值和拟合方法解决实际问题。二、实验内容及要求,一1-(1)对于f(x)=7,一5WxM51+x2要求选取11个等距插值节点,分别采用拉格朗日插值和分段线性插值,计算x为0.5,4.5处的函数值并将结果与精确值进行比较。输入:区间长度,n(即n+1个节点),预测

2、点输出:预测点的近似函数值,精确值,及误差(2)已知&=1,J4=2,,9=3,用牛顿插值公式求J5的近似值。输入:数据点集,预测点。输出:预测点的近似函数值四、实验原理及算法描述1. Lagrange插值法的基本原理:名精确函数y-f(x)非常里杂或未知,在系列下点XoXn处测得函数值yo=f(xo),ny=f(xn),布望由此构造个间单易算的近似函数g(x)定f(x),满足条件g(xi)-f(xi)(i=0,。n)里的g(x)称为f(x)的插值函数,由插值函数可以去近似估计f(x)在一些未知点处的函数值。最常用的插值函数是多项式插值。所谓多项式插值即求n次多项式R(x)=a0+a1

3、x+anxn使得Pn(Xj)=f3)基于基函数的拉格朗日插值是构造多项式插值最基本方法。也是推导数值微积分和微分方程数值解的公式的理论基础。nnx-X;拉格朗日插值公式为:pn(x)-Zyklk(x)其中1k(x)nks2xk-xjj#2. Lagrange插值算法描述:(也可以是算法流程图)步骤1:构造xo,x1,L,xn处的插值基函数lo(x)J(x),L,ln(x),其中,插值节点K处的插值计算机科学与工程学院基函数li(x)为li(x)=(x-Xo)L(x-Xi-1)(X-Xi+1)L(x-Xn)(Xi-xo)L(x-xi-i)(xi-x+i)L(xi-xn)步骤2:以yi作为li(x

4、)的系数,使得yli(x)通过插值点(Xi,yi);步骤3:把所有的yJi(x)线性叠加,得到通过所有插值点(X,y),i=0,1,L,n的插值函数nLn(x)=?yJi(x)。i=0Lagrange插值伪代码:给定n个插值点(Xo,yo),(Xi,yi),L,(4,yn)的情况下,求插值函数Ln(x)在点t处的函数值。/*输入参数* X=(X0,Xl,Xn),插值节点* y=(yo,yi,yn);被插函数f(x)在插值节点处的函数值* t求插值函数Ln(X)在t处的函数值* 返回值插值函数Ln(X)在t处的函数值* /五、程序代码及实验结果1 .主程序intmain()(doublex11=

5、-5,-4,-3,-2,-1,0,1,2,3,4,5,y11=0.038461,0.058823,0.100000,0.200000,0.500000,1.000000,0.500000,0.200000,0.100000,0.058823,0.038461;doubleu1,u2;doublem1,l1,p1,m2,l2,p2;printf("请输入要计算的x的值:");scanf("%lf",&u1);m1=1/(1+u1*u1);printf("x=%lf时的精确值为:%fn",u1,m1);printf("x

6、=%lf时的拉格朗日差值近似值为:fn",u1,Lagrange(x,y,u1);拉格郎日插值printf("x=%lf时的分段线性差值近似值为:%fn",u1,PiecewiseLinear(x,y,u1);/分段线性插值l1=m1-Lagrange(x,y,u1);p1=m1-PiecewiseLinear(x,y,u1);printf("x=%lf时的拉格朗日误差为:%fn",u1,l1);printf("x=%lf时的分段线性误差为:%fn",u1,p1);printf("请再输入要计算的x的值:"

7、;);scanf("%lf",&u2);m2=1/(1+u2*u2);printf("x=%lf时的精确值为:%fn",u2,m2);printf("x=%lf时的拉格朗日差值近似值为:%fn",u2,Lagrange(x,y,u2);/拉格郎日插值printf("x=%lf时的分段线性差值近似值为:%fn",u2,PiecewiseLinear(x,y,u2);/分段线性插值计算机科学与工程学院I2=m2-Lagrange(x,y,u2);p2=m2-PiecewiseLinear(x,y,u2);pri

8、ntf("x=%lf时的拉格朗日误差为:%fn",u2,l2);printf("x=%lf时的分段线性误差为:%fn",u2,p2);newton();return0;2 .Lagrange插值子程序:doubleLagrange(double*x,double*y,doublexx)/拉格郎日插值inti,j;double*a,yy=0.000;a=newdouble11;for(i=0;i<11;i+)ai=yi;for(j=0;j<11;j+)if(j!=i)ai*=(xx-xj)/(xi-xj);yy+=ai;deletea;retu

9、rnyy;3 .分段线性插值子程序doublePiecewiseLinear(double*x,double*y,doubleinput)/分段线性插值doubleoutput;inti;for(i=0;i<10;i+)if(xi<=input&&xi+1>=input)output=yi+(yi+1-yi)*(input-xi)/(xi+1-xi);break;returnoutput;4 .牛顿插值子程序voidnewton()/牛顿插值计算机科学与工程学院floatx100,y100,c100100,x1,xp,wx;intn,i,j;cout<&

10、lt;"输入数据组的个数"<<endl;cin>>n;for(i=0;i<n;i+)cout<<"当前输入第"<<i<<"组数据"<<endl;cin>>xi;cin>>yi;for(j=0;j<n;j+)if(j>0)for(i=0;i<n-j;i+)cij=(ci+1j-1-cij-1)/(xi+j-xi);elsefor(i=0;i<n;i+)ci0=yi;xp=y0;charm='y'w

11、hile(m='y')cout<<"请输入你要求的点的X值:"<<endl;cin>>x1;for(i=1;i<n;i+)wx=1;for(j=0;j<=i-1;j+)wx=wx*(x1-xj);xp=xp+c0i*wx;cout<<"newton插值的结果为:"<<xp<<endl;cout<<"是否想继续计算(Y/N)"<<endl;cin>>m;实验结果:计算机科学与工程学院ES阳道11为为的M

12、近胃为M.僵重上0.圈襄误4:耋误误盥即筑朗翳精一兴已兴空Q拉分数.JrrrJTTTJTTTTT-JTTFmkJTTJTT-JTTJTrjmyJ-二、二.-二.:4.-.1.-4.-二.二.-二.-CT-3J.m_BBhtmb_bhJtT11C:Uc#rtac»fDfcktop12府输入你要求的点的X值:5 _neffto口插值的结果为;2.26667O如图一所示。计算机科学与工程学院21.510.50-0.5-1-1-0.8-0.6-0.4-0.200.20.40.60.81六、实验总结1 .拉格朗日插值在高次插值时同原函数偏差大、存在龙格现象,高次插值多项式不收敛。2 .牛顿插值和拉格朗日插值的区别和联系

温馨提示

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

评论

0/150

提交评论