1、第二章 插值法/* Interpolation */,数值分析,哈尔滨工程大学理学院 杨丽宏,2.1 引言,2.2 拉格朗日插值多项式,2.3 逐次线性插值,2.5 差分与等距节点插值公式,2.6 埃尔米特插值公式,2.7 分段低次插值,2.4 均差与牛顿插值多项式,2.8 三次样条插值,第二章 插 值 法,用简单的函数(如多项式函数)作为一个复杂函数的近似,最简单实用的方法就是插值。,本章主要介绍有关插值法的一些基本概念,及多项式插值的基础理论和几个常用的插值法:Lagrange插值、分段线性插值、Newton插值、Hermite插值和三次样条插值。,第一节 引 言,构造一个简单易算的近似函
2、数 g(x) f (x), 满足条件g(xi) = f (xi) (i = 0, n)。 这里的 g(x) 称为f (x) 的插值函数。,当精确函数 y = f (x) 非常复杂或未知时,在一系列节点 x0 xn 处测得函数值 y0 = f (x0), yn = f (xn),g(x) f(x),最常用的插值函数是 ?,多项式,二、代数插值多项式的存在唯一性,整体误差的大小反映了插值函数的好坏,为了使插值函数更方便在计算机上运算,一般插值函 数都使用代数多项式和有理函数,本章讨论的就是代数插值多项式,且满足,-(2),-(3),-(4),上述方程组的系数行列式为n+1阶Vandermond行列
3、式,定理1.,由Cramer法则,线性方程组(4)有唯一解,-(2),-(3),则满足插值条件,的插值多项式,存在且唯一.,虽然线性方程组(4)推出的插值多项式存在且唯一,但通过解线性方程组(4)求插值多项式却不是好方法,拉格朗日多项式 /* Lagrange Polynomial */,n = 1,可见 P1(x) 是过 ( x0 , y0 ) 和 ( x1, y1 ) 两点的直线。,称为拉氏基函数 /* Lagrange Basis */, 满足条件 li(xj)=ij /* Kronecker Delta */,n 1,Lagrange Polynomial,与 有关,而与 无关,节点,
4、f,n+1次多项式,且,从而,其中,例1:,解:,且,在例1中,如果只给出两个节点169和225,也可以作插值 多项式,即1次Lagrange插值多项式,有两个插值基函数, 这种插值方法称为Lagrange线性插值,也可以在n+1个 节点中取相邻的两个节点作线性插值,Lagrange线性插值基函数为,Lagrange线性插值多项式为,例2.,解:,Lagrange插值基函数为,Lagrange线性插值多项式为,所以,请编写出Lagrange插值的 Matlab 程序,程序:lagrangen.m,拉格朗日插值算法实现, 插值余项 /* Remainder */,应当指出,余项表达式只有在f(x
5、)的高阶导数存在时才能使用。,在(a,b)内的具体位置通常不可能给出。如果可以求出,,那么插值多项式的截断误差限是,例题:已知sin0.32=0.314567,sin0.34=0.333487, sin0.36=0.352274, 用线性插值及抛物插值计算 sin0.3367 的值并估计截断误差。解: 由题意取x0=0.32, y0=0.314567 , x1=0.34 , y1=0.333487 , x2=0.36 , y2=0.352274 。用线性插值及抛物插值计算,取 x0=0.32 及 x1=0.34 , 又由公式得 y1 - y0 sin0.3367L1(0.3367)=y0+(0
6、.3367 -x0)x1 - x00.01892 =0.314567+ (0.0167) =0.330365 .0.02,其截断误差得 其中 ,因 f(x)=sinx,f/(x)= -sinx, 可取 ,于是R1(0.3367)=sin 0.3367 L1(0.3367)1/2(0.3335)(0.0167)(0.0033)0.92105,若取x1=0.34,x2=0.36为节点,则线性插值为,其截断误差为 , 其中于是用抛物插值计算 sin0.3367时,可得,这个结果与六位有效数字的正弦函数表完全一样,这说明查表时用二次插值精度已相当高了。其截断误差得其中于是,当增加节点xn+1时(提高精度),原来的插值基函数 lj(x)(j=0,1,2,n)不能立即利用,还需要重复计算, 而且还需要计算一个新的插值基函数ln+1(x)。,形式对称,易于编制程序,Lagrange插值多项式的优点:,插值基函数计算复杂,高次插值的精度不一定高,Lagrange插值多项式的缺点:,