拉格朗日插值法总结.docx
- 文档编号:28944017
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:8
- 大小:17.65KB
拉格朗日插值法总结.docx
《拉格朗日插值法总结.docx》由会员分享,可在线阅读,更多相关《拉格朗日插值法总结.docx(8页珍藏版)》请在冰豆网上搜索。
拉格朗日插值法总结
拉格朗日插值法总结
拉格朗日插值法
2008-05-1216:
44
一、问题的背景
在实际问题中常遇到这样的函数y=f(x),其在某个区间[a,b]上是存在的。
但是,通过观察或测量或试验只能得到在区间[a,b]上有限个离散点x0,x1,…,xn上的函数值yi=f(xi),(i=0,1,…,n)。
或者f(x)的函数f(x)表达式是已知的,但却很复杂而不便于计算;希望用一个既能反映函数f(x)的特性,又便于计算的简单函数来描述它。
二、插值问题的数学提法:
已知函数在n+1个点x0,x1,…,xn上的函数值
yi=f(xi),(i=0,1,…,n)
求一个简单函数y=P(x),使其满足:
P(xi)=yi,(i=0,1,…,n)。
即要求该简单函数的曲线要经过y=f(x)上已知的这个n+1个点:
(x0,y0),(x1,y1),…,(xn,yn),
同时在其它x∈[a,b]上要估计误差:
R(x)=f(x)-P(x)
其中P(x)为f(x)的插值函数,x0,x1,…,xn称为插值节点,包含插值节点的区间[a,b]称为插值区间,求插值函数P(x)的方法称为插值法。
若P(x)是次数不超过n的代数多项式,就称P(x)为插值多项式,相应的插值法称为多项式插值。
若P(x)是分段的多项式,就是分段插值。
若P(x)是三角多项式,就称三角插值。
三、插值方法面临的几个问题
第一个问题:
根据实际问题选择恰当的函数类。
本章我们选择代数多项式类,其原因有两个:
(1)代数多项式类简单;微分、积分运算易于实行;
(2)根据著名的Weierstrass逼近定理,任何连续的函数都可以用代数多项式作任意精确的逼近。
第二个问题:
构造插值函数P(x),使其满足:
P(xi)=yi,(i=0,1,…,n)与此相关的问题是:
插值问题是否可解(存在性的问题),如果有解,是否唯一?
(唯一性的问题)
第三个问题:
插值误差R(x)=f(x)-P(x)的估计问题。
与此相关的问题是插值过程的收敛性的问题。
第一节拉格朗日插值公式
一.线性插值(一次插值)
已知函数f(x)在区间[xk,xk+1]的端点上的函数值yk=f(xk),yk+1=f(xk+1),求一个一次函数y=P1(x)使得yk=f(xk),yk+1=f(xk+1),其几何意义是已知平面上两点(xk,yk),(xk+1,yk+1),求一条直线过该已知两点。
1.插值函数和插值基函数
由直线的点斜式公式可知:
把此式按照yk和yk+1写成两项:
记
并称它们为一次插值基函数。
该基函数的特点如下表:
从而
P1(x)=yklk(x)+yk+1lk+1(x)
此形式称之为拉格朗日型插值多项式。
其中,插值基函数与yk、yk+1无关,而由插值结点xk、xk+1所决定。
一次插值多项式是插值基函数的线性组合,相应的组合系数是该点的函数值yk、yk+1.
例1:
已知lg10=1,lg20=1.3010,利用插值一次多项式求lg12的近似值。
解:
f(x)=lgx,f(10)=1,f(20)=1.3010,设
x0=10,x1=20,y0=1,y1=1.3010
则插值基函数为:
于是,拉格朗日型一次插值多项式为:
故:
即lg12由lg10和lg20两个值的线性插值得到,且具有两位有效数字(精确值lg12=1.0792).
二.二次插值多项式
已知函数y=f(x)在点xk-1,xk,xk+1上的函数值yk-1=f(xk-1),yk=f(xk),yk+1=f(xk+1),求一个次数不超过二次的多项式P2(x),使其满足,
P2(xk-1)=yk-1,P2(xk)=yk,P2(xk+1)=yk+1.
其几何意义为:
已知平面上的三个点
(xk-1,yk-1),(xk,yk),(xk+1,yk+1),
求一个二次抛物线,使得该抛物线经过这三点。
1.插值基本多项式
有三个插值结点xk-1,xk,xk+1构造三个插值基本多项式,要求满足:
(1)基本多项式为二次多项式;
(2)它们的函数值满足下表:
因为lk-1(xk)=0,lk-1(xk+1)=0,故有因子(x-xk)(x-xk+1),而其已经是一个二次多项式,仅相差一个常数倍,可设
lk-1(x)=a(x-xk)(x-xk+1),
又因为
lk-1(xk-1)=1==a(xk-1-xk)(xk-1-xk+1)=1
得
从而
同理得
基本二次多项式见右上图(点击按钮"显示Li")。
2.拉格朗日型二次插值多项式
由前述,拉格朗日型二次插值多项式:
P2(x)=yk-1lk-1(x)+yklk(x)+yk+1lk+1(x),P2(x)
是三个二次插值多项式的线性组合,因而其是次数不超过二次的多项式,且满足:
P2(xi)=yi,(i=k-1,k,k+1)。
例2已知:
xi101520yi=lgxi11.17611.3010
利用此三值的二次插值多项式求lg12的近似值。
解:
设x0=10,x1=15,x2=20,则:
故:
所以
7利用三个点进行抛物插值得到lg12的值,与精确值lg12=1.0792相比,具有3位有效数字,精度提高了。
三、拉格朗日型n次插值多项式
已知函数y=f(x)在n+1个不同的点x0,x1,…,x2上的函数值分别为
y0,y1,…,yn,求一个次数不超过n的多项式Pn(x),使其满足:
Pn(xi)=yi,(i=0,1,…,n),
即n+1个不同的点可以唯一决定一个n次多项式。
1.插值基函数
过n+1个不同的点分别决定n+1个n次插值基函数
l0(x),l1(x),…,ln(X)
每个插值基本多项式li(x)满足:
(1)li(x)是n次多项式;
(2)li(xi)=1,而在其它n个li(xk)=0,(k≠i)。
由于li(xk)=0,(k≠i),故有因子:
(x-x0)…(x-xi-1)(x-xi+1)…(x-xn)
因其已经是n次多项式,故而仅相差一个常数因子。
令:
li(x)=a(x-x0)…(x-xi-1)(x-xi+1)…(x-xn)
由li(xi)=1,可以定出a,进而得到:
2.n次拉格朗日型插值多项式Pn(x)
Pn(x)是n+1个n次插值基本多项式l0(x),l1(x),…,ln(X)的线性组合,相应的组合系数是y0,y1,…,yn。
即:
Pn(x)=y0l0(x)+y1l1(x)+…+ynln(x),
从而Pn(x)是一个次数不超过n的多项式,且满足
Pn(xi)=yi,(i=0,1,2,…,n).
例3求过点(2,0),(4,3),(6,5),(8,4),(10,1)的拉格朗日型插值多项式。
解用4次插值多项式对5个点插值。
所以
四、拉格朗日插值多项式的截断误差
我们在[a,b]上用多项式Pn(x)来近似代替函数f(x),其截断误差记作
Rn(x)=f(x)-Pn(x)
当x在插值结点xi上时Rn(xi)=f(xi)-Pn(xi)=0,下面来估计截断误差:
定理1:
设函数y=f(x)的n阶导数y(n)=f(n)(x)在[a,b]上连续,
y(n+1)=f(n+1)(x)
在(a,b)上存在;插值结点为:
a≤x0x1…xn≤b,
Pn(x)是n次拉格朗日插值多项式;则对任意x∈[a,b]有:
其中ξ∈(a,b),ξ依赖于x:
ωn+1(x)=(x-x0)(x-x1)…(x-xn)
证明:
由插值多项式的要求:
Rn(xi)=f(xi)-Pn(xi)=0,(i=0,1,2,…,n);
设
Rn(x)=K(x)(x-x0)(x-x1)…(x-xn)=K(x)ωn+1(x)
其中K(x)是待定系数;固定x∈[a,b]且x≠xk,k=0,1,2,…,n;作函数
H(t)=f(t)-Pn(t)-K(x)(t-x0)(t-x1)…(t-xn)
则H(xk)=0,(k=0,1,2,…,n),且H(x)=f(x)-Pn(x)-Rn(x)=0,所以,
H(t)在[a,b]上有n+2个零点,反复使用罗尔中值定理:
存在ξ∈(a,b),
使;因Pn(x)是n次多项式,故P(n+1)(ξ)=0,而
ωn+1(t)=(t-x0)(t-x1)…(t-xn)
是首项系数为1的n+1次多项式,故有
于是
H(n+1)(ξ)=f(n+1)(ξ)-(n+1)!
K(x)
得:
所以
设,则:
易知,线性插值的截断误差为:
二次插值的截断误差为:
下面来分析前面两个例子(例1,例2)中计算lg12的截断误差:
在例1中,用lg10和lg20计算lg12,
P1(12)=1.0602,lg12=1.0792e=|1.0792-1.0602|=0.0190;
估计误差:
f(x)=lgx,
当x∈[10,20]时,
在例2中,用lg10,lg15和lg20计算lg12.
P2(12)=1.0766,
e=|1.0792-1.0766|=0.0026
估计误差:
对应的C++程序:
#includeiostreamusingnamespacestd;
doublefunc(doubleX,intk,doublex,intn);
intmain()
{
doubleSn=0;
intn;
cout"请输入点的个数n:
";
cinn;
double*x=(double*)malloc(n*sizeof(double));
double*y=(double*)malloc(n*sizeof(double));
doubleX;
inti;
for(i=0;in;i++)
{
cout"请输入x"i+1",y"i+1":
"endl;
cinx[i]y[i];
}
cout"请输入x";
cinX;
for(i=0;in;i++)
{
Sn=Sn+func(X,i,x,n)*y[i];
}
cout"通过拉格朗日插值公式所得的结果:
""当x="X"时,y="Snendl;
return0;
}
doublefunc(doubleX,intk,doublex,intn)
{
inti;
doublePn=1;
doublep;
for(i=0;in;i++)
{
if(i==k)continue;
elsep=(X-x[i])/(x[k]-x[i]);
Pn=Pn*p;
}
returnPn;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 拉格朗日插值法 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)