本文是面向数学建模准备的,是介绍性文章,没有过多关于原理的说明!!!
插值方法简介
插值问题
已知区间[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:原始数据点的x坐标。这应该是一个向量。
- y0:原始数据点的y坐标。这应该是一个向量,与x0具有相同的长度。
- x:要进行插值的点的x坐标。可以是一个数值或一维向量。
- ‘method’:指定插值方法的字符串参数,如 ‘linear’、‘nearest’、'spline’和 'pchip’等。
根据指定的方法和提供的数据,interp1函数将计算出在插值点x处估计的y值。
下面介绍这几种方法:
线性插值(linear):
线性插值是最简单的插值方法之一,它假设数据在两个相邻点之间的变化是线性的。在两个已知点之间插值的时候,会找到目标点处的线性函数,然后根据函数估计目标点的值。最近邻插值(nearest):
最近邻插值选择离插值点最近的已知点的值作为估计值。简单地说,它将目标点的值设定为离它最近的已知点的值,而不考虑其他已知点之间的距离。三次样条插值(spline):
三次样条插值使用三次多项式来逼近数据点之间的曲线。它通过该曲线上的已知点来构造一个平滑的函数。三次样条插值的优点是可以提供较光滑的估计结果,但可能在数据点之间产生震荡。分段立方插值(pchip):
分段立方插值使用一段一段的分段函数进行插值。它根据已知点之间的曲线形状来构造具有更大灵活性的插值函数。分段立方插值也可能产生震荡,但在某些情况下比三次样条插值更准确。
2、三次样条插值函数
调用格式 :
y=interp1(x0,y0,x,'spline')
或y=spline(x0,y0,x)
或pp=csape(x0,y0,conds) , (推荐)
y=fnval(pp,x)
csape 函数可以根据给定的数据点 (x0, y0) 来生成一个样条插值结构 pp。这个结构 pp 可以用于后续的插值计算。
其中,conds为边界条件,取值为: ‘complete’、‘clamped’、‘not-a-knot’ 和 ‘periodic’。
下面介绍这几种条件:
complete
:这是默认形状选项,也是最常用的选项。它生成一个光滑的样条曲线,满足自然边界条件。自然边界条件要求在首尾两个节点处的二阶导数为零,即曲线在两个端点处平滑衔接。
clamped
:该选项生成的样条曲线在首尾节点处设置了手动指定的边界值或导数值。用户可以通过提供额外的参数来指定这些边界值或导数值,从而控制曲线的形状。
not-a-knot
:这个选项生成的样条曲线在首尾节点处不强制满足自然边界条件,而是允许出现非连续的 “不是结” 条件。这种条件意味着首尾节点处的插值函数的三阶导数值是相等的。文章来源:https://www.toymoban.com/news/detail-535561.html
periodic
:这个选项生成的样条曲线是周期性的,即首尾节点处插值函数的值和指定的导数值相等。这种形状适用于以周期方式变化的数据。文章来源地址https://www.toymoban.com/news/detail-535561.html
到了这里,关于数学建模——插值(上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!