第5章 实验四Lagrange插值多项式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 值