从零开始的数模学习(7):插值方法(预测类模型)

1 插值方法

在工程和数学应用中,经常有这样一类数据处理问题,在平面上给定一组离散点列,要求一条直线,把这些点按次序连接起来称之为插值。已知n+1个点(x_{i},y_{i}) (i = 0,1,\cdots,n),下面求各种插值函数。

1.1 分段性插值

        简单地说,将每两个相邻的节点用直线连起来,如此形成的一条折线九十分段线性插值函数,记做I_{n}(x),它满足I_{n}(x) = y_{i},且I_{n}(x)在每个小区间[x_{i},x_{i+1}]上是线性函数(i=0,1,\cdots,n)

        I_{n}(x)可以表示为I_{n}(x) = \sum_{i=0}^{n}l_{i}(x),其中

         I_{n}(x)有良好的收敛性,即对于x \in [a,b],有 

                                                \lim_{x \to \infty} I(x) = f(x)

        用I_{n}(x)计算x点的插值时,只用到x左右的两个节点,计算量与节点个数n无关。但n越大,分段越多,插值误差越小。实际上用函数表做差值计算时,分段线性插值就足够了,如数学、物理中用到的特殊函数表,数理统计中用的概率分布表等。

1.2 拉格朗日插值多项式

        拉格朗日插值的基函数为

        l_{i}(x)是n次多项式,满足

         拉格朗日插值函数S(x)

 1.3 样条插值

        许多工程技术中提出的计算问题对插值函数的光滑性有较高要求,如飞机的机翼外形,内燃机的进、排气门的凸轮曲线,都要求曲线具有较高的光滑程度,不仅要连续,而且要有连续的曲率,这就导致了样条插值的产生。

1.3.1 样条函数的概念

        所谓样条(Spline)本来是工程设计中使用的一种绘图工具,它是富有弹性的细木条或金属条。绘图员利用它把一些已知点连接成一条光滑的曲线(称为样条曲线),并使连接点处有连续的曲率。三次样条插值就是由此抽象出来的。

        数学上将具有一定光滑性的分段多项式称为样条函数。具体的说,给定区间[a,b]的一个分划

         如果函数S(x)满足

        (1)在每个小区间[x_{i}, x_{i+1}](i = 0, 1,\cdots,n-1)S(x)是m次多项式;

        (2)S(x)[a,b]上具有m-1阶连续导数。则称S(x)为关于分划\Delta的m次样条函数,其图形为m次样条曲线。

        显然,折现是一次样条曲线。

1.3.2 三次样条插值

        利用样条函数进行插值,即取插值函数为样条函数,称为样条插值。例如分段线性插值是一次样条插值。这里只介绍三次样条插值,即已知函数y=f(x)在区间[a,b]的n+1个节点

上的值y_{i} =f(x_{i})(i = 0,1\cdots,n-1) ,求插值函数S(x),使得

        (1)S(x_{i})=y_{i}(i = 0,1\cdots,n);

        (2)在每个小区间[x_{i},x_{i+1}](i=0,1,\cdots,n-1)S(x)是三次多项式,记为S(x_{i});

        (3)S(x)[a,b]上二阶连续可微。

        函数S(x)称为f(x)的三次样条插值函

         在数学建模中,常用的是第一种。

1.4 Matlab插值工具箱

1.4.1 一维插值函数

        Matlab中有现成的一维插值函数 interp1,语法为

         其中,metho指定插值的方法,默认为线性插值。其值可为

         所有的插值方法要求x0是单调的。

        当x0为等距时可使用快速插值法,使用快速插值法的格式为‘*nearest’、'*linear'、

‘*spline’、‘*cubic’。

1.4.2 三次样条插值

        Matlab 中三次样条插值有如下函数
        y=interp(x0,y0,x,‘spline’);
        y=spline(x0,y0,x);
        pp=csape(x0,y0,conds);
        pp=csape(x0,y0,conds,valconds); y=fnval(pp,x);
        其中x0,y0是已知数据点,x是插值点,y是插值点的函数值。

        对于三次样条插值,提倡使用函数csape,csape的返回值是pp形式,要求插值点的函数值,必须调用函数fnval。
        pp=csape(x0,y0)使用默认的边界条件,即Lagrange边界条件。
        pp=csape(x0,y0,conds,valconds)中的conds指定插值的边界条件,其值可为
        complete‘ 边界为一阶导数,一阶导数的值在valconds参数中给出,若忽略valconds参数,则按缺省情况处理。

        对于三次样条插值,提倡使用函数csape,csape的返回值是pp形式,要求插值点的函数值,必须调用函数fnval。
        pp=csape(x0,y0)使用默认的边界条件,即Lagrange边界条件。
        pp=csape(x0,y0,conds,valconds)中的conds指定插值的边界条件,其值可为
        complete‘ 边界为一阶导数,一阶导数的值在valconds参数中给出,若忽略valconds参数,则按缺省情况处理。

        conds(i)=j的含义是给定端点i的j阶导数,即conds的第一个元素表示左边界的条件,第二个元素表示右边界的条件,conds=[2,1]表示左边界是二阶导数,右边界是一阶导数,对应的值由valconds给出。

1.4.3 二维插值

        前面讲述的都是一维插值,即节点为一维变量,插值函数时一元函数(曲线)。若节点是二维的,插值函数就是二元函数,即曲面。如果在某区域测量了若干点(节点)的高程(节点值),为了画出较为精确的等高线图,就要先插入更多的点(插值点),计算这些点的高程(插值)。

(1)插值节点为网格节点

        已知m\times n个节点(x_{i},y_{j},z_{ij})(i = 1,2,\cdots,m;j=1,2,\cdots,n),且x_{1} < \cdots <x_{m};y_{1}<\cdots<y_{n}。求点(x,y)处的插值z

        Matlab中有一些计算二维插值的命令。如z=interp2(x0,y0,x,y,'method'),其中x0,y0分别为m维和n维向量,表示节点,z0为n\times m维矩阵,表示节点值,x,y,为一维数组,表示插值点,x和y应该是方向不同的向量,即一个是行向量,另一个是列向量,z为矩阵,它的行数为y的维数,列数为x的维数,表示得到的插值,‘method’的用法同上面的一维插值。

        如果是三次样条插值,可以使用命令 pp=csape(\left \{x0 , y0\right \},z0,conds,valconds) , z=fnval(pp,\left \{ x,y \right \}),其中x0,y0分别为m维和n维向量,z0为m\times n维矩阵,z为矩阵,它的行数为x的维数,列数为y的维数,表示的到的插值,具体使用同一维插值。

(2)插值点为散乱节点

        已知n个节点(x_{i},y_{i},z_{i})(i=1,2,\cdots,n),求该点(x,y)处的插值z。

        对于上述问题,Matlab中提供了插值函数griddata,其格式为

                                        ZI = griddata(x,y,z,XI,YI)

        其中x,y,z均为n维向量,指明所给数据点的横坐标、纵坐标和数座标。向量XI,YI是给定的网格点的横坐标和纵坐标,返回值ZI为网格(XI,YI)处的函数值。XI与YI应该是方向不同的向量,即一个是行向量,另一个是列向量。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
b样条和三次样条估计是统计学中常用的非参数回归方法,可以用于拟合连续型数据。广义可加模型是指可以用来描述估计结果的模型形式。而R语言是一种常用的统计分析和数据可视化的编程语言。 b样条是一种基于基函数的平滑曲线拟合方法,其基函数是分段的,可以在数据中的每个分段进行拟合。b样条通过调整节点的位置和个数来控制模型的灵活性,并使用最小二乘法进行参数估计。它的优点是拟合结果平滑且具有良好的预测性能。 三次样条估计是一种利用三次多项式拟合曲线的方法,通过在每个数据点处连接多个三次多项式,可以获得连续而光滑的拟合曲线。三次样条估计的优点是可以同时考虑拟合的平滑性和趋势性,而且可以方便地进行交叉验证以选择合适的节点数目。 广义可加模型是在拟合过程中引入其他额外的变量来描述预测变量与响应变量之间的关系,例如引入交互项或多项式项。通过拟合广义可加模型,可以更准确地描述数据中的非线性关系,并考虑其他因素对拟合结果的影响。 R语言是一种开源的数据分析和统计建模的编程语言,广泛应用于学术界和商业领域。R语言提供了丰富的统计分析函数和数据处理工具,可以方便地进行b样条和三次样条估计,并且支持使用广义可加模型来描述拟合结果。通过R语言,研究人员和分析师可以灵活地处理和分析数据,并进行可靠的统计推断。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值