拉格朗日插值多项式

更新时间:2023-05-24 03:34:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

拉格朗日插值多项式

数值计算方法上机报告

学院:计算机与通信学院班级:计算机科学与技术姓名:柴小辉学号:

拉格朗日插值多项式

05级3班 05240326

拉格朗日插值多项式

尽管满足插值条件Pn(xi)=yi (i=0,1,2,…,n) (1) 的n次插值多项式是唯一的,然而它的表达式却可以有多种形式。如果取满足条件

1 i=k

lk(xi)= (i=0,1,2,…,n) (2) 0 i≠k

的一组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)线性生成的多项式(3),就满足插值条件(1)的n次插值多项式。 满足条件(2)的n次代数多项式lk(x)(k=0,1,2…,n),称为在n+1个节点xi (i=0,1,2,…,n)上的n次基本插值多项式;形如(3)的插值多项式称为拉格朗日插值多项式,记作Ln(x),即

(4)

其中基函数

例 给定函数表如下: 试求e0.285的近似值。

附:

#define M 5 struct data {double x; double y; };

main() {int i,j,k;

double x,sum=0,p; struct data z[M];

拉格朗日插值多项式

printf("Your data:\n"); for(i=0;i<M;i++)

{scanf("%lf",&z[i].x); scanf("%lf",&z[i].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-z[j].x)/(z[k].x-z[j].x); sum=sum+p*z[k].y; }

printf("The result is %lf\n",sum); getch(); }

本文来源:https://www.bwwdw.com/article/w3f4.html

Top