Lagrange插值多项式

宁夏师范学院数学与计算机科学学院
《数值分析》实验报告
实验序号:1实验项目名称:Lagrange插值多项式
end
L(k,:)=V;
end
C=y*L
五、实验结果与数据处理
1.(1)清单:
>> clear
>> clf
>> x=[1,2,2.5];
>> y=x+2./x;
>> [C,L]=lagran(x,y);
C =
0.4000 -1.2000 3.8000
>> xx=[1.5,1.2];
>> yy=polyval(C,xx)
yy =
2.9000 2.9360
(2)清单
>> clear,clf
>> x=[0.5,1,3,5];
>> y=x+2./x;
>> [C,L]=lagran(x,y);
C =
-0.2667 2.5333 -6.3333 7.0667
>> xx=[1.5,1.2];
>> yy=polyval(C,xx)
yy =
2.3667 2.6539
2.
清单:
>> x=0:pi/16:pi/2;
>> y=x.*sin(x);
>> [C,L]=lagran(x,y);
C =
Columns 1 through 8
-0.0001 -0.0003 0.0089 -0.0005 -0.1663 -0.0001 1.0000 -0.0000
Column 9
>> xx=0:pi/16:pi/2;
>> yy=polyval(C,xx);
>> plot(xx,yy,'b',x,y,'.')
>> hold on
>> a=polyfit(x,y,4)
>> grid on
六、分析与讨论
通过本次的实验,我初步掌握了
综合运用专业及基础知识,解决实际数学问题的能力,运行过程中有几处错误,但照提示改过就出结果了。

七、教师评语。

合集下载

拉格朗日插值法

拉格朗日插值法

优点与缺点
拉格朗日插值法的公式结构整齐紧凑,在理论分析中十分方便,然而在计算中, 当插值点增加或减少一个时,所对应的基本多项式就需要全部重新计算,于是整 个公式都会变化,非常繁琐。这时可以用重心拉格朗日插值法或牛顿插值法来代 替。此外,当插值点比较多的时候,拉格朗日插值多项式的次数可能会很高,因 此具有数值不稳定的特点,也就是说尽管在已知的几个点取到给定的数值,但在 附近却会和“实际上”的值之间有很大的偏差(如右下图)。这类现象也被称为龙 格现象,解决的办法是分段用较低次数的插值多项式。
为拉格朗日基本多项式(或称插值基函数),其表达式为:
。 拉格朗日基本多项式 为0。
的特点是在
上取值为1,在其它的点
上取值
范例
假设有某个二次多项式函数 ,已知它在三个点上的取值为:
要求 的值。 首先写出每个拉格朗日基本多项式:
然后应用拉格朗日插值法,就可以得到 的表达式( 为函数 的插值函数):
此时代入数值
拉格朗日插值法
Lagrange polynomial 维基百科,自由的百科全书
定义
对某个多项式函数,已知有给定的 个取值点:
其中 对应着自变量的位置,而 对应着函数在这个位置(每一个y值都不等于0)的取 值。 假设任意两个不同的 都互不相同,那么应用拉格朗日插值公式所得到的拉格朗 日插值多项式为:
其中每个
就可以求出所需之值:

证明
存在性 对于给定的k+1个点: ,拉格朗日插值法的思路是找到一个 在一点 取值为1,而在其他点取值都是0的多项式 。这样,多项式
在点 满足 取值为 ,而在其他点取值都是 0。而多项式 就可以
在其它点取值为0的多项式容易找到,例如: 它在点 取值为: 。由于已 经假定 两两互不相同,因此上面的取值不等于 0。于是,将多项式除以这个取 值,就得到一个满足“在 取值为1,而在其他点取值都是0的多项式”:

第二节 插值多项式的构造

第二节 插值多项式的构造

π
π
π
π
l1 ( x ) =
− 1296
π4
1296
x( x −
π
4
)( x −
π
3
)( x −
π
2
)
l2 ( x) =
l3 ( x ) = −
π
4
x( x −
π
6
)( x −
π
4
)( x −
π
2
)
x( x − )( x − )( x − ) π 6 3 2 144 π π π l4 ( x ) = 4 x ( x − )( x − )( x − ) π 6 4 3
x − x1 x − x0 + y1 x0 − x1 x1 − x0
解 :f ( x ) = ln x , x 0 = 1 0 , x1 = 1 1, x = 1 0 .5
10.5 − 11 10.5 − 10 ln(10.5) ≈ P(10.5) = × 2.303 + × 2.398 = 2.350 5 10 − 11 11 − 10
f ( n +1) (ξ ) ω n +1 ( x ) ξ ∈ [ a , b ] 截 断 误 差 :R n ( x ) = f ( x ) − Pn ( x ) = ( n + 1)! ω n +1 ( x ) = ( x − x 0 )( x − x1 ) ⋯ ( x − x n )
(1)n = 1 时线性插值 在两个互异节点x0 , x1处的函数 值y0 , y1 , 构造线性函数 p1 ( x) = a0 + a1 x 求出p1 ( x) = y0l0 ( x) + y1l1 ( x) x − x0 x − x1 其中l0 ( x) = ,l1 ( x) = x0 − x1 x1 − x0

研究生数值分析(14)拉格朗日(Lagrange)插值多项式 共22页PPT资料

研究生数值分析(14)拉格朗日(Lagrange)插值多项式 共22页PPT资料
有 s in 5 0 0 L 2 (5 0 ) 1 6 2 3 (1 8 0 )3 2 0 5 1 0 0 .0 0 0 7 6 7
事实上,
s5 i0 n 0 L 1 (5 ) 0 0 .01 ; s 05 i0 1 n 0 L ~ 1 ( 0 5 ) 0 0 .005
因此做线性内插时取 x00.2,x10.3 相应地 y01 .2 2 1 4 ,y11 .3 4 9 9
由线性插值公式,得
L 1 (x ) 0 x .2 0 0 .3 .3 1 .2 2 1 4 0 x .3 0 0 .2 .2 1 .3 4 9 9
所得近似值为
e 0 . 2 8 5 L 1 ( 0 . 2 8 5 ) 0 0 . 2 . 2 8 5 0 0 . 3 . 3 1 . 2 2 1 4 0 0 . 2 . 3 8 5 0 . 0 2 . 2 1 . 3 4 9 9 1 . 3 3 0 6
由线性插值余项公式
所以
s in 5 0 0 L 1 ( 5 0 ) 1 2 2 3 ( 1 8 0 )2 2 0 5 0 .0 1 3 1 9 0
同理,由
s5 i 0 n L ~ 0 1 ( 5 ) 1 2 0 ( s) i1 n ( ) 2 ( 8 5 4 0 0 ) 5 5 ( 6 0 )3 0 0 0 6 0
插值多项式⑤称为拉格朗日插值多项式,记作 L n ( x )
当n=2时,由⑤式可得三点插值公式
L 2 ( x ) y 0 ( ( x x 0 x x 1 1 ) ) ( ( x x 0 x x 2 2 ) ) y 1 ( ( x x 1 x x 0 0 ) ) ( ( x x 1 x x 2 2 ) ) y 2 ( ( x x 2 x x 0 0 ) ) ( ( x x 2 x x 1 ) 1 ) 这是一个二次函数。用二次函数 L 2 ( x ) 近似

第5章 实四Lagrange插值多项式

第5章 实四Lagrange插值多项式

第5章 实验四Lagrange 插值多项式实验目的:理解Lagrange 插值多项式的基本概念,熟悉Lagrange 插值多项式的公式及源代码,并能根据所给条件求出Lagrange 插值多项式,理解龙格现象。

5.1 Lagrange 插值多项式 Lagrange 插值多项式的表达式: 1,,2,1,)()()(,)()(1111+=--==∏∑+≠=+=n i x x x x x l x l y x L n ij 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:np1z=ones(size(xi)); for j=1:np1if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));end endfi=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.57.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 clearx=[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.6457xg (x ):-, d a t a p o i n t s :o图5.1 插值多项式曲线图5.3 Lagrange插值多项式源代码II% 输入:x是插值节点横坐标向量;y是插值节点对应纵坐标向量。

Lagrange插值多项式

Lagrange插值多项式
n k 0
Y=sin(X),
Matlap 中没有现成的 Lagrange 插值函数 Ln( x) yk lk ( x) ,所以先编写一个 M 文件实现 Lagrange 插值。 设 n 个节点数据以数组 x, y 输入, 输入我们想求的 x0, 就可获得结果 z。 以 y=sin(x)为例, 取[-pi, pi], 节点为 X=-pi:0.1:pi, Y=sin(X), 画出 Lagrange 插值多项式的图像和被插值函数的图像,观察两个函数的拟合程度。 三、 计算过程 (1) 实现 lagrange 插值多项式函数程序如下: function z=lagrange(x,y,x0) n=length(x); s=0; l=1; for i=1:n; for j=1:n if j~=i; l=l*(x0-x(j))/(x(i)-x(j)); end end s=s+l*y(i) end z=s; (2)m文件调用lagrange插值函数 x=-pi:0.1:pi;y=sin(x);plot(x,y,'r') hold on x0=-3:0.1:3; y1=[]; n=length(x0); for i=1:n z=lagrange(x,y,x0(i)); y1=[y1,z]; end
问题的分析涉及的理论知识与求解的方法等matlap中没有现成的lagrange插值函数所以先编写一个m文件实现lagrange个节点数据以数组xy输入输入我们想求的x0就可获得结果z
实验报告一
班级: 数学与应用数学
学号:
姓名:
成绩:
一、 实验问题 编写一个函数实现 Lagrange 插值多项式, 要求 (1)输入: 节点 X, 及节点上的函数值 Y, 某个数 x, 输出: 输出 x 对应的 Lagrange 插值多项式的值。 (2)以 y=sin(x)为例, 取[-pi, pi], 节点为 X=-pi:0.1:pi, 画出 Lagrange 插值多项式的图像和被插值函数的图像。 二、 问题的分析(涉及的理论知识与求解的方法等)

多项式插值_Lagrange插值

多项式插值_Lagrange插值

l1( x)

(x ( x1

x0 x0
)( )(
x x2) x1 x2 )
l2
(
x)

(x ( x2

x0 x0
)( )(
x x1 ) x2 x1 )
则有
l j ( xi
)

ij

1, 0,
i j i j
称 l0(x) , l1(x),l2(x)为二次插值多项式的基函数。
An

(
xn

x0 )(
xn

yn x1)( xn

xn1 )

A0

(
x0

x1 )(
x0
y0 x2 )(x0

xn )
A1

(
x1

x0
)(
x1
y1 x2
)(
x1

xn
)
代入下式:
,
An

(xn

x0
)(
xn

yn x1 )(
xn

xn1 )
Ln(x) A0(x x1)( x x2 )(x xn ) A1(x x0 )( x x2 )(x xn )
xi yi
x0 y0
x1 y1
求解 L1(x)=a1 x+a0
使得 f(x) ≈ L1(x), x ∈[x0 , x1].
根据点斜式得到
L1( x)

y0

y1 x1

y0 x0
(x

x0 )

Lagrange插值多项式


1
lk (x)
1
lk 1 ( x)
o
xk
xk 1
x
o
xk
xk 1
x
(2) n 2 :已知 f ( xk 1 ) yk 1 ,f ( xk ) yk ,f ( xk 1 ) yk 1 , 求L2 ( x) , L2 ( xi ) yi ,i k 1 ,k ,k 1 ; 即求过 ( xk 1 ,yk 1 ) ,( xk ,yk ) ,( xk 1 ,yk 1 ) 的抛物线; 考虑L2 ( x) lk 1 ( x) yk 1 lk ( x) yk lk 1 ( x) yk 1,其中li ( x) 为二次多项式,且满足: 1 ,i j li ( x j ) ij ,i ,j k 1 ,k ,k 1 ; 0 ,i j 易得:lk 1 ( x) A( x xk )( x xk 1 ) ,再由lk 1 ( xk 1 ) 1 ,
—六位有效
高度(m) 0 100 300 1000 1500 2000 . 压强 (kgf/m2) 0.9689 0.9322 0.8969 0.8515 0.7984 0.7485
试用二次插值法求1200米处的压强值.
解:设x为高度,y为大气压强的值, 选取(1000,0.8515) ,(1500,0.7984), (2000,0.7485)三点构造二次插 值多项式 (x-x1)(x-x2) (x-x0)(x-x2) (x-x0)(x- x1) p2(x)=------------------ y0 + --------------- y1 + --------------- y2 (x0-x1)(x0-x2) (x1-x0)(x1-x2) (x2-x0)(x2-x1) 代入已知的数值,得 p2(1200)=0.8515(1200-1500)(12002000)/(1000-1500)(1000-2000)+0.7984(1200-1000)(12002000)+0.7485(1200-1000)(1200-1500)/(2000-1000)(20001500)=300*800*0.8515/500/1000+200*800*0.7984/500/500200*300*0.7485/500/1000=0.82980 所以 y(1200) p2(1200)= 0.82980 (kgf/m2)

数值分析Lagrange插值多项式


其余的将M值及f2[x_]修改即可,得到插值函数修改分f3[x_]即可。
1 n+1 !
f
n+1
(εx )
n i=0(x
− xi )
其中 εx 为区间内一点
但 Lagrange 插值法没有承接性,可以进行改良。
【Lagrange 插值算法描述】 1. 对给定函数选取其区间上的一系列节点并计算其函数值,得到点列 (x0 , y0 ),…,( xn , yn ); 2. 通过上述点列构造 Lagrange 基函数li x = 出 Lagrange 插值函数Ln x =
【实验】 通过 Mathematica 编写程序得到如下结果: N=5: 1. 取xi = 5 −
10 N
i , i = 0,1, … ,N 得到:
(1) 插值点为:
(2) 由上述插值点构造出 Lagrange 插值函数:
(3)由题目所给出的条件计算误差得到:
插值函数与原函数的图像为:
其中蓝色为原函数图像,红色为插值函数图像,可以看出在 0 点误差最大,与 我们的计算结果相吻合。
n k=0 yk lk (x); n x −x i j=0 x −x i j j ≠i
,并由该基函数构造
3. 由多项式插值误差定理来估计其误差: f x −p x =
1 n+1 !
f
n+1
(εx )
n i=0(x
− xi )
其中 εx 为区间内一点
但此题有自己的估计误差的要求,则我们依照题意估计误差。
n x −x i j=0 x −x i j j ≠i
,
li x = δij
n k=0 yk lk (x)
来构造 Lagrange 插值多项式: Ln x =

拉格朗日(Lagrange)插值


p2(7) =
(1–4)(1–9)
*1 + (4–1)(4–9)
*2
(7–1)(7–4)
+ (9–1)(9–4) * 3
= 2.7
例5.4 已知函数y=f(x)在节点上满足
x x0 x1 x2
y y0 y1 y2
求二次多项式 p(x) = a0 + a1x + a2x2
使之满足 p(xi) = yi
li (x的) 插值
lk (x0 ) 0,,lk (xk1) 0,lk (xk ) 1,lk (xk1 ) 0,,lk (xn ) 0

lk
(xi )
ki
1 0
(i k) (i k)
由条件 lk (xi ) 0 ( i k)知, x0 , x1,, xk1, xk1,, xn
都是n次 lk (x) 的零点,故可设
l0 (x)
再由另一条件 l0 (x0
c(x
) 1
x1 )( x x2
确定系数
)
c
(x0
1 x1)( x0
x2
)
从而导出
l0 (x)
(x (x0
x1)( x x2 ) x1 )( x0 x2 )
类似地可以构造出满足条件: l1(x1) 1, l1(x0 ) 0,
的插值多项式
l1 ( x)
lk (x)
j0 jk
n
x xj
n
(xk x j )
j0 xk x j
jk
j0 jk
称 lk (x) 为关于基点 xi 的n次插值基函数(i=0,1,…,n)
以n+1个n次基本插值多项式 lk (x)(k 0,1,, n) 为基础,就能直接写出满足插值条件

第5章 实四Lagrange插值多项式

第5章 实验四Lagrange 插值多项式实验目的:理解Lagrange 插值多项式的基本概念,熟悉Lagrange 插值多项式的公式及源代码,并能根据所给条件求出Lagrange 插值多项式,理解龙格现象。

5.1 Lagrange 插值多项式 Lagrange 插值多项式的表达式: 1,,2,1,)()()(,)()(1111+=--==∏∑+≠=+=n i x x x x x l x l y x L n ij 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:np1z=ones(size(xi)); for j=1:np1if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));end endfi=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.57.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 clearx=[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.6457xg (x ):-, d a t a p o i n t s :o图5.1 插值多项式曲线图5.3 Lagrange插值多项式源代码II% 输入:x是插值节点横坐标向量;y是插值节点对应纵坐标向量。

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