数学建模——插值(上)

本文是面向数学建模准备的,是介绍性文章,没有过多关于原理的说明!!!


插值方法简介

插值问题

已知区间[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),满足:

  1. S(xi)=yi,i=0,1,2,…,n
  2. 在每个小区间[xi,xi+1]上,S(x)是三次多项式,记为Si(x)
  3. 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指定插值方法,默认就是线性插值,其值为 :

  1. nearest’ 最近项插值
  2. ‘linear’  线性插值
  3. ‘spline’  三次样条插值
  4. ‘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])

猜你喜欢

转载自blog.csdn.net/m0_63024355/article/details/131505047