第5章 实验四Lagrange插值多项式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5章 实验四Lagrange 插值多项式

实验目的:理解Lagrange 插值多项式的基本概念,熟悉Lagrange 插值多项

式的公式及源代码,并能根据所给条件求出Lagrange 插值多项式,理解龙格现象。

5.1 Lagrange 插值多项式 Lagrange 插值多项式的表达式: 1,,2,1,)

()()(,

)()(1

11

1+=--==∏

∑+≠=+=n i x x x x x l x l y x L n i

j j j i j i n i i i 。

其中)(x l i 被称为插值基函数,实际上是一个n 次多项式。)(x l i 的这种表示具有较好的对称性。公式具有两大优点:(1)求插值多项式,不需要求解线性方程组,当已知数据点较多时,此公式更能显示出优越性。(2)函数值可以用符号形式表示,数据点未确定的纵坐标可用多项式表示。

5.2 Lagrange 插值多项式源代码I

% 功能: 对一组数据做Lagrange 插值 % 调用格式:yi=Lagran_(x,y,xi) % x,y 数组形式的数据表 % xi:待计算y 值的横坐标数组 % yi 用Lagrange 插值算出的y 值数组 function fi=Lagran_(x,f,xi) fi=zeros(size(xi)); np1=length(f); for i=1:np1

z=ones(size(xi)); for j=1:np1

if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));end end

fi=fi+z*f(i); end return

例5.1 已知4对数据(1.6,3.3),(2.7,1.22),(3.9,5.61),(5.6,2.94)。写出这4个数据点的Lagrange 插值公式,并计算出横坐标xi=[2.101,4.234]时对应的纵坐标。

解:4个数据点的Lagrange 插值公式为:

)

9.36.1(*)7.26.5(*)6.16.5()

9.3(*)7.2)(6.1(*

94.2)

6.59.3(*)

7.29.3(*)6.19.3()

6.5(*)

7.2(*)6.1(*9.3)

6.5

7.2(*)9.37.2(*)6.17.2()

6.5(*)9.3(*)6.1(*22.4)

6.56.1(*)9.36.1(*)

7.26.1()

6.5(*)9.3(*)

7.2(*

3.3)(3------+

------+

------+

------=x x x x x x x x x x x x x L

清单5.1 clear

x=[1.6, 2.7, 3.9, 5.6]; y=[3.3, 1.22, 5.61, 2.94]; xi=[2.101,4.234]; yi=Lagran_(x,y,xi); xx=1.5:0.05:6.5; yy=Lagran_(x,y,xx); plot(xx,yy,x,y,'o')

其结果为:

yi =

1.0596 6.6457

x

g (x ):-, d a t a p o i n t s :o

图5.1 插值多项式曲线图

5.3 Lagrange插值多项式源代码II

% 输入:x是插值节点横坐标向量;y是插值节点对应纵坐标向量。

% 输出:C是拉格朗日插值多项式的系数矩阵;L是插值基函数系数矩阵。

function [C,L]=lagran(x,y)

w=length(x);

n=w-1;

L=zeros(w,w);

for k=1:n+1

V=1;

for j=1:n+1

if k~=j

V=conv(V,poly(x(j)))/(x(k)-x(j));

end

end

L(k,:)=V;

end

C=y*L

程序中使用了命令poly和conv。poly命令创建一个向量,其项为以多项式的系数,该多项式具有给定的根。conv命令生成一个向量,其项为多项式系数,该多项式是另外两个多项式的乘积。例如:找出两个一次多项式p(x)和q(x)的乘积,它们的根为3和5。

>> p=poly(3)

p=

1-3

>> q=poly(5)

q=

1-5

>> conv(p,q)

ans=

1 -8 15

例5.2 用Lagrange 插值多项式源代码II ,对4对数据(1.6,3.3),

(2.7,4.22),(3.9,5.61),(5.6,2.94),写出这4个数据点的Lagrange 插值公式,并计算出横坐标组xi=[2.101,4.234]时对

应的纵坐标值。

解:4个数据点的Lagrange 插值公式为:

)

9.36.1(*)7.26.5(*)6.16.5()

9.3(*)7.2)(6.1(*

94.2)

6.59.3(*)

7.29.3(*)6.19.3()

6.5(*)

7.2(*)6.1(*9.3)

6.5

7.2(*)9.37.2(*)6.17.2()

6.5(*)9.3(*)6.1(*22.4)

6.56.1(*)9.36.1(*)

7.26.1()

6.5(*)9.3(*)

7.2(*

3.3)(3------+

------+

------+

------=x x x x x x x x x x x x x L

清单5.2 clear

x=[1.6, 2.7, 3.9, 5.6]; y=[3.3, 1.22, 5.61, 2.94]; xi=[2.101,4.234]; [C,L]=lagran(x,y); xx=1.5:0.05:6.5; yy= polyval(C,xx); plot(xx,yy, x,y,'o')

数据清单见图5.2,插值曲线图见图5.3。

图5.2 输出插值多项式的系数、插值基函数系数矩阵及yy 值

相关文档
最新文档