精华内容
下载资源
问答
  • 九种常见的二维插值方法

    千次阅读 2021-03-08 13:40:01
    双线性插值在数学上,双线性插值是线性插值的一种推广,用于在二维直线网格上插值两个变量(如x和y)的函数。 双线性插值首先在一个方向上使用线性插值,然后在另一个方向上使用线性插值。虽然每一步在采样值和位置...

    1、Bilinear interpolation双线性插值

    双线性插值在数学上,双线性插值是线性插值的一种推广,用于在二维直线网格上插值两个变量(如x和y)的函数。

    双线性插值首先在一个方向上使用线性插值,然后在另一个方向上使用线性插值。虽然每一步在采样值和位置上都是线性的,但是插值作为一个整体在采样位置上不是线性的而是二次的。

    双线性插值是计算机视觉和图像处理中最基本的重采样技术之一,也称为双线性滤波或双线性纹理映射

    2、Bicubic interpolation双三次插值

    在数学中,双三次插值是三次插值(不要与三次样条插值混淆,请参阅三次样条)的一种扩展,用于在二维规则网格上插值数据点。该插值曲面比双线性插值或最近邻插值得到的相应曲面更为光滑。双三次插值可以使用拉格朗日多项式、三次样条或三次卷积算法来实现。

    在图像处理中,当速度不是一个问题时,在图像重采样中通常选择双三次插值而不是双线性插值或最近邻插值。与仅考虑4个像素(2×2)的双线性插值不同,双三次插值考虑16个像素(4×4)。使用双三次插值重采样的图像更平滑,插值伪影更少。

    3、Non-uniform rational B-spline(NURBS)非均匀有理B样条插值

    非均匀有理基样条(NURBS)是计算机图形学中常用的一种基于基样条(B样条)表示曲线曲面的数学模型。它提供了极大的灵活性和精度来处理分析(由通用数学公式定义)和模型形状。它是一种曲线造型,与多边形造型或数字雕刻相对。NURBS曲线常用于计算机辅助设计(CAD)、制造(CAM)和工程(CAE)中。它们是众多行业标准的一部分,如IGES、STEP、ACIS和PHIGS。用于创建和编辑NURBS曲面的工具可以在各种三维图形和动画软件包中找到。
    它们可以由计算机程序有效地处理,但也允许简单的人机交互。NURBS曲面是三维空间中两个参数映射到一个曲面上的函数。曲面的形状由控制点决定。在紧凑的形式中,NURBS曲面可以表示简单的几何形状。对于复杂的有机形状,T样条曲线和细分曲面更适合,因为与NURBS曲面相比,它们将控制点的数量减少了一半。

    4、Inverse Distance Weighted反距离加权插值

    反距离加权法是一种常用而简单的空间插值方法,IDW是基于“地理第一定律”的基本假设:即两个物体相似性随他们见的距离增大而减少。它以插值点与样本点间的距离为权重进行加权平均,离插值点越近的样本赋予的权重越大,此种方法简单易行,直观并且效率高,在已知点分布均匀的情况下插值效果好,插值结果在用于插值数据的最大值和最小值之间,但缺点是易受极值的影响。

    5、样条插值法(Spline)

    样条插值是使用一种数学函数,对一些限定的点值,通过控制估计方差,利用一些特征节点,用多项式拟合的方法来产生平滑的插值曲线。这种方法适用于逐渐变化的曲面,如温度、高程、地下水位高度或污染浓度等。该方法优点是易操作,计算量不大,缺点是难以对误差进行估计,采样点稀少时效果不好

    样条插值法又分为:张力样条插值法(Spline with Tension),规则样条插值法(Regularized Spline)

    薄板样条插值法 (Thin-Plate Splin)

    6、Minimum Curvature最小曲率法

    最小曲率法,广泛用于地球科学,试图在尽可能严格地尊重数据的同时,生成尽可能圆滑的曲面。

    最小曲率法广泛用于地球科学。用最小曲率法生成的插值面类似于一个通过各个数据值的,具有最小弯曲量的长条形薄弹性片。最小曲率法,试图在尽可能严格地尊重数据的同时,生成尽可能圆滑的曲面。 使用最小曲率法时要涉及到两个参数:最大残差参数和最大循环次数参数来控制最小曲率的收敛标准。

    对于离散点曲面插值问题,最小曲率法所采用的插值约束条件为:

    E=int ( k_1^2 + k_2^2 ) rightarrow min

    即要求对通过已知点集(xi,yi,zi),i=1,2,3,…,n的插值曲面上两主曲率k1,k2的平方和的积分值为最小。上述积分被成为曲面能(blending energy)或粗糙度(roughness)。由于曲面率具有不依赖于坐标空间系统的内在独立性,因而它是衡量曲面弯曲变化程度的最佳参数。符合上述准则的曲面将是通常所期望的“最光滑”的理想曲面。但事实上考虑到曲面曲率计算的复杂性,一般采用下式作为替代的约束条件:

    即要求对曲面函数的二次偏导函数项的平方和在插值区域内的积分值为最小。对它的显式全局解即常见的样条插值(tin plate spline, TPS),可以写作:

    7、Dscrete Smoothing Interpolation, DSI,离散光滑插值

    DSI方法是法国南锡大学J.L.Mallet教授提出的,该方法依赖于网格结点的拓扑关系,不以空间坐标为参数,是一种不受维数限制的差值方法。DSI插值基本思想:欲在一个离散化数据点间建立相互联络的网络,如果网络上的已知节点值满足某种约束条件,则未知节点上的值可以通过解线性方程而得到。

    DSI方法建立了计算网格结点上最优解的目标函数 ,其中为全局粗糙度函数, 为线性约束违反度函数。通过使用目标函数 达到最小,实现两方面的目标:

    ①使全局粗糙度函数 达到最小,从而尽可能使 在任意结点上的函数值逼近该点邻域内结点 值的均值,也就是使每个结点的 值尽可能平滑:

    ②将原始采样数据转化成定义在一些结点上的线性约束,使线性约束的违反度函数 达到最小,也就是说线性约束的符合程度达到最大,从而使相关结点的 值竟可能逼近采样数据。

    DSI插值算法的数学描述:在有节点连接构成的网格Ω内部,已知网络节点集成为L,未知网络节点集为I(I+L=Ω);f(*)为Ω内的一个分段连续函数,函数f(*)在节点集合L上假设一直,插值算法的目的通过f(*)推测出在集合I上的内插值函数Φ(*)表达式。

    显然,插值函数只能无穷逼近未知网格节点,为了选择一个“最优”表达式,DSI算法利用二次检验函数(全局平滑度函数)R(ψ)来检验一个可能的插值函数,二次检验函数如下式所示。R(ψ)=ψ*[W]* ψ 其中[W]是给定的正定对称矩阵,R(ψ)由多个局部平滑度函数在线性约束下确定,通过检验函数的约束,可以得到最优的插值函数表达式,进而求得内插值函数Φ(*)集,在实际应用中,可以结合专家经验来现则合适的插值函数。

    8、克里金法(Kriging)

    克里金方法最早是由法国地理学家Matheron和南非矿山工程师Krige提出的,用于矿山勘探。这种方法认为在空间连续变化的属性是非常不规则的,用简单的平滑函数进行模拟将出现误差,用随机表面函数给予描述会比较恰当。(克里金中包括几个因子:变化图模型、漂移类型和矿块效应)

    克里金方法的关键在于权重系数的确定,该方法在插值过程中根据某种优化准则函数来动态地决定变量的数值,从而使内插函数处于最佳状态。克里金方法考虑了观测的点和被估计点的位置关系,并且也考虑各观测点之间的相对位置关系,在点稀少时插值效果比反距离权重等方法要好。所以利用克里金方法进行空间数据插值往往取得理想的效果。

    在地质统计学中,根据应用目标的区别,发展了多种克里格方法如:简单克里格(Simple-Kriging)、

    普通克里格(Ordinary-Kriging)、泛克里格(Universal-Kriging)、对数正态克里格(Log-Normal Kriging)、协同克里格(Cokriging)、拟协克里格(Pseudo-Kriging)、指示克里格(Indicator-Kriging)、

    离析克里格(Disjunctive-Kriging)

    在三维地质建模过程中,克里格被作为插值方法,能过最大的程度的保证地质界面与原始数据的吻合,且不依赖于网络。

    9、趋势面光滑插值(Trend Surface)

    作为一个非精确的插值方法,趋势面插值用多项式表示的线或面按最小二乘法原理对数据点进行拟合,并用于估算其它值的点,线和面多项式的选择取决于数据是一维还是二维。包括线性或一阶次趋势面的数学模拟模型、二次趋势面的数学模拟模型、三次趋势面的数学模拟模型(二维)。

    趋势面分析的优点:它是一种极易理解的技术,至少在计算方法上易于理解。另外,大多数数据特征可以用低次多项式来模拟。

     

    参考文献

    https://www.docin.com/p-795224773.html

    http://blog.sina.com.cn/s/blog_6316e2af0101l548.html

     

    展开全文
  • 前面已经学习了二维插值的基本概念:一篇文章带你认识数学建模中的二维插值 本篇文章主要实现使用MATLAB进行二维插值计算 文章目录一、网格节点的插值计算二、散点数据的插值计算1. 示例 12. 示例 2 一、网格节点的...

    前面已经学习了二维插值的基本概念:一篇文章带你认识数学建模中的二维插值
    本篇文章主要实现使用MATLAB进行二维插值计算

    一、网格节点的插值计算

    Vq = interp2(X,Y,V,Xq,Yq) 使用线性插值返回双变量函数在特定查询点的插入值。结果始终穿过函数的原始采样。X 和 Y 包含样本点的坐标。V 包含各样本点处的对应函数值。Xq 和 Yq 包含查询点的坐标。
    在这里插入图片描述
    注意:x0,y0 为向量,但 z0 是矩阵,其列数等于 x0 的长度,行数等于 y0 的长度

    示例:
    测得平板表面3*5网格点处的温度分别为:
    <

    展开全文
  • MATLAB二维网格数据插值

    千次阅读 2019-11-03 16:27:41
    插值方法能够通过这些数据去确定某类已知函数的参数或寻求某个近似函数,使所得到的近似函数与已知数据有较高的拟合精度。 [x,y]=meshgrid(-5:0.25:5); z=peaks(x,y); [xi,yi]=meshgrid(-5:0.125:5); z1=interp2(x...

         在实际中,常常需要处理由实验或测量所得到的一些离散数据。插值方法能够通过这些数据去确定某类已知函数的参数或寻求某个近似函数,使所得到的近似函数与已知数据有较高的拟合精度。

    [x,y]=meshgrid(-5:0.25:5);
    z=peaks(x,y);
    [xi,yi]=meshgrid(-5:0.125:5);
    z1=interp2(x,y,z,xi,yi);
    subplot(2,2,1);
    mesh(x,y,z);
    hold on;
    mesh(xi,yi,z1+15);
    axis([-5 5 -5 5 -5 20]);
    title('二维网格双线性插值');
    z2=interp2(x,y,z,xi,yi,'spline');
    subplot(2,2,2);
    mesh(x,y,z);
    hold on;
    mesh(xi,yi,z2+15);
    axis([-5 5 -5 5 -5 20]);
    title('二维网格样条插值');
    z3=interp2(x,y,z,xi,yi,'cubic');
    subplot(2,2,3);
    mesh(x,y,z);
    hold on;
    mesh(xi,yi,z3+15);
    axis([-5 5 -5 5 -5 20]);
    title('二维网格双三次插值');
    z4=interp2(x,y,z,xi,yi,'cubic');
    subplot(2,2,4);
    mesh(x,y,z);
    hold on;
    mesh(xi,yi,z3+15);
    axis([-5 5 -5 5 -5 20]);
    title('二维网格最近邻插值');
    set(gcf,'color','w');
    

     

    作者:QinL

     

    展开全文
  • 在matlab中实现二维插值,多个离散点实现插值画出一个完整的面
  • 二维插值-MATLAB

    千次阅读 2020-07-25 23:27:00
    二维插值,简单来说就是节点二维插值函数二维,形如z=f(x,y)z=f(x,y)z=f(x,y)。 (一)插值节点为网格节点          网格节点,听命字就知道它是比较规则整齐的了。...

    二维插值与MATLAB实例解析

    二维插值,简单来说就是节点二维、插值函数二维,形如 z = f ( x , y ) z=f(x,y) z=f(x,y)

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

             网格节点,听命字就知道它是比较规则整齐的点了。相当于在 x y z xyz xyz平面内,一条条整齐的平行于 x , y x,y xy轴的直线相交,再在 z z z轴方向对应一个值。

    MATLAB命令:
    z = i n t e r p 2 ( x 0 , y 0 , z 0 , x , y , ′ m e t h o d ′ ) z=interp2(x_{0},y_{0},z_{0},x,y,'method') z=interp2(x0,y0,z0,x,y,method)
    其中:
    x 0 , y 0 为 已 知 节 点 , z 0 是 对 应 的 值 ; x_{0},y_{0}为已知节点,z_{0}是对应的值; x0y0,z0
    x 0 , y 0 分 别 为 m 纬 、 n 纬 向 量 , z 为 m ⋅ n 矩 阵 ; x_{0},y_{0}分别为m纬、n纬向量,z为m\cdot n矩阵; x0,y0mnzmn
    x , y 是 要 插 值 的 节 点 , z 返 回 对 应 的 插 值 得 到 的 值 ; x,y是要插值的节点,z返回对应的插值得到的值; x,yz
    m e t h o d 是 插 值 方 法 , 和 一 维 插 值 相 同 : method是插值方法,和一维插值相同: method
    ′ n e a r e s t : ′ 'nearest:' nearest最近项插值
    ′ l i n e a r : ′ 'linear:' linear线性插值
    ′ s p l i n e : ′ 'spline:' spline立方样条插值
    ′ c u b i c : ′ 'cubic:' cubic立方插值

    例1:

    clear,clc
    x=100:100:500;  %已知节点数据
    y=100:100:400;
    z=[636    697    624    478   450  
       698    712    630    478   420
       680    674    598    412   400
       662    626    552    334   310];
    
    pp=csape({x,y},z') %采用3次样条插值
    
    xi=100:10:500;yi=100:10:400;  %要插值的点
    cz=fnval(pp,{xi,yi});          %返回字(xi,yi)处的值
    
    [i,j]=find(cz==max(max(cz)))  %找最高点的地址
    x=xi(i),y=yi(j),zmax=cz(i,j)  %求最高点的坐标 
    

    (二)插值节点为散乱节点

    使用函数 g r i d d a t a ( ) griddata() griddata():
    Z I = g r i d d a t a ( x , y , z , X I , Y I ) ZI=griddata(x,y,z,XI,YI) ZI=griddata(x,y,z,XI,YI)
    例2:

    clc, clear
    x=[129,140,103.5,88,185.5,195,105,157.5,107.5,77,81,162,162,117.5];
    y=[7.5,141.5,23,147,22.5,137.5,85.5,-6.5,-81,3,56.5,-66.5,84,-33.5];
    z=-[4,8,6,8,6,8,8,9,9,8,8,9,4,9];
    xmm=minmax(x)  %求x的最小值和最大值
    ymm=minmax(y)  %求y的最小值和最大值
    xi=xmm(1):xmm(2);
    yi=ymm(1):ymm(2);
    zi1=griddata(x,y,z,xi,yi','cubic'); %立方插值
    zi2=griddata(x,y,z,xi,yi','nearest'); %最近点插值
    zi=zi1;  %立方插值和最近点插值的混合插值的初始值
    zi(isnan(zi1))=zi2(isnan(zi1))  %把立方插值中的不确定值换成最近点插值的结果
    subplot(1,2,1), plot(x,y,'*')
    subplot(1,2,2), mesh(xi,yi,zi)
    

    在这里插入图片描述

    展开全文
  • 离散点插值算法

    万次阅读 2011-01-03 10:30:00
    上一篇讨论了离散点如何生成等值线的思路,其需求基本上是根据特定的数值计算坐标,即计算插值线的位置。而也有需求是根据坐标求数值,即将离散点的空白处全部插值生成平滑过流的栅格矩阵。   离散...
  • Matlab二维插值加划分网格

    千次阅读 2019-08-22 16:49:53
    在均匀的查询网格上插入随机分布的散点数据。 对函数介于 -2.5 和 2.5 之间的 200 个随机采样。 xy = -2.5 + 5*gallery('uniformdata',[200 2],0); x = xy(:,1); y = xy(:,2); v = x.*exp(-x.^2-y.^2); x、y 和...
  • 二维插值法在MATLAB中的实现

    千次阅读 2019-08-28 15:56:21
    MATLAB中的二维插值函数为interp2(); 函数格式为: (1) ZI = interp2(X,Y,Z,XI,YI) 返回矩阵ZI,其元素包含对应于参量XI 与YI(可以是向量、或同型矩阵) 的元素, 即Zi(i,j) ←[Xi(i,j),yi(i,j)]。用户可以输入行...
  • 针对小区域大高差似大地水准面拟合,利用空间定位技术提供的高精度三坐标离散数据,对次曲面、三次曲面、移动曲面和多面函数等多种模型进行拟合分析,使用VB编程技术开发曲面拟合程序,结合某矿山实例对不同函数...
  • matlab 二维插值计算

    2011-03-18 16:45:49
    matlab 二维插值计算matlab 二维插值计算
  • 离散点插值计算程序(已验证)广东省给对方身份的还是地方好地方傻傻的
  • 使用griddata进行均匀网格和离散点之间的相互插值

    千次阅读 热门讨论 2019-12-11 19:09:32
    常见的一维插值很容易实现,相对来说,要实现较快的二维插值,比较难以实现。这里就建议直接使用scipy 的griddata函数。 1 griddata函数介绍 官网介绍 2 离散点插值到均匀网格 def interp2d_station_to_gri...
  • 一维、二维与多维插值

    千次阅读 2015-07-29 16:00:33
    转自:...插值就是已知一组离散的数据点集,在集合内部某两个之间预测函数值的方法。 一、一维插值  插值运算是根据数据的分布规律,找到一个函数表达式可以连接已知的各,并用此函
  • 插值和拟合类似,都可以通过一组离散数据得到一个好看的函数。 一维插值 多项式拟合 F=[20 1049 1490 1882 2124 2551 3136 3684 ... 3942 4330 5002 5572 5915 6366 6737 7745 8227 ... 10207 10931 11892 12663 ...
  • 有x=[0 1 2 3 4 5 6 7 8 9],y=[5 7 9 10.11 11.9 9.9 9.6 9.3 7 5] 为实现到线,实现代码如下: ... %%三次方样条数据插值 注意:x,y数组大小应该相同 plot(x,y,‘o’,xx,yy) %%输出结果 结果如下: ...
  • MATLAB 插值+计算离散点曲率

    千次阅读 2020-07-10 21:03:58
    例:余弦函数取 8 个,用 B-Spline 插值 x = 0:1:7; y = cos(x*0.5*pi); xx=0:0.01:7; yy=spline(x,y,xx); h1 = abs(diff(xx)); h = [h1 h1(end)]; ht = h; yy1=gradient(yy)./ht; yy2=gradient(.
  • 将无网格方法(PIM、RPIM及EFGM)用于重力异常场二维正演计算:首先从重力异常二维变分问题出发,利用Galerkin法结合高斯积分公式推导了对应的无网格离散系统矩阵表达式;其次通过数值试验得出了RPIM-MQ、RPIM-exp及EFGM-...
  • 由于整个网格由离散点组成,当我们想知道 (1.5, 1.5) 或者 (2.5, 2.5) 的坐标值的时候,是无法直接获取的,只能通过二维插值来得到,如下图。 这个时候就可以采用griddata()函数,代码如下: import numpy as...
  • 【Matlab学习手记】三散点插值成曲面

    万次阅读 多人点赞 2018-11-02 09:23:53
    构造一个曲面分布,从曲面上取一些特征,然后依据这些特征进行二维插值,用到了griddata函数,提取的特征越多,插值得到的曲面和原始曲面越接近。 clear; clc; [X, Y, Z] = peaks(30); position = [13,26; ...
  • 离散点插值方法、等值线的绘制及平滑技巧吕勇平 戴景茹(广东省气候应用研究所 510080) 由于等值线图看起来非常直观、形象,因此在天气预报、气候预测分析等方面用得非常多,已成为预报员不可缺少的工具之一。...
  • 离散二维小波变换 MATLAB

    万次阅读 2016-09-06 15:29:50
    下面是离散二维(harr)小波变换MATLAB代码的实现: clear;clc; %%%%%%%%%%测试图像只能是方形图像,长宽像素一样。 f=imread('Lena.jpg');%%读取图像数据,图像在当前所在的路径下 d=size(f); if length(d)>2 f=...
  • 1)原始数据的输入,这里...// 拟合三平面 clear all clc close all Data = [ 2 -10 7 2 -8 7 。。。 (省略部分数据) 。。。 22 8 17 22 10 17]; ; 2)将两元因变量分别存于x,y之中,将变量存于z中。 // 拟合...
  • 二维三次卷积插值算法

    千次阅读 2013-09-08 13:36:21
    在生产或生活中,我们往往只能得到有限的关于某个物理量的离散点(比如一张图片,我们只能得到其原...常用的插值算法有很多,从简单的线性插值,Lagrange插值,Newton插值,到较复杂的Herminate插值二维三次卷积插值
  • 使用非 NaN 元素在二维数组中插入 NaN 元素。 也可以外推,因为它不使用数据的三角剖分。 Inpaint_nans 提供了几种不同的插值方法,可以在准确性与速度和所需内存之间进行权衡。 目前在 inpaint_nans 中发现的所有...
  •  今天要记录的是二维离散傅里叶变换的一些性质,也是傅里叶在图像处理中要用到的一些性质,所以要重点学习下,并总结下。重点在性质。 二维DFT数学公式  根据一维离散傅里叶变换,直接给出二维DFT的公式,这...
  • Matlab--三散点插值成曲面

    千次阅读 2019-03-14 20:49:34
    问题:已知一系列三维的散点坐标,得到一个经过这些散点的曲面图。 &amp;nbsp; &amp;nbsp; &amp;nbsp; &... 构造一个曲面分布,从曲面上取一些特征,然后依据这些特征进行二维
  • 三维扩散方程的离散推导和二维的套路是一毛一样的,无非就是多了两个边界面 bbb和 ttt,散度离散和梯度离散时多了两项,梯度离散方法和方程式 (5)(5)(5)一样也用中心差分格式,然后带入,整理,简化之。 散度离散 ∫...
  • 文章目录一、基础概念插值是什么拟合是什么插值和拟合的相同插值和拟合的不同点二、常用的基本插值方法高次多项式插值拉格朗日多项式插值牛顿插值差商矩阵低次多项式插值(不易震荡)分段线性插值Hermite插值三次...
  • Matlab插值方法大全

    千次阅读 2018-01-11 09:10:34
    功能 一数据插值(表格查找)。该命令对数据之间计算内插值。它找出一元函数f(x)在中间的数值。其中函数f(x)由所给数据决定。 x:原始数据 Y:原始数据 xi:插值点 Yi:插值点 格式 (1)yi = interp1(x,Y,...
  • 插值方法概述01

    万次阅读 2018-04-10 21:20:29
    使用二维最小曲率样条法将点插值成栅格表面。生成的平滑表面恰好经过输入。 含障碍的样条函数(Spline with Barriers) 通过最小曲率样条法利用障碍将点插值成栅格表面。障碍以面要素或折线要素的形式输入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,459
精华内容 2,983
关键字:

二维离散点的插值方法