在应用领域中,由有限个已知数据点,构造一个解析表达式,由此计算数据点之间的函数值,称之为插值。
实例:海底探测问题
某公司用声纳对海底进行测试,在5×5海里的坐标点上测得海底深度的值,希望通过这些有限的数据了解更多处的海底情况。并绘出较细致的海底曲面图。
一元插值
一元插值是对一元数据点(xi,yi)进行插值。
1. 线性插值:由已知数据点连成一条折线,认为相临两个数据点之间的函数值就在这两点之间的连线上。一般来说,数据点数越多,线性插值就越精确。
调用格式:
yi=interp1(x,y,xi,’linear’) %线性插值
zi=interp1(x,y,xi,’spline’) %三次样条插值
wi=interp1(x,y,xi,’cubic’) %三次多项式插值
说明:yi、zi、wi为对应xi的不同类型的插值。x、y为已知数据点。
例1:已知数据:
x | 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1.0 |
---|---|---|---|---|---|---|---|---|---|---|---|
y | 0.3 | 0.5 | 1.0 | 1.4 | 1.6 | 1.9 | 0.6 | 0.4 | 0.8 | 1.5 | 2.0 |
求当xi=0.25时的yi的值。
程序:
x=0:.1:1;
y=[.3 .5 1 1.4 1.6 1 .6 .4 .8 1.5 2];
yi0=interp1(x,y,0.025,'linear') //我转载的,发现此处写错了,应为0.25,下方的yi0计算也是用0.025计算出来的。</