1、牛顿插值法的分析与应用学生姓名: 班级: 学号: 电话: 指导教师: 成绩: 一定义)(xf关于 i的零阶差商)(iixff)(xf关于 i, jx的一阶差商ijji xffxf,依次类推, )(xf关于 i, 1i, ki的 k 阶差商iki kiikii xfxff , 11 二. 牛顿插值多项式设给定的 n+1 个互异点 )(,kxf, n,1,0, jix, ji,称满足条件 )(kknfN, ,的 n 次多项式 )()(,)(,)( 10100100 nnxxxfxfxfN 为 Newton 插值多项式,称 ,)(,)()( 010 bafNfEnjjn 为插值余项。三.算法步骤 1
2、:输入节点(xj,yj) ,精度 ,计值点 xx,f0 p,1 T,1 i;步骤 2:对 k=1,2,i 依次计算 k 阶均差fxi-k,xi-k+1,xi = (fxi-k+1,xi- fxi-k,xi)/( xi -xi-k )步骤 3:(1) 、若| fx1,xi- fx0,xi-1| ,则 p 为最终结果 Ni-1(x),余项 Ri-1= fx0,xi(xx-xi-1)T。(2) 、否则(xx-xi-1)*T T,p+ fx0,xi*T p,转步骤 4。步骤 4:若 in,则 i+1 i,转步骤 2;否则终止。四.流程i+1 iYESNO开始输出 ,xx ,n 及(x j,y j)f0
3、 g0,f i q0k= 1,2, ,i(q k-1g k-1) (x ix i-k) qkk|gi-1-qi-1|qi(xi-xi-1)T R输出 p,r,iSTOP 1(xi-xi-1)T Tp+qi*T pk = 1,2, ,iYESi+1 iNO五.程序清单#include“stdio.h“#define n 4/牛顿插值的次数void main()float an+1n+2=0,s=0,t=1,x;int i,j;printf(“请输入 xi 及 yi 的值/要求先输入 xi 再输入 yi 然后输入下一组n“);for(i=0;in+1;i+)for(j=0;j2;j+)scanf(
4、“%f“,for(j=1;jn+2;j+)/计算各阶均差for(i=j;in+1;i+)aij+1=(aij-ai-1j)/(ai0-ai-j0);printf(“输出 xi,yi 及各阶均差n“);for(i=0;in+1;i+)for(j=0;jn+2;j+)qk gkkknqi(xx-xn-1)*T R输出 P, R,nSTOP 2printf(“%6.5f “,aij);printf(“n“);printf(“输出牛顿插值表达式n“);printf(“N%d(x)=“,n);for(i=0;in+1;i+)printf(“%6.5f“,aii+1);for(j=0;ji;j+)prin
5、tf(“(x-%3.2f)“,aj0);if(i=n)break;printf(“+“);printf(“n“);printf(“输入插值点 x=“);scanf(“%f“,for(i=0;in+1;i+)/计算插值点的近似值for(j=0;ji;j+)t*=(x-aj0);s+=aii+1*t;printf(“N%d(%4.3f)=%6.5fn“,n,x,s);六.程序实现参考文献:Richard L. Burden, J. Douglas Faires, Numerical Analysis(Seventh Edition), Brooks Pub. Co.,2001.2. 蔡大用,白峰杉. 高等数值分析. 清华大学出版社,北京,1998.3. 邓建中,刘之行. 计算方法(第二版).西安交通大学出版社,2001.4. 韩旭里. 数值分析. 中南大学出版社,2003.