当前位置:文档之家› 几种常用的插值方法

几种常用的插值方法

数学系 信息与计算科学1班 李平指导老师:唐振先摘要:插值在诸如机械加工等工程技术和数据处理等科学研究中有许多直接的应用,在很多领域都要用插值的办法找出表格和中间值,插值还是数值积分微分方程数值解等数值计算的基础。

本文归纳了几种常用的插值方法,并简单分析了其各自的优缺点。

关键词:任意阶多项式插值,分段多项式插值。

引言:所谓插值,通俗地说就是在若干以知的函数值之间插入一些未知函数值,而插值函数的类型最简单的选取是代数多项式。

用多项式建立插值函数的方法主要用两种:一种是任意阶的插值多项式,它主要有三种基本的插值公式:单项式,拉格朗日和牛顿插值;另一种是分段多项式插值,它有Hermite 和spine 插值和分段线性插值。

一.任意阶多项式插值:1.用单项式基本插值公式进行多项式插值:多项式插值是求通过几个已知数据点的那个n-1阶多项式,即P n-1(X)=A 1+A 2X+…A n X n-1,它是一个单项式基本函数X 0,X 1…X n-1的集合来定义多项式,由已知n 个点(X,Y )构成的集合,可以使多项式通过没数据点,并为n 个未知系数Ai 写出n 个方程,这n 个方程组成的方程组的系数矩阵为Vandermonde 矩阵。

虽然这个过程直观易懂,但它都不是建立插值多项式最好的办法,因为Vandermonde 方程组有可能是病态的,这样会导致单项式系数不确定。

另外,单项式中的各项可能在大小上有很大的差异,这就导致了多项式计算中的舍入误差。

2.拉格朗日基本插值公式进行插值: 先构造一组插值函数L i (x )=011011()()()()()()()()i i n i i i i i i n x x x x x x x x x x x x x x x x -+-+--------,其中i=0,…n.容易看出n 次多项式L i (x )满足L i (x )=1,(i=j );L i (x )=0,(i ≠j ),其中i=0,1…n ,令L i (x )=0()ni i i y l x =∑这就是拉格朗日插值多项式。

与单项式基本函数插值多项式相比,拉格朗日插值有2个重要优点:首先,建立插值多项式不需要求解方程组;其次,它的估计值受舍入误差要小得多。

拉格朗日插值公式结构紧凑,在理论分析中很方便,但是,当插值节点增加、减少或其位置变化时全部插值函数均要随之变化,从而整个插值公式的结构也将发生变化,这在实际计算是非常不利的。

3.使用牛顿均差插值公式进行多项式进行插值:首先,定义均差,f在xi,xj上的一阶均差()()[,]j ii jj if x f xf x xx x-=-,其中(i≠j)。

f在xi ,xj,xk的二阶均差f[xi,xj,xk]=[,][,]i j j kj kf x x f x xx x--,k阶均f[xi (x)k]=01[][]k i kkf x x f x xx x---。

由此得出牛顿均值插值多项式的公式为Pn(x)=f[x0]+f[x-x1](x-x)+…+f[x,x n ](x-x)…(x-xn-1)。

实际计算中经常利用下表给出的均差表直接构造牛顿插值公式,,……凡是拉格朗日插值解决的问题牛顿插值多项式都可以解决,不仅如此,更重要的是牛顿均值克服了拉格朗日插值多项式的缺点,当需要提高近似值的精确度而增加结点时,它不必重新计算,只要在后面再计算一项均插即可,减少了计算量,不用计算全部系数,节约了大量人力,物力,财力。

增加插值多项式的阶数并不一定能增加插值的精度,据定义,插值式,F(x)可以与结点(xi,yi),i=1,…,n处的实际函数匹配,但却不能保证支点之间求F(x),还能很好的逼近产生(xi,yi)数据的实际函数F(x)。

例如,如果F(x)为一个已知的解析函数,而且定义F(x)的节点集合中数据点的数目可以增加(多项式F(x)的阶数也增加),但是,由于F(x)的起伏增加,那么插值式就可能在节点见振带,基于当实际函数F(x)平滑时,这种多项式摆动也可能发生,这种振荡不是由多项式摆动引起的,而是由多项式的项相加来求插值多项式时发生舍入误差造成的。

有时多项式摆动可通过谨慎选择基础函数的取样来成为,但如果数据是由不容易重复实验取得的,就不能这么做了,这会司会用下面介绍分段插值法。

二、分段插值多项式1、分段线性插值:分段线性插值最简单的插值方案,只要将每个相邻的节点用直线接起来,如此形成的一条新的折线就是分段线性插值函数,记作I n (x j )=y i 而且I n (x)在每个区间[x j x j+1]上是线性函数(j=0,1…n-1) I n (X)可以定义为I n (x j )= 0()ni i i y l x =∑其中l 0(x)=101x x x x --,[0,1]x x x ∈其他,l 0(x)=0 l j (x)=11j j j x x x x ----,1[,]j j x x x -∈;n l ()x =11j j j x x x x ++--1,[,];j j x x x +∈其他,l j (x)=0l n (x)=11n n n x x x x ----1,[,];n n x x x -∈其他,l n (x)=0I n (x j )具有很好的收敛性,即对于x ∈[a,b]有:当n 趋向于无穷大时,I n (x )=g(x)成立。

用I n (x )计算x 点的插值时,只用到x 左右的两个节点,计算量与节点个数n 无关,但n 越大分段越多,插值误差就越小,但是,该方法折线在节点处显然不光滑,即I n (X)在节点处导数不存在着影响它在需要光滑插值曲线的(如机械插值等领域中的应用)。

2分段三次Hermite 插值为清楚起见,先用三次Hermite 插值的构造方法加以解释,三次Hermite 插值的做法是,在[x k x k+1]上寻找一个次数不超过3的多项式H 3(x) 它满足插值条件 H 3(x k )=f(x k ),H 3(x k+1)=f(x k+1)'3()k H x =m k , '31()k H x +=m k+1相应的插值基函数为211121111()12,()12,k k k k k k k k k k k k k k x x x x x x x x x x x x x x x x x x αα+++++++⎧⎛⎫⎛⎫--⎪=+ ⎪⎪--⎪⎝⎭⎝⎭⎨⎛⎫⎛⎫⎪--=+ ⎪⎪⎪--⎝⎭⎝⎭⎩2112111()(),()().k k k k k k k k k k x x x x x x x x x x x x x x ββ+++++⎧⎛⎫-⎪=- ⎪-⎪⎝⎭⎨⎛⎫⎪-=- ⎪⎪-⎝⎭⎩于是有H 3(x)=αk (x )f(x k ) +αk+1(x )f(x k+1)+m k βk (x) +m k+1βk+1(x)。

如果函数Ψ满足条件: (1) Ψ∈C 1[a,b](2) 满足插值条件:Ψ(x k )=f(x k ), ''()()k k x f x ϕ=,k=0,1,2,…,n. (3) 在每个小区间[x k-1, x k ],k=1,2, …,n 上Ψ是三次多项式。

则称Ψ为f 的分段三次Hermite 插值多项式。

根据分段线性插值和三次Hermite 插值公式可得到Ψ的表达式 Ψ(x)= '0[()()()()]nk k k k k f x x f x x αβ=+∑其中20101010010112,[,]()0,[,]x x x x x x x x x x x x x x x α⎧⎛⎫⎛⎫--⎪+∈ ⎪⎪=--⎨⎝⎭⎝⎭⎪∉⎩ 21111211111112,[,]()12,[,]0,[,]k k k k k k k k k k k k k k k k k k k x x x x x x x x x x x x x x x x x x x x x x x x x x α----++++-+⎧⎛⎫⎛⎫--⎪+∈ ⎪⎪--⎪⎝⎭⎝⎭⎪⎛⎫⎛⎫--⎪=+∈⎨ ⎪⎪--⎝⎭⎝⎭⎪⎪∉⎪⎪⎩21111112,[,]()0,[,]k k n n n k k k k n n x x x x x x x x x x x x x x x α-----⎧⎛⎫⎛⎫--⎪+∈ ⎪⎪=--⎨⎝⎭⎝⎭⎪∉⎩2100100101(),[,]()0,[,]x x x x x x x x x x x x x β⎧⎛⎫-⎪-∈ ⎪=-⎨⎝⎭⎪∉⎩2111211111(),[,]()(),[,]0,[,]k k k k k k k k k k k k k k k x x x x x x x x x x x x x x x x x x x x x x β---+++-+⎧⎛⎫-⎪-∈ ⎪-⎪⎝⎭⎪⎛⎫-⎪=-∈⎨ ⎪-⎝⎭⎪⎪∉⎪⎪⎩21111(),[,]()0,[,]n n n n n n n n n x x x x x x x x x x x x x β----⎧⎛⎫-⎪-∈ ⎪=-⎨⎝⎭⎪∉⎩αk ,βk , k=0,1,2,…,n ,称为以节点x 0,x 1,…, x n 的分段三次Hermite 插值基函数,对于给定n 个插值点x 1<x 2<…<x n 和其相应函数值 f(x k )和一阶函数值f '(x k ),k=0,1,2,…,n.显然,分段三次Hermite 插值可以产生平滑变化的插值式,但它有一个明显的缺点,就是在每个界点处的函数斜率必须已知,而从实验中获得的数据,这个斜率就不存在。

下面要介绍的三次样条插值可以解决这个问题,同时能得到插值式所期望的光滑度。

3、三次样条插值 1. 样条函数在[a,b]上取n+1个插值结点a=x 0<x 1<…<x n =b 已知函数f(x)在这n+1个点的函数值为y k =f(x k )则在[a,b]上函数y=f(x)的m 次样条插值函数S(x)满足: (1)S(x)在(a,b)上直到m-1阶导数连续; (2)S(x k )=y k ,(k=0 1…n);(3)在区间[x k ,x k+1](k=0 1 …n-1)上,S(x)是m 次多项式。

2.三次样条函数在[a,b]上函数y=f(x)的三次样条插值函数S(x)满足: (1)在(a,b)上0、1、2阶导数连续,即:s '(x k -0)=s '(x k +0),s ″(x k -0)=s ″(x k +0) (k=0 1…n-1) (2)S(x k )=y k (k=0,1,…n);(3)在区间[x k x k+1](k=0,1…n-1)上S(x)是三次多项式。

相关主题