计算方法与实习大作业

计算方法与实习大作业
计算方法与实习大作业

计算方法与实习大作业

班级:021011班

学号:02101091

姓名:师梦艳

插值法:拉格朗日插值多项式

在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·路易斯·拉格朗日命名的一种多项式插值方法。许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过实验和观测来了解。如对实践中的某个物理量进行观测,在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个多项式,其恰好在各个观测的点取到观测到的值。这样的多项式称为拉格朗日(插值)多项式。数学上来说,拉格朗日插值法可以给出一个恰好穿过二维平面上若干个已知点的多项式函数。拉格朗日插值法最早被英国数学家爱德华·华林于1779年发现,不久后(1783年)由莱昂哈德·欧拉再次发现。1795年,拉格朗日在其著作《师范学校数学基础教程》中发表了这个插值方法,从此他的名字就和这个方法联系在一起。

数据建模有两大方法:一类是插值方法,另一类是拟合函数一般的说,插值法比较适合数据准确或数据量小的情形。然而Lagrange 插值有很多种,1阶,2阶,…n 阶。我们可以利用拉格朗日插值求方程,根据它的程序求原方程的图像。下面我具体介绍分析一下拉格朗日插值的算法设计及应用。 具体算法

1、基本概念 已知函数y=f(x)在若干点i x 的函数值i y =

()

i x f (i=0,1,???,n )一个差值问

题就是求一“简单”的函数p(x):p(i x )=i y ,i=0,1,???,n, (1) 则p(x)为f(x)的插值函数,而f(x)为被插值函数会插值原函数,0x ,1x ,

2x ,...,n x 为插值节点,式(1)为插值条件,如果对固定点-

x 求f(-

x )数值解,

我们称-x 为一个插值节点,f(-x )≈p(-x )称为-x 点的插值,当-

x ∈[min(0x ,1x ,

2x ,...,n x ),max(0x ,1x ,2x ,...,n x )]时,称为内插,否则称为外插式外推,

特别地,当p(x)为不超过n 次多项式时称为n 阶Lagrange 插值。

2、Lagrange 插值公式 (1)线性插值)1(1L

设已知0x ,1x 及0y =f(0x ) ,1y =f(1x ),)(1x L 为不超过一次多项式且满足

)(01x L =0y ,)(11x L =1

y ,几何上,)(1x L 为过(0x ,0y ),(1x ,1y )的直线,从而

得到

)(1x L =0y +

10

1x x y y --(x-0x ). (2)

为了推广到高阶问题,我们将式(2)变成对称式

)(1x L =0l (x )0y +1l (x)1y .

其中,

l (x )=101

x x x x --,1l (x)=010x x x x --。均为1次多项式且满足 0

l (x )=1且1l (x)=0。或0l

(x )=0且1l (x)=1。

两关系式可统一写成)(i i x l =??

?≠=j

i j i 01 。 (3) (2)n 阶Lagrange 插值

)

(x L n

设已知0x ,1x ,2x ,...,n x 及i y =f(i

x )(i=0,1,.....,n),

)

(x L n 为不超过n 次多

项式且满足i

i n y x L =)((i=0,1,...n ).

易知

)(x L n =0l (x )0y +....+)(x l n n

y . 其中,)

(x l i 均为n 次多项式且满足式(3)(i,j=0,1,...,n ),再由

j

x (j ≠i )

为n 次多项式

)

(x l i 的n 个根知

)

(x l i =c

∏≠=-n

i

i j j

x

x 0

.最后,由

?

=-=∏≠=1)()(0n

i

j j j i j i x x c x l c=

∏≠=-n

i

j j j

i

x x 0)

(1

,i=0,1,...,n.

总之,)(x L n =i

n

i i y x l ∑=0

)(,)

(x l i =

.

∏≠=--n

i

j j j

i

j

x x x x 式为n 阶Lagrange 插值公式,其中,)

(x l i

(i=0,1,...n )称为n 阶Lagrange 插值的基函数。

3,Lagrange 插值余项

设0x ,1x ,2x ,...,n x ∈[a,b],f(x)在[a,b]上有连续的n+1阶导数,)

(x L n

为f(x)关于节点0x ,1x ,2x ,...,n x 的n 阶Lagrange 插值多项式,则对任意x ∈[a,b],

).

()!1()()()()()1(x n f x L x f x R n n n ωξ+=-=+其中,ξ位于0x ,1x ,2x ,...,n x 及x 之间

(依赖于x ),ω(x)=

1

1

|)

(|max ).(++<=<===-?∏n n b

x a n

j j M x x x ,此时只有在f(x)的(n+1

)阶导数存在时才能使用,由于ξ不能具体求出因此一般常利用

1

1

|)

(|max ++<=<==?n n b

x a M x 求出误差限,即有

)

(|)!1(|)(|11

x W n M x R n N n +++≤

拉格朗日插值模型简单,结构紧凑,是经典的插值法。但是由于拉格朗日的插值

多项式和每个节点都有关,当改变节点个数时,需要重新计算。且当增大插值阶数时容易出现龙格现象。 4,题目:

C 语言下程序如下: #include

float Lagrange(float x[],float y[],float xx,int n) {int i,j;

float *a,yy=0; a=new float[n]; for(i=0;j<=n-1;i++) {

a[i]=y[i];

for(j=0;j<=n-1;j++)

if(j!=i)a[i]*=(xx-x[j])/(x[i]-x[j]); yy+=a[i]; }

delete a; return yy; }

void main() {

float x[6]={0.30,0.42,0.50,0.58,0.66,0.72};

float y[6]={1.04403,1.08462,1.11803,1.15603,1.19817,1.23223}; float xx=0.46,yy;

yy=Lagrange(x,y,xx,6);

printf("x=%f,y=%f\n",xx,yy); }

运行结果:

(注:素材和资料部分来自网络,供参考。请预览后才下载,期待你的好评与关注!)

相关主题
相关文档
最新文档