c++实现牛顿插值法实验报告

c++实现牛顿插值法实验报告

ID:30773782

大小:268.00 KB

页数:20页

时间:2019-01-03

c++实现牛顿插值法实验报告_第1页
c++实现牛顿插值法实验报告_第2页
c++实现牛顿插值法实验报告_第3页
c++实现牛顿插值法实验报告_第4页
c++实现牛顿插值法实验报告_第5页
资源描述:

《c++实现牛顿插值法实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用Newton商差公式进行插值姓名:陈辉学号:13349006院系:数据科学与计算机学院专业:计算机科学与技术班级:计科-班日期:2015-10-11指导老师:纪庆革目录一、实验目的3二、实验题目3三、实验原理与基础理论3四、实验内容6五、实验结果10六、心得体会14七、参考资料14八、附录(源代码)14一、实验冃的编写一个程序,用牛顿差商公式进行插值。二、实验题目编写一个程序,用牛顿差商公式进行插值。三、实验原理与基础理论牛顿插值公式为:NnM=fM+/[Xo^iK%一%0)+…+f[xOf...,xn](x一%0)…(

2、X-Xn_!)其中,丫]_(衍)-心)/00*兀1」一衍-%0耐]/!巾…耳]一门兀0,・・・,尢订f[xQf...9xk=Xk—尤0我们将从键盘读入n阶牛顿插值的n+1个节点、=0,1,以此得出牛顿插值多项式。有了节点,我们只需要求亢勺,…,冷]即可。我们记f[xmf...,s订为t[m][k],则t[m][k]在差商表表的位置为(m,k):mk012•••n0/(%o)2心)f[xlfx0]3心)f込衍]f[x2txlfx0]••••・•・••••••••nf[^n>兀n-l]f氏p^n-2]・••f[兀?V…>X

3、°]由fRo,…,g]的公式可得t[m][k]=[t[m][k-l]-t[m-l][k-l])/(x[i]直观上来看,表中的某格的差商值口J由其左边和左上边的值求得,从而牛顿插值多项式变为N(x)=t[0][0]+t[l][l](x-x[O])+…+t[n][n](x-x[O])...(x-x[n-l])做到这一步,我们已经可以通过上面的数据计算对于给出的x,f(x)的近似值。为了更规范地表示,下面我把N(x)变换成标准的降幕多项式N(x)二a[n]xAn+a[n-l]xA(n-l)+...+a[2]xA2+a[l]x+a

4、[0]o为了便于运算,不妨先把x・x[i]中的减号换成加号(在最后令y[i]=-x[i],在令x[i]=y[i],仍可以得到原本的结果),那么有:(%+x[O])(x+x[l])...(%+x[m—1])m-1=xm+xm_1》x[i]i=0+xm~2》x[i[O]]x[i[l]+…+x°》x[i[O]]x[i[l]]...x[i[m—1]]为了便于表示,把》x[t[O]]x[i[l]]...%i[k—1]]记为m那么(%+x[O])(x+x[l])...(%+x[m—1])只要把N(x)中的每一项展开然后x次数相同的系数

5、相加就可以得到数组ao于是可以列出下表:x[0]x[l]■••x[k]•••x[n-l]x[n]t[0]10000t[l]11000t[2]22000・••t[k]》x[n—k]n_k》x[n—k—1]n-k10•・••••••■•・••••t[n-l]x[n—1]n-1^x[n—2]n-1•••^x[n-k—1]n-1•••10t[n]》x[n]n》x[n—1]n■••》x[n—k]n•••»[1]n1表中x[i]列的和就是N(x)中a[i]的值,下面就来求这个和,记c[g][h]=工x[i[0]]...x[i[h-l]

6、=^x[h]c[g][h]的意义为g个数屮所冇h个数乘积Z和,可以由g-1个数中所冇h-1个数乘积Z和,和g-1个数中所有h个数乘积Z和求得,递推公式为c[g][h]=c[g-l][h-l]x[i[h]]+c[g-l][h]o由c[g][h]的意义可以得到递推的边界状态为c[i][0]=x[0]+...+x[i],c[i][i]=x[0]...x[i]o于是我们又可以得到一张数组C的表(初始状态):ij01•■■k•・•n0x[0]1x[0]+x[l]x[0]x[l]・••••••••kk》冰]t=lkt=l•・••・

7、•nnt=lnt=l表的左下角每个空格都可以由其上血的和左上边的格中的值求;II。这样,所需要求的所有值都已经得到,只需要通过简单的循环结构就可以算出数组a,从而得到一个降幕的多项式。四、实验内容实验环境:MacOSXYosemite,SublimeText2,Xcode,CMD实验步骤:我用一个类封装牛顿插值算法:678901234567890111122222222223private:intn;doublex[20]rf[20]ra[20],c[20][20]fy[20];doublet[20][20];//Divi

8、dedDifferenceTablepublic:Ne^onlnterpolation();voidInterpolation。;voidInput();voidMakeTableO;doubleDividedDifference(doubleflrdoublef0rdoublexlrdoublex0)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。