拉格朗日插值算法及应用实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学与统计学院课程设计报告
课程:数值分析
题目:拉格朗日插值的算法设计及应用年级:三年级
专业:数学与应用数学
学号:08063008
姓名:肖天天
指导教师:宁娣
2010年 12 月 8 日
数学与统计学院本科课程设计
拉格朗日插值的算法设计及应用
【摘要】 本文简介拉格朗日插值,它的算法及程序和拉格朗日在实际生活中的运
用。运用了拉格朗日插值的公式,以及它在MA TLAB 中的算法程序,并用具体例子说明。拉格朗日插值在很多方面都可以运用,具有很高的应用价值。
【关键词】 拉格朗日;插值;公式;算法程序;应用;科学。
一、绪论
约瑟夫·拉格朗日(Joseph Louis Lagrange),法国数学家、物理学家。他在数学、力学和天文学三个学科领域中都有历史性的贡献,其中尤以数学方面的成就最为突出。拉格朗日对流体运动的理论也有重要贡献,提出了描述流体运动的拉格朗日方法。数据建模有两大方法:一类是插值方法,另一类是拟合函数一般的说,插值法比较适合数据准确或数据量小的情形。然而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 =1y ,几何上,)
(1x L 为过(0x ,0y ),(1x ,1y )的直线,从而得到 )(1x L =0y +
101x x y y --(x-0x ). (2)
为了推广到高阶问题,我们将式(2)变成对称式
)(1x L =0l (x )0y +1l (x)1y .
其中,
0l (x )=
1
01x x x x --,1l (x)=
10x x x x --。均为1次多项式且满足
0l (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 =.0∏
≠=--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)=∏=-n
j j x x 0
).(
Eg1:已知函数表sin 6
π=0.5000,sin
4
π=0.7071,sin
3
π=0.8660,分别由线性插值与抛物插值求
sin
9
2π的数值解,并由余项公式估计计算结果的精度。
解:(1)这里有三个节点,线性插值需要两个节点,根据余项公式,我们选取前两个节点,易知:
sin
9
2π≈1L (
9
2π)=0.5000+
6
4
5000
.07071.0π
π
-
-(
9
2π-
6
π)
=0.5000+0.20713
2⨯
=0.6381
截断误差,
)92(
1πR =
)4
92)(692(2)(sinx ππππ--''3
10615.7361821-⨯=⨯⨯
≤ππ, 得.105.010615.713--⨯<⨯=ζ知结果至少有1位有效数字。
(2)易知sin
9
2π≈
+⨯=
5000.0)
3-
6
)(
4
-
6
()
33-9
2)(
4
-
92()9
2(
2π
ππππππππL ⨯-
-
-
-)
)(
(
)
)((
3
4
6
4
3
9
26
9
2ππππππππ
0.7071+
8660.04
3
6
3
4
9
26
9
2⨯-
-
-
-)
)(
(
)
)((
ππππππππ=
7071.09
85000
.092⨯+
⨯⨯-
9
10.8660=0.6434
截断误差为:
≤
---'''=
=ξ
π
ππππππx x R )4
92)(492)(692(6)(sin )92(
22
10
861..09
36
18
6
1-⨯=⨯
⨯
⨯
π
π
π
得.105.010861.824--⨯<⨯=ζ知结果至少有两位数字。 比较本题精确解sin
9
2π=0.642787609...,实际误差限分别为0.0047和0.00062。
4,Lagrange 插值算法和程序
function yy=nalagr(x,y,xx)
%用途:Lagrange 插值法数值求解;格式:yy=nalagr(x,y,xx)
%x 是节点向量,y 是节点上的函数值,xx 是插值点(可以多个),yy 返回插值 m=length(x);n=length(y);
if m~=n,error('向量x 与y 的长度必须一致');end s=0;
for i=1:n
t=ones(1,length(xx));