c++实现牛顿插值法实验教材.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE  -  PAGE 2 - 数值实验实验报告 陈辉数值实验 用Newton商差公式进行插值 姓名:陈辉 学号 院系:数据科学与计算机学院 专业:计算机科学与技术 班级:计科一班 日期:2015-10-11 指导老师:纪庆革 -  PAGE 19 - -  PAGE 2 - 目录 TOC \o 1-3 \h \z \u一、 实验目的  PAGEREF _Toc306229417 \h 3 二、 实验题目  PAGEREF _Toc306229418 \h 3 三、 实验原理与基础理论  PAGEREF _Toc306229419 \h 3 四、 实验内容  PAGEREF _Toc306229420 \h 6 五、 实验结果  PAGEREF _Toc306229421 \h 10 六、 心得体会  PAGEREF _Toc306229422 \h 14 七、 参考资料  PAGEREF _Toc306229423 \h 14 八、 附录(源代码)  PAGEREF _Toc306229424 \h 14  实验目的 编写一个程序,用牛顿差商公式进行插值。 实验题目 编写一个程序,用牛顿差商公式进行插值。 实验原理与基础理论 牛顿插值公式为: Nnx=fx0+fx0,x1x-x0+…+fx0,…,xnx-x0…(x-xn-1) 其中, fx0,x1=fx1-f(x0)x1-x0 fx0,…,xk=fx1,…xk-f[x0,…,xk]xk-x0 我们将从键盘读入n阶牛顿插值的n+1个节点xi, fi,i=0,1,…,n,以此得出牛顿插值多项式。 有了节点,我们只需要求fx0,…,xk即可。 我们记fxm,xm-1,…,xm-k为t[m][k],则t[m][k]在差商表表的位置为(m, k): m \ k012…n0f(x0)2f(x1)fx1,x03f(x2)fx2,x1fx2,x1,x0……………nf(xn)fxn,xn-1fxn,xn-1,xn-2…fxn,…,x0 由fx0,…,xk的公式可得t[m][k] = (t[m][k-1] - t[m-1][k-1]) / (x[i] – x[i-j]),直观上来看,表中的某格的差商值可由其左边和左上边的值求得,从而牛顿插值多项式变为N(x) = t[0][0] + t[1][1](x-x[0]) + … + t[n][n](x-x[0])…(x-x[n-1]) 做到这一步,我们已经可以通过上面的数据计算对于给出的x,f(x)的近似值。 为了更规范地表示,下面我把N(x)变换成标准的降幂多项式N(x) = a[n]x^n + a[n-1]x^(n-1) + … + a[2]x^2 + a[1]x + a[0]。 为了便于运算,不妨先把x-x[i]中的减号换成加号(在最后令y[i]=-x[i],在令x[i]=y[i],仍可以得到原本的结果),那么有: x+x0x+x1…x+xm-1=xm+xm-1i=0m-1xi+xm-20≤i0≠i1≤m-1xi0xi1+…+x00≤i0≠…≠im-1≤m-1xi0xi1…xim-1 为了便于表示,把 0≤i0≠…≠ik≤m-1xi0xi1…xik-1 记为 mx[k] 那么 x+x0x+x1…x+xm-1=xm+xm-1mx1+…+x0mx[m] 只要把N(x)中的每一项展开然后x次数相同的系数相加就可以得到数组a。于是可以列出下表: x[0]x[1]…x[k]…x[n-1]x[n]t[0]10000t[1]1x[1]1000t[2]2x[1]2x[1]000…t[k]n-kx[n-k]n-kx[n-k-1]10……………t[n-1]n-1x[n-1]n-1x[n-2]…n-1x[n-k-1]…10t[n]nx[n]nx[n-1]…nx[n-k]…nx[1]1表中x[i]列的和就是N(x)中a[i]的值,下面就来求这个和,记 cgh=0≤i0≠…≠i[h]≤g-1xi0…xih-1=gx[h] c[g][h]的意义为g个数中所有h个数乘积之和,可以由g-1个数中所有h-1个数乘积之和,和g-1个数中所有h个数乘积之和求得,递推公式为c[g][h]=c[g-1][h-1]x[i[h]]+c[g-1][h]。由c[g][h]的意义可以得到递推的边界状态为c

文档评论(0)

1112111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档