计算方法编程作业1-拉格朗日插值与牛顿插值(共4页).doc

上传人:飞****2 文档编号:15010602 上传时间:2022-05-10 格式:DOC 页数:4 大小:51.50KB
返回 下载 相关 举报
计算方法编程作业1-拉格朗日插值与牛顿插值(共4页).doc_第1页
第1页 / 共4页
计算方法编程作业1-拉格朗日插值与牛顿插值(共4页).doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《计算方法编程作业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、调试结果图专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁