数值分析实验报告包含源程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程实验报告 课程名称 计算方法 班级 实验日期 姓名 学号 实验成绩 实验名称 实验一 插值多项式 实 验 目 的 及 要 求 掌握拉格郎日插值多项式的用法,适用范围及精确度。 掌握牛顿插值多项式的用法,适用范围及精确度。 实 验 环 境 Microsoft Visual C++ 6.0 实 验 内 容 1、Lagrange插值多项式:,其中 2、Newton插值多项式: 3、计算实例以2.0,2.1,2.2,2.3,2.4为节点,用牛顿插值求函数在2.51处的近似值; 取正弦函数 4、如果有错,修改直至运行成功,查看运行结果 算 法 描 述 及 实 验 步 骤 1、实验1实验步骤: (1)程序设计 (2)计算实例 (3)撰写实验报告 2、实验2实验步骤 (1)程序设计 (2)计算实例以2.0,2.1,2.2,2.3,2.4为节点,用牛顿插值求函数 在2.51处的近似值; (3)撰写实验报告 调 试 过 程 及 实 验 结 果 拉格朗日插值实验结果如图: 以0.32,0.34,0.36为节点,分别用线性插值和抛物插值求正弦函数在0.3367处的近似值 牛顿插值实验结果如图: 进行测试: 使用牛顿插值计算实例以2.0,2.1,2.2,2.3,2.4为节点,用牛顿插值求函数 在2.51处的近似值: 总 结 通过本次实验,使我进一步加深了对拉格朗日插值多项式的了解,掌握拉格朗日插值多项式的用法,能够正确的运用拉格朗日插值多项式进行运算。 通过本次实验,使我加深了对牛顿插值的认识,能够熟练的运用公式进行运算,掌握牛顿插值多项式的用法。 附 录 拉格朗日插值程序清单: #includestdio.h #includeconio.h double Lagrange(double x,int n,double a[],double b[]); void main() { double a[20],b[20],x,y; int i=0,n; printf(请输入数值个数:n=); scanf(%d,n); printf(请输入%d个不同的x的数值:\n,n); for(i=0;in;i++) { scanf(%lf,a[i]); } printf(请按顺序输入x对应的y的数值:\n); for(i=0;in;i++) { scanf(%lf,b[i]); } /* for(i=0;in;i++) { printf(%f ,a[i]); }*/ printf(请输入需计算的数:x=); scanf(%lf,x); y=Lagrange(x,n,a,b); printf(根据拉格朗日插值公式计算后的数为:y=%f\n,y); } double Lagrange(double x,int n,double a[],double b[]) { double y=0,L; int i,j; for(i=0;in;i++) { L=1; for(j=0;jn;j++) { if(j==i)continue; else { L=L*(x-a[j])/(a[i]-a[j]); } } y+=L*b[i]; } return y; } 牛顿插值程序清单: #includestdio.h #includestdlib.h #includeiostream.h double Newton(double x,int n,double a[],double b[]); double Chashang(int a1,int b1,double a[],double b[]); void main() { double a[20],b[20],x,y; int i=0,n; printf(请输入数值个数:n=); scanf(%d,n); printf(请输入%d个不同的x的数值:\n,n); for(i=0;in;i++) { scanf(%lf,a[i]); } printf(请按顺序输入x对应的y的数值:\n); for(i=0;in;i++) { scanf(%lf,b[i]); } printf(请输入需计算的数:x=); scanf(%lf,x); y=Newton(x,n,a,b); printf(根据牛顿插值公式计算后的数为:y=%f\n,y); } double Newton(double x,int n,double a[],double b[]) { int i; double t=1.0,zhi=b[0],p=0.0;

文档评论(0)

企业资源 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档