计算方法实验二插值法.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文档。上传文档
查看更多
计算方法实验二插值法

《计算方法》实验报告 二级学院: 计算机学院 专 业: 计算机科学与技术 指导教师: 爨莹 班级学号: 姓 名: 实验二 插值法 实验目的: 1)、掌握直接利用拉格郎日插值多项式计算函数在已知点的函数值;观察拉格郎日插值的龙格现象。 2)、了解Hermite插值法、三次样条插值法原理,结合计算公式,确定函数值。 2、实验要求: 认真分析题目的条件和要求,复习相关的理论知识,选择适当的解决方案和算法; 编写上机实验程序,作好上机前的准备工作; 上机调试程序,并试算各种方案,记录计算的结果(包括必要的中间结果); 分析和解释计算结果; 按照要求书写实验报告; 实验内容: 1) 用拉格郎日插值公式确定函数值;对函数f(x)进行拉格郎日插值,并对f(x)与插值多项式的曲线作比较。 已知函数表:(0.56160,0.82741)、(0.56280,0.82659)、(0.56401,0.82577)、(0.56521,0.82495)用三次拉格朗日插值多项式求x=0.5635时函数近似值。 2) p115 例5.4 4、题目: 1) 用拉格郎日插值公式确定函数值;对函数f(x)进行拉格郎日插值,并对f(x)与插值多项式的曲线作比较。 已知函数表:(0.56160,0.82741)、(0.56280,0.82659)、(0.56401,0.82577)、(0.56521,0.82495)用三次拉格朗日插值多项式求x=0.5635时函数近似值。 2) p115 例5.4 5、原理: 拉格郎日插值原理: 已知函数y=f(x)在n+1个不同的点x0 ,x1 ,…,x2 上 的函数值分别为 y0 ,y1 ,…,yn ,求一个次数不超过n的多项式Pn (x),使其满足 Pn (xi )=yi , (i=0,1,…,n), 即n+1个不同的点可以唯一决定一个n次多项式。 1. 插值基函数 过n+1个不同的点分别决定n+1个n次插值基函数 l0 (x),l1 (x),…,ln (X) 每个插值基本多项式li (x)满足: (1) li (x)是n次多项式; (2) li (xi )=1,而在其它n个li (xk )=0 ,(k≠i)。 由于li (xk )=0 ,(k≠i), 故有因子: (x-x0 )…(x-xi-1 )(x-xi+1 )…(x-xn ) 因其已经是n次多项式,故而仅相差一个常数因子。令: li (x)=a(x-x0 )…(x-xi-1 )(x-xi+1 )…(x-xn ) 由li (xi )=1,可以定出a, 进而得到: 等距结点插值法原理: 是根据 △ △ ……求出差 分表,再利用等距结点插值公式进行计算 设计思想: 拉格朗日插值法是根据 n + 1个点x0, x1, ... xn(x0 x1 ... xn)的函数值f(x0), f(x1) , ... f(xn)推出n次多項式p(x),然后n次多項式p(x)求出任意的点x对应的函数值f(x)的算法。 等距结点插值法是根据 △ △ ……求出差 分表,再利用等距结点插值公式进行计算 对应程序: 实验一: #includestdio.h #includeiostream #includemath.h #define N 4 using namespace std; double fun(double *x,double *y, int n,double p); void main() { int i; double a[N],p,z; double b[N]; cout 请输入初始函数表中x的值 x= endl; for(i=0;iN;i++) { cina[i];} cout请输入初始函数中y的值 y= endl; for(i=0;iN;i++) { cinb[i];} cout请输入拉格朗日插值节点 x0= endl; cinp; cout答案是 = fun(a,b,N,p)endl; } double fun(double x[],double y[], int n,double p) { double z=0,s=1.0; int

文档评论(0)

kakaxi + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档