网站大量收购独家精品文档,联系QQ:2885784924

数值分析完整版.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 1 实验一 Lagrange插值和Newton插值 一、实验目的及要求 1.掌握利用Lagrange插值法及Newton插值法求函数值并编程实现。 2.程序具有一定的通用性,程序运行时先输入节点的个数n,然后输入各节点的值(),最后输入要求的自变量x的值,输出对应的函数值。 二、实验设备和实验环境 安装有C、C++或MATLAB的计算机。 三、算法描述 插值的基本原理(求解插值问题的基本思路) 构造一个函数y=f(x)通过全部节点,即 (i=0、1、… n) 再用f(x)计算插值,即 拉格朗日(Lagrange)多项式插值 Lagrange插值多项式: 3.牛顿(Newton)插值公式 五、实验内容 1.给定,构造Lagrange插值函数计算。 2.已知4个点的函数值如下表,用Newton插值法求x=0.596时的函数值。 i 0 1 2 3 xi 0.40 0.55 0.65 0.80 yi 0.41075 0.57815 0.69675 0.88811 六、实验源程序 Lagrange插值源程序: #includeiostream using namespace std; double Lagrange(double x[20],double y[20],int n,double x1) { double y1=0; for(int k=0;kn;k++) { double l=1; for(int j=0;jn;j++) { if(k!=j) l=((x1-x[j])/(x[k]-x[j]))*l; } y1=y[k]*l+y1; } return y1; } int main() { int m; double x; cout=====拉格朗日插值=====endl; while(1) { cout请输入要插值的数据数量:; cinm; if (m=1) { cout输入数值必须大于1!\n请重新输入!endl; continue; } double a[20]; double b[20]; for (int i=0;im;i++) { cout请输入第i+1个x点:; cina[i]; cout请输入第i+1个y点:; cinb[i]; } cout请输入插值点:x=; cinx; cout结果输出插值点y=Lagrange(a,b,m,x)endl; } return 0; } 牛顿插值源程序: #includeiostream using namespace std; double Newton(double x[20],double y[20],int n,double x1) { double y1; double s[20]; for(int i=0;in;i++) s[i]=y[i]; for(int k=0;kn-1;k++) { for(int j=n-1;jk;j--) { s[j]=(s[j]-s[j-1])/(x[j]-x[j-1-k]); } double p=1; y1=s[0]; for(int h=0;hn-1;h++) { p=p*(x1-x[h]); y1=y1+p*s[h+1]; } } return y1; } int main() { int m; double x; cout=====牛顿插值=====endl; while(1) { cout请输入要插值的数据数量:; cinm; if (m=1) { cout输入数值必须大于1!\n请重新输入!endl; continue; } double a[20]; double b[20]; for (int i=0;im;i++) { cout请输入第i+1个x点:; cina[i]; cout请输入第i+1个y点:; cinb[i]; } cout请输入插值点:x=; cinx; cout结果输出插值点y=Newton(a,b,m,x)endl; return 0; } } 七、计算结果 1.给定,构造Lagrange插值函数计算。 程序运行结果图: 2.已知4个点的函数值如下表,用Newton插值法求x=0.596时的函数值。 i 0 1 2 3 xi 0.40 0.55 0.65 0.80 yi 0.41075 0.57815 0.69675 0.88811 程序运行结果图: 八、实

文档评论(0)

183****1225 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档