《计算方法插值法-Lagrange插值.ppt》由会员分享,可在线阅读,更多相关《计算方法插值法-Lagrange插值.ppt(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1次 Lagrange插值计算方法(Numerical Analysis)本讲内容1.插值法的基本概念2.拉格朗日(Lagrange)插值3.Lagrange插值的例子4.Lagrange插值的误差插值法的基本概念1 引言 问题的提出若函数f(x)的解析式未知,而通过实验观测得到的一组数据,即在某个区间a,b上给出一系列点的函数值 yi=f(xi)xx0 x1x2 xnyy0y1y2 yn第二章 插值法问题:怎样(近似)计算函数f(x)在a,b上的函数值呢?y=f(x)x1x2xnx0 x3一般插值法的基本概念(2.1)设函数y=f(x)定义在区间a,b上,是a,b上取定的n+1个互异节点,
2、且在这些点处的函数值 为已知,即 。若存在一个f(x)的近似函数 ,满足则称 为f(x)的一个插值函数,点xi为插值节点,称(2.1)式为插值条件。在其它点x处就用 的值作为f(x)的近似值。越简单越好y=f(x)x1xn插值函数插值函数目的:使得 近似等于f(x).而误差函数称为插值余项,区间a,b称为插值区间.x0bax2用 的值作为f(x)的近似值,不仅希望 能较好地逼近f(x),而且还希望它计算简单。评论:由于代数多项式具有数值计算和理论分析方便的优点。所以本章主要介绍利用代数多项式进行插值,即代数插值。定义:若存在一个次数不超过n次的多项式 使得满足:则称P(x)为f(x)的n次插值
3、多项式。以上这种插值法通常称为代数插值法。其几何意义如下图所示:y=f(x)x1x2xny=p(x)为n次多项式x0yxxk问题:这样的多项式是否存在?定理1 n次代数插值问题的解是存在且唯一的。则求插值多项式P(x)的问题就归结为求它的系数 证明:设n次多项式 是函数 在区间a,b上的n+1个互异节点上的插值多项式。由插值条件可得:n+1个方程n+1个未知数a0 ,a1 ,an这是一个关于待定参数 的n+1阶线性方程组,其系数矩阵行列式为 称为Vandermonde(范德蒙)行列式,因xixj(当ij),故V0。根据克莱姆(Gramer)法则,方程组的解 存在并且唯一,从而P(x)被唯一确定
4、。评论:n以上使用线性方程组求解系数ak(k=0,n),以便获得多项式的方法复杂,不常用;n唯一性:不论用何种方法来构造,也不论用何种形式来表示n次插值多项式,只要满足插值条件(2.1)其结果都是相互恒等的;n即n次插值多项式P(x)是唯一的。HomeLagrange插值插值2 拉格朗日(Lagrange)插值为了构造满足插值条件的便于使用的插值多项式P(x),先考察几种简单情形,然后再推广到一般形式。(1)线性插值现要求用线性函数 近似地代替f(x)。称这样的线性函数P(x)为f(x)的线性插值函数。线性插值是代数插值的最简单形式。假设给定函数f(x)在两个互异的点的值,选择参数a和b,使得
5、线性插值的几何意义:用通过两点 的直线近似地代替曲线y=f(x),如图所示:y=f(x)x0 x1P(x)=ax+b为了便于推广,记 由解析几何知道,这条直线用点斜式表示为 改写为线性插值基函数或者写成:推导线性插值基函数具有如下性质:即x0 x11于是线性插值函数可以表示为与基函数的线性组合 例2.1 已知 ,求 解:x100121y1011利用线性插值 化简,得于是:(2)抛物插值要构造次数不超过二次的多项式 抛物插值又称二次插值,它也是常用的代数插值之一。设已知f(x)在三个互异点x0,x1,x2的函数值y0,y1,y2使满足二次插值条件:这就是二次插值问题。其几何意义是用经过3个点用以
6、近似计算的抛物线y=f(x)x0 x2y=L 2(x)x1y0y2y1xyP(x)的系数 直接由插值条件决定,即 满足代数方程组:因为 ,所以方程组有解唯一解:系数矩阵可用于求2次插值多项式仿照线性插值,现在试图用基函数的方法确定2次插值多项式显然 应该有以下的形式 由 确定系数 从而导出 求二次式 ,使满足条件:类似地可以构造出插值多项式 于是确定了3个抛物插值的基函数:x0 x2x1xy1y=l0(x)y=l1(x)y=l2(x)3个抛物插值的基函数取已知数据 作为线性组合系数,将基函数 线性组合可得 容易看出,P(x)满足条件 即已知:2个插值点可求出一次插值多项式,而3个插值点可求出二
7、次插值多项式。一般形式的拉格朗日插值多项式插值点增加到n+1个时,可通过n+1个不同的已知点 来构造一个次数为n的代数多项式P(x)。先构造一个特殊n次多项式 的插值问题,使其在各节点 上满足 即即 由条件由条件 ,得得 其中其中 为待定常数。为待定常数。由条件由条件 知知 都是都是n次次 的零点。故可设的零点。故可设 代入上式,得称 为关于基点的n次插值基函数 以n+1个n次基本插值多项式为基础,可直接写出满足插值条件的n次代数插值多项式:是次数不超过n次的多项式。(2.8)由于每个插值基函数都是n次多项式,所以他们的线性组合定义:称形如(2.8)式的插值多项式为n次拉格朗日插值多项式。并记
8、为 。记记:得其导数在得其导数在xk 点的值为:点的值为:于是:于是:(2.11)(2.10)HomeLagrange插值的例子例2.2 已知y=f(x)的函数表 求线性插值多项式,并计算x=1.5 的值解:由线性插值多项式公式得x13y12例2.3 已知x=1,4,9 的平方根值,用抛物插值公式,求 的值 x149y123解:函数表为例2.4 已知函数y=f(x)在节点上满足解方程组,得 a0=1,a1=-3,a2 =2,p(x)=1-3x+2x2x012y103用待定系数法,求二次多项式 p(x)=a0+a1x+a2x2 使之满足p(xi)=yi,i=0,1,2解:将各节点值依次代入所求多
9、项式,得1=a0+a1*0+a202 0=a0+a1*1+a2*12 3=a0+a1*2+a2*22 例2.5 求过点(0,1),(1,2),(2,3)的三点插值多项式解:函数表为问题:为什么得到了一个1次方程?x012y123由Lagrange 插值公式,得回答:因为插值表给出的3个点共线。例2.6 已知f(x)的观测数据,求Lagrange插值多项式解:4个点可构造3次Lagrange插值多项式,基函数:x0124f(x)19233Lagrange插值多项式为:验证了验证了 例2.7 已知f(x)的观测数据构造插值多项式 解:四个点可以构造三次插值多项式,将数据 代入插值公式,有这个例子说
10、明p(x)的项数不超过n+1项,但可以有缺项。x1234f(x)0-5-63 拉拉格格朗朗日日插插值值算算法法实实现现 使用C语言实现使用Matlab实现HomeLagrange插值的误差x x0 0 x x1 1 x xi i x xi+1 i+1 x xn-1n-1x xn ny=f(x)y=p(x)ab在插值区间 a,b 上用插值多项式p(x)近似代替f(x),除了在插值节点xi上没有误差外,在其它点上有误差。若记 R(x)=f(x)-p(x),则 R(x)就是用 p(x)近似代替 f(x)时的截断误差,或称插值余项。插值多项式的误差 定理2 设f(x)在 a,b 有n+1阶导数,x0,
11、x1,xn 为 a,b 上n+1个互异节点,p(x)为满足p(xi)=f(xi)(i=0,1,2,n)其中的n 次插值多项式,那么对于任何x a,b 有插值余项说明:若n+1阶导数不存在,则 无法使用该公式估计误差 证明:由于P(x)是f(x)在xk(k=0,1,n)上的插值多项式,故R(x)=f(x)P(x)在节点xk(k=0,1,n)上值为0,即R(xk)=0,(k=0,1,n)现在,将x看作是a,b上的一个固定点,作函数g(t)=f(t)-P(t)-K(x)(t-x0)(t-x1)(t-xn)根据f的假设,知 g(n)(t)在a,b上连续,g(n+1)(t)在(a,b)内存在。于是可以将
12、R(x)写为:R(x)=K(x)(x-x0)(x-x1)(x-xn)(*)其中,K(x)是和x有关的待定函数。只须证明:K(x)=f(n+1)()/(n+1)!,a b根据插值条件和余项的定义,g(t)有n+2个0点:x0,x1,xn,x于是:K(x)=f(n+1)()/(n+1)!,a b,依赖于x将其代入(*)式,得根据罗尔定理,g(t)在g(t)的两个0点之间至少有一个0点,从而,g(t)在(a,b)中有n+1个0点;类似地,得到g(t)在(a,b)中有n个0点;连续使用罗尔定理,知g(n+1)(t)在(a,b)中至少有1个0点,记为:g(n+1)()=f(n+1)()-(n+1)!K(
13、x)=01)对于线性插值,误差公式:2)对于抛物插值(2次插值),误差公式:例2.8 已知x0=100,x1=121,用线性插值近似计算 的时候,估计在x=115时的截断误差.解:由插值余项公式知 得 100121115例2.9 已知x0=100,x1=121,x2=144,当用抛物插值求 的时候,估计在x=115时的截断误差。解:说明:二次插值的误差小于一次插值。例2.10 设f(x)=x4,用余项定理写出节点-1,0,1,2 的三次插值多项式。解:根据余项定理评注:f(x)=x4 太特殊了,借助于f(4)(x)=4!,才使得由余项定理解出p(x)成为可能。n使用Matlab画出p(x)与f(x)的曲线例2.11 讨论函数 在-1,1区间进行线性 插值的效果。可以看出f(x)的一阶导数和二阶导数在-1,1上都属于震荡、无界,因此n虽然我们仍然可以进行线性插值,但是截断误差却会很大。讨论:先求出该函数的一阶导数和二阶导数如下:虽然我们仍然可以进行线性插值,但是截断误差却会很大。y=f(x)Matlab绘图程序:x=linspace(-1,1,100)y=sin(1./x),plot(x,y)同学们自己证明:Home
限制150内