《计算方法编程作业1-拉格朗日插值与牛顿插值(共4页).doc》由会员分享,可在线阅读,更多相关《计算方法编程作业1-拉格朗日插值与牛顿插值(共4页).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 西华数学与计算机学院上机实践报告课程名称:计算方法年级:2012级上机实践成绩:指导教师:严常龙姓名: 贺容英上机实践名称:拉格朗日插值和牛顿插值法学号:上机实践日期:yyyy.mm.dd上机实践编号:12209上机实践时间:2014.10.27一、目的1通过本实验加深对拉格朗日插值和牛顿插值法构造过程的理解;2能对上述两种插值法提出正确的算法描述编程实现。二、内容与设计思想自选插值问题,编制一个程序,分别用拉格朗日插值法和牛顿插值法求解某点的函数近似值。(从课件或教材习题中选题)已知y=f(x)的数据表如下,求t=0.63处的函数值z=f(t) 。ixiyiixi
2、yi10.100.60.570.20.150.70.700.30.250.80.850.40.400.90.930.50.500.101.000.三、使用环境操作系统:win7软件环境:vs2012四、核心代码及调试过程4.1核心代码1、拉格朗日插值法代码如下 double lagrangesf(point points,int t)int n=t;int i,j;double x,tmp=1,lagrange=0;printf(请输入需要计算的x的值:);scanf(%lf,&x);for(i=0;i=n-1;i+)tmp=1;for(j=0;j=n-1;j+)if(j!=i)tmp=tmp
3、*(x-pointsj.x)/(pointsi.x-pointsj.x);lagrange=lagrange+tmp*pointsi.y;printf(lagrange(%lf)=%lfn,x,lagrange);return 0;2、牛顿插值法代码如下 double newtonsf(point points,int t)int n=t;int i,j;double dmaxt+1;double x,tmp,newton=0;printf(差商表n);printf(*n);printf(x );for(i=0;i=n-1;i+)printf(%lf ,pointsi.x);printf(n)
4、;printf(y );for(i=0;i=n-1;i+)di=pointsi.y;printf(%lf ,points i.y);printf(n);for(i=0;in-1;i+)printf(%d阶差商,i+1);for(int t=1;ti;j-)dj=(dj-dj-1)/(pointsj.x-pointsj-i-1.x);/计算差商printf(%lf ,dj);printf(n);printf(*n);printf(请输入需要计算的x的值:);scanf(%lf,&x);tmp=1;newton=d0;for(i=0;imaxt) printf(被插值点数超出范围%d,maxt);
5、 return 0; while(n=0);printf(请输入被插值点:n);for(i=0;i=n-1;i+)scanf(%lf%lf,&pointsi.x,&pointsi.y);printf(lagrange插值n);lagrangesf(points,n);printf(newton插值n);newtonsf(points,n); system(pause);4.2、调试过程 1、在拉格朗日插值法调试过程中,累乘过程中用来承载累乘的tmp没有重新赋值为1,导致结果始终不正确。 for(i=0;i=n-1;i+)tmp=1;for(j=0;j=n-1;j+) 还有在调用传值时,没有传被
6、插值点数目,导致传过去的point结构体读不出值。printf(lagrange插值n);lagrangesf(points,n);printf(newton插值n);newtonsf(points,n);在方法体中错写成“int n=0”,所以point结构体读不出值。应是“int n=t”,t为传过来的被插值点数目。 2、调试结果:拉格朗日插值法t=0.63时,值为0.;牛顿插值法t=0.63时,值为0.。五、总结使用这两种插值法都可以近似求出t=0.63时的函数值,从结果来看拉格朗日插值法和牛顿插值法结果没有差别,但从理论来说是有的,并且牛顿插值法会精确些,可以多保留小数点位数再来观察结果就会有差别。六、附录 1、点结构体 #define maxt 20typedef struct pointdouble x,y;point; 2、调试结果图专心-专注-专业