拉格朗日插值法总结.docx
- 文档编号:24786025
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:9
- 大小:17.96KB
拉格朗日插值法总结.docx
《拉格朗日插值法总结.docx》由会员分享,可在线阅读,更多相关《拉格朗日插值法总结.docx(9页珍藏版)》请在冰豆网上搜索。
拉格朗日插值法总结
拉格朗日插值法总结
拉格朗日插值法
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)的估计问题。
与此相关的问题是插值过程的收敛性的问题。
第一节拉格朗日插值公式
1.线性插值(一次插值)
已知函数f(x)在区间[xk,xk+1]的端点上的函数值yk=f(xk),yk+仁f(xk+1),求一个一次函数y=P1(x)使得yk=f(xk),yk+仁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,利用插值一次多项式求Ig12的近似值。
解:
f(x)=lgx,f(10)=1,f(20)=1.3010,设
x0=10,x1=20,y0=1,y1=1.3010
则插值基函数为:
于是,拉格朗日型一次插值多项式为:
故:
即Ig12由lg10和Ig20两个值的线性插值得到,且具有两位有效数字(精确值Ig12=1.0792).
2.二次插值多项式
已知函数y=f(x)在点xk-1,xk,xk+1上的函数值yk-仁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利用三个点进行抛物插值得到Ig12的值,与精确值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次插值基函数
I0(x),I1(x),…,In(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)
2.n次拉格朗日型插值多项式Pn(x)
Pn(x)是n+1个n次插值基本多项式IO(x),l1(x),…,ln(X)的线性组合,相
应的组合系数是yO,y1,…,yn。
即:
Pn(x)=yOI0(x)+y1I1(x)+…+ynIn(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 Pn(x)是n次拉格朗日插值多项式;则对任意x€[a,b]有: 其中E€(a,b),E依赖于x: 3n+1(x)=(x-x0)(x-x1)…(x-xn) 证明: 由插值多项式的要求: Rn(xi)=f(xi)-Pn(xi)=O,(i=0,1,2,…,n); 设 Rn(x)=K(x)(x-xO)(x-x1)…(x-xn)=K(x)3n+1(x) 其中K(x)是待定系数;固定x€[a,b]且x工xk,k=0,1,2,…,n;作函数 H(t)=f(t)-Pn(t)-K(x)(t-xO)(t-x1)…(t-xn) 则H(xk)=O,(k=0,1,2,…,n),且H(x)=f(x)-Pn(x)-Rn(x)=O,所以, H(t)在[a,b]上有n+2个零点,反复使用罗尔中值定理: 存在E€(a,b), 使;因Pn(x)是n次多项式,故P(n+1)(E)=O,而 3n+1(t)=(t-xO)(t-x1)…(t-xn) 是首项系数为1的n+1次多项式,故有 于是 H(n+1)(E)=f(n+1)(E)-(n+1)! K(x) 得: 所以 设,则: 易知,线性插值的截断误差为: 二次插值的截断误差为: 下面来分析前面两个例子(例1,例2)中计算Ig12的截断误差: 在例1中,用lg10和lg20计算Ig12, P1(12)=1.0602,lg12=1.0792e=|1.0792-1.0602|=0.0190 估计误差: f(x)=lgx, 当x€[10,20]时, 在例2中,用Ig10,lg15和lg20计算Ig12. P2(12)=1.0766, e=|1.0792-1.0766|=0.0026 估计误差: 对应的C++S序: #ineludeiostreamusingnamespacestddoublefunc(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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 拉格朗日插值法 总结