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

MATLAB interp1()插值函数的用法(附带实例)

插值法是一种古老的数学方法。插值问题的数学定义如下:
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 使用 interp1() 函数来实现一维插值。

interp1() 函数的调用格式如下:
vq=interp1(x,v,xq)
vq=interp1(x,v,xq,method)

上述几种插值方法的比较如下:
要选择一种插值方法,需要考虑的因素包括运算时间、占用计算机内存的大小和插值的平滑性。

【实例】利用 interp1() 函数对 y=sinx 进行分段线性插值。在编辑器窗口中编写如下代码:
clear all;
x = 0:2*pi;
y = sin(x);
xx = 0:0.5:2*pi;
yy = interp1(x, y, xx);
plot(x, y, 's', xx, yy)
运行结果如下图所示:


图 2 分段线性插值结果

相关文章