首页 > 编程笔记 > MATLAB笔记 阅读:6

MATLAB interp2()函数的用法(附带实例)

插值法是一种古老的数学方法。插值问题的数学定义如下:
1) 先由实验或测量的方法得到函数 y=f(x) 在互异点 x0,x1,…,xn 处的数值 y0,y1,…,yn,见下图:


图 1 一维插值示意图

2) 然后构造一个函数 ϕ(x) 作为 y=f(x) 的近似表达式,即:
y=f(x)≈ϕ(x)
使得 ϕ(x0)=y0,ϕ(x1)=y1,…,ϕ(xn)=yn。这类问题称为插值问题,y=f(x) 称为被插值函数,ϕ(x) 称为插值函数,x0,x1,…,xn 称为插值节点。

插值的任务是由已知的观测点为物理量建立一个简单、连续的解析模型,以便能根据该模型推测该物理量在非观测点处的特性。

插值包括多项式插值、埃尔米特插值、分段插值与样条插值、三角函数插值、辛克插值等。插值在数据分析、信号处理、图像处理等诸多领域有着十分重要的应用。

当被插值函数 y=f(x) 为二元函数时,为二维插值。MATLAB 使用 interp2() 函数来实现二维插值。

interp2() 函数的调用格式如下:
Vq=interp2(X,Y,V,Xq,Yq,method).

MATLAB 共提供了 5 种插值方法:
【实例】二维插值示例。在编辑器窗口中编写如下代码:
clear all;
[X,Y] = meshgrid(-3:.25:3);    % 产生已知的数据栅格点
Z = peaks(X,Y);               % 计算已知点的函数值
[XI,YI] = meshgrid(-3:.125:3); % 产生更精密的插值点
ZI = interp2(X,Y,Z,XI,YI);   % 插值
mesh(X,Y,Z), hold, mesh(XI,YI,ZI+15)
hold off
axis([-3 3 -3 3 -5 20])
二维插值结果如下图所示:


图 2 二维插值结果

相关文章