本文是面向数学建模准备的,是介绍性文章,没有过多关于原理的说明!!!
插值方法简介
插值问题
已知区间[a,b]上有系列观测值(xi,yi),i=0,1,2,…,n,求一条曲线把这些点依次连接起来,称为插值,这条曲线的表达式f(x)称为插值函数。一般f(x)解析式也是未知的。
1、分段线性插值
最简单、最直观的做法就是把两个相邻点连接起来,如此形成的一条折线就是分段线性插值函数,记作In(x),它满足且在每个区间[xi-1,xi]上都是线性函数,如图1所示。当待插值x(已知)在[xi-1,xi]时,根据线段比例的加权平均,有
插值示例:
2、拉格朗日插值多项式
拉格朗日插值基函数为:
是n次多项式,且满足
拉格朗日插值函数为:
3、样条(Spline)插值
许多工程技术要求插值函数足够光滑,即具有连续的曲率,这就导致了样条插值。样条本来是工程制图中的一个工具,它是富有弹性的细木条或金属条,绘图人员用它把已知点连接成一条光滑曲线(称为样条曲线),并使得连接点具有连续的曲率,常用的是三次样条插值。
已知函数y=f(x)在[a,b]上的n+1个节点上的值yi=f(xi),i=0,1,…,n。求插值函数S(x),满足:
- S(xi)=yi,i=0,1,2,…,n
- 在每个小区间[xi,xi+1]上,S(x)是三次多项式,记为Si(x)
- S(x)在[a,b]上二阶连续可微
满足以上条件的函数S(x)为f(x)的三次样条插值函数根据上面的2有:
其中ai,bi,ci,di为4n个待定系数,根据(3)满足
再加上条件1,共(n+1)+3(n—1)=(4n-2)个方程
二、Matlab插值工具箱
1、一维插值函数
调用格式:
y=interp1(x0,y0,x,'method')
其中x0要求单调,method指定插值方法,默认就是线性插值,其值为 :
- nearest’ 最近项插值
- ‘linear’ 线性插值
- ‘spline’ 三次样条插值
- ‘cubc’ 立方插值
2、三次样条插值函数
调用格式 :
y=interp1(x0,y0,x,'spline')
或y=spline(x0,y0,x)
或pp=csape(x0,y0,conds) (推荐)
pp=csape(x0,y0,conds,valconds)
y=fnval(pp,x)
其中,conds为边界条件,取值为:
‘complete’ 一阶边界条件
‘not-a-not’ 非扭结条件
‘periodic’ 周期条件
‘second’ 二阶导条件 (二阶导数在valconds中给出,默认值为[0 0])