数值计算方法实验报告1.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
长春理工大学学生实验报告 学院名称 计算机科学与技术 专业班级 学号 学生姓名 实验日期 2014.09.12 成绩 课程名称 数值计算方法 实验题目 实验1 代数插值 一、实验目的和要求 使用拉格朗日插值法或牛顿插值法求解:已知f(x)在6个点的函数值如下表所示,运用插值方法,求f(0.54)的近似值。 X 0.40 0.50 0.60 0.70 0.80 f(x) 0.41075 0.57815 0.69675 0.88811 1.02652 二、主要设备 PC,Windows操作系统,VC++6.0编程平台; 三、实验内容和原理 设函数在区间[a,b]上n+1互异节点x0,x1,…,xn上的函数值分别为y0,y1,…,yn,求n次插值多项式Pn(x),满足条件 Pn(xj)=yj, j=0,1,…,n 令 Ln(x)=y0l0(x)+y1l1(x)+…+ynln(x)= ∑yili(x) 其中l0(x),l1(x),…, ln(x) 为以x0,x1,…,xn为节点的n次插值基函数, 则Ln(x)是一次数不超过n的多项式,且满足 Ln(xj)=yj, L=0,1,…,n 再由插值多项式的唯一性,得 Pn(x)≡Ln(x) 流程图如下: 四、操作方法与实验步骤 #include stdio.h #include stdlib.h #include conio.h #include alloc.h void difference(float *x,float *y,int n) { float *f; int k,i; f=(float *)malloc(n*sizeof(float)); for(k=1;k=n;k++) { f[0]=y[k]; for(i=0;ik;i++)f[i+1]=(f[i]-y[i])/(x[k]-x[i]); y[k]=f[k]; } return; } int main() { int i,n; float x[20],y[20],xx,yy; printf(请输入数据个数n:); scanf(%d,n); printf(\n); for(i=0;i=n-1;i++) { printf(x[%d]=,i); scanf(%f,x[i]); printf(y[%d]=,i); scanf(%f,y[i]); printf(\n); } printf(\n); difference(x,(float *)y,n); printf(请输入插值X:); scanf(%f,xx); yy=y[20]; for(i=n-1;i=0;i--) yy=yy*(xx-x[i])+y[i]; printf(\n近似值为:F(%f)=%f\n,xx,yy); } 五、实验结果与分析 分析: 拉格朗日插值的优点是插值多项式特别容易建立,缺点是增加节点是原有多项式不能利用,必须重新建立,即所有基函数都要重新计算,这就造成计算量的增加。牛顿插值法则很好地避免了上述问题。 讨论、心得 本实验有两种插值方法可以选用,由于时间关系,最终选用牛顿插值法。若是下去有时间的话,可以再用拉格朗日插值法验证一番。既能增加编程的锻炼能力,还能进一步巩固一下所学知识。 实验地点 北区多学科综合楼4506 指导教师

文档评论(0)

151****0181 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档