数学建模——插值(下)

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


目录

一、2维插值原理及公式

1、二维插值问题

2、最邻近插值

3、分片线性插值

4、双线性插值

5、二维样条插值

二、二维插值及其Matlab工具箱

1、已知网格节点(xi,yj,zij)(i=1,2,…,m,j=1,2,…,n),且满足

Matlab工具箱调用格式(1)

调用格式(三次样条插值法)2

2、插值节点散乱

Matlab工具箱调用格式


一、2维插值原理及公式

1、二维插值问题

已知网格节点(xi,yj,zij)(i=1,2,…,m,j=1,2,…,n),且满足

 求点(x,y)处的插值z。

2、最邻近插值

如下图所示,将四个插值节点所围成的矩形区域分成四个部分,待插值点(x,y)落在哪个区域,就用哪个顶点的函数值作为(x,y)的函数值z。

 

 优点:快速、方便计算

缺点:不连续,图像阶梯状

3、分片线性插值

如下图所示,记四个插值节点的函数值为

 

(1)当待插值点位于下三角,即

待插点(x,y)的函数值为 

 (2)当待插值点位于上三角,即

 待插点(x,y)的函数值为

 优点:插值函数连续;

缺点:插值面不光滑;

4、双线性插值

双线性插值,是一片一片二次曲面构成。如上图所示,设

 

 (1)线性插入R1,R2的值

 

 (2)计算待插点的函数值

 

 优点:便于计算

缺点:节点处不一定光滑

5、二维样条插值

如上图,二维样条插值步骤:

 (1)用f1,f2一维样条插值估计f(R1);

(2)用f3,f4一维样条插值估计f(R2);

(3)用R1,R2一维样条插值计算f(x,y)的值。

优点:插值点二阶偏导数连续。

二、二维插值及其Matlab工具箱

1、插值节点顺序

已知网格节点(xi,yj,zij)(i=1,2,…,m,j=1,2,…,n),且满足

 

求点(x,y)处的插值z

Matlab工具箱调用格式(1)

z=interp2(x0,y0,z0,x,y,'method')

 参数介绍:
  1. x0,y0为m维和n维向量
  2. z0是n×m矩阵,表示节点值
  3. x,y为一维数组,表示插值点,x是行向量,y是列向量,z是矩阵,它的行数是y的维数,列数是x的维数
  4. ‘method’的取值常用的插值方法包括 ‘linear’(线性插值)、‘cubic’(立方插值)、‘nearest’(最近邻插值)等。
方法介绍:
  1. 线性插值(‘linear’):
    线性插值是最简单和常用的插值方法。它假设在数据点之间的区域内,数据是按线性方式变化的。线性插值使用相邻数据点之间的直线,通过计算目标位置处的加权平均值来估计目标位置的值。线性插值方法简单快速,但可能无法很好地逼近复杂的数据模式。

  2. 立方插值(‘cubic’):
    立方插值使用了更复杂的插值模型,以逼近数据点之间的值。它使用一个立方函数来估计目标位置处的值,不仅考虑了相邻数据点的值,还考虑了相邻数据点的梯度。立方插值在保持平滑性的同时,能够更好地逼近曲线和曲面的变化。它通常比线性插值精确,但计算更复杂。

  3. 最近邻插值(‘nearest’):
    最近邻插值是一种简单的插值方法,它使用最近的数据点的值作为目标位置的估计值。在最近邻插值中,目标位置被分配为最接近的数据点之一的值。这种插值方法计算简单且快速,但可能产生较大的误差,特别是在数据变化较大的区域。

调用格式(三次样条插值法)2

pp=csape({x0,y0},z0,conds,valconds);

z=fnval(pp,{x,y});

 参数介绍:
  • {x0, y0}:一个包含 x 坐标和 y 坐标数据点的 cell 数组。x0 是一个向量,包含原始数据点的 x 坐标,y0 是一个向量,包含原始数据点的 y 坐标。这些数据点用于构建三次样条插值曲线。
  • z0:一个和 {x0, y0} 大小相匹配的矩阵或数组,包含原始数据点的对应值。
  • conds:一个可选参数,定义了曲线的边界条件。它可以是字符串 'clamped' 或 'complete'
  • valconds:一个可选参数,用于定义插值结果在曲线的边界点上的导数值或值。这取决于 conds 参数的指定。

2、插值节点散乱

 已知n个节点(xi,yi,zi),i=1,2,…,n,求点(x,y)的插值。

Matlab工具箱调用格式

Zi=griddata(x,y,z,Xi,Yi)

Xi,Yi为两个不同方向的向量,返回[Xi,Yi]处的插值

参数介绍: 

  • (x, y, z):离散的数据点,其中 x 和 y 是数据点的 x 坐标和 y 坐标,z 是对应的值。
  • (Xi, Yi):目标位置的 x 坐标和 y 坐标,可以是向量、矩阵或者网格形式。
  • Zi:根据插值计算出来的值,对应于 (Xi, Yi)

griddata 函数使用不同的插值方法(如三次样条插值、线性插值、最近邻插值等)来计算目标位置的插值结果。它会根据所选的插值方法在 (x, y) 平面上对数据点进行插值处理,得到目标位置 (Xi, Yi) 的相应插值结果 Zi

需要注意的是,griddata 函数的插值方法是自动选择的,基于数据点的情况和密度来确定最合适的插值方法。如果需要更精确地控制插值方法,可以使用附加参数进行设置。

在使用 griddata 函数时,确保输入参数 (x, y, z) 的长度一致,是对应的数据点三个维度的向量或矩阵。同时,目标位置 (Xi, Yi) 的尺寸应与 (x, y) 一致或能通过扩展 (x, y) 得到。

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七七喝椰奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值