拉格朗日插值多项式.docx
拉格朗日插值多项式数值计算方法上机报告 学院:计算机与通信学院班级:计算机科学与技术姓名:柴小辉学号: 拉格朗日插值多项式 05级3班 05240326 尽管满足插值条件Pn(xi)=yi (i=0,1,2,n) (1) 的n次插值多项式是唯一的,然而它的表达式却可以有多种形式。如果取满足条件 1 ik lk(xi)= (i=0,1,2,n) (2) 0 ik 的一组n次的代数多项式l0(x)、l1(x)、ln(x)作为上述线性空间的基,容易看出 y0l0(x)+ y1l1(x)+ +ynln(x)=yklk(x) (3) 必是一个不高于n次的代数多项式,而且它在节点x0、x1、xn 上的值依次是 y0、y1、yn也就是说,由n+1个n次代数多项式y0l0(x)、 y1l1(x)、 、ynln(x)线性生成的多项式,就满足插值条件的n次插值多项式。 满足条件的n次代数多项式lk(x),称为在n+1个节点xi 上的n次基本插值多项式;形如的插值多项式称为拉格朗日插值多项式,记作Ln(x),即 (4) 其中基函数 例 给定函数表如下: x ex 0.1 1.1502 0.2 1.2214 0.3 1.3499 0.4 1.4918 0.5 1.6487 试求e0.285的近似值。 附: #define M 5 struct data double x; double y; ; main int i,j,k; double x,sum=0,p; struct data zM; printf("Your data:n"); for(i=0;i<M;i+) scanf("%lf",&zi.x); scanf("%lf",&zi.y); printf("Input x:n"); scanf("%lf",&x); for(k=0;k<M;k+) p=1; for(j=0;j<M;j+) if(j!=k) p=p*(x-zj.x)/(zk.x-zj.x); sum=sum+p*zk.y; printf("The result is %lfn",sum); getch;