本试验取材于中南大学《科学计算与MATLAB应用》
一、引例–零件加工问题
>> x1=0:0.1:15;
>> x=[0,3,5,7,9,11,12,13,14,15];
>> y=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6];
>> y1=interp1(x,y,x1,'spline');
>> plot(x1,y1)
>>
二、数据插值的计算机制
interp1():一维插值函数。
调用格式:
三、数据插值的实现方法
methos用于指定插值方法,常用的取值有以下四种:
1. linear:线性插值,默认方法。将与插值点靠近的两个数据点用直线连接,然后在直线上选取对应插值点的数据。
2. nearest:最近点插值,选择最近样本点的值作为插值数据。
3. pchip:分段3次埃尔米特插值。采用分段三次多项式,除满足插值条件,还需满足在若干节点处相邻段插值函数的一阶导数相等,使得曲线光滑的同时,还具有保形性。
4. spline:3次样条插值。每个分段内构造一个三次多项式,使其插值函数除满足插值条件外,还要求在各节点处具有连续的一阶和二阶导数。
interp2():二维插值函数
调用格式:
Z1=interp2(X,Y,Z,X1,Y1,method)
其中,X、Y是两个向量、表示两个参数的采样点,Z是采样点对应的函数值。X1、Y1是两个标量或向量,表示要插值的点。
四、应用案例–粮储仓的通风控制问题
若粮食水分吸收和蒸发量相等,这个湿度称为平衡点湿度。平衡点湿度跟粮温、粮湿有关。
>> x=20:10:90;
y=(0:5:20)';
z=[8.9,10.32,11.3,12.5,13.9,15.3,17.8,21.3;8.7,10.8,11,12.1,13.2,14.8,16.55,20.8;8.3,9.65,10.88,12,13.2,14.6,16.4,20.5;8.1,9.4,10.7,11.9,13.1,14.5,16.2,20.3;8.1,9.2,10.8,12,13.2,14.8,16.9,20.9];
xi=20:90;
yi=(0:20)';
zi=interp2(x,y,z,xi,yi,'spline');
surf(xi,yi,zi)
>>
>> v=20:10:150;
>> vs=v*(1000/3600);
>> d1=10*vs;
>> d2=[3.15,7.08,12.59,19.68,28.34,38.57,50.4,63.75,78.71,95.22,113.29,132.93,154.12,176.87];
>> d3=10;
>> d=d1+d2+d3;
>> vi=20:150;
>> di=interp1(v,d,vi,'spline');
>> x=abs(di-120);
>> [y,i]=sort(x);
>> vi(i(1));
>> plot(vi,di,vi(i(1)),di(i(1)),'rp')
>>
第二问:设计一条最高时速为125km/h的高速公路,则设计人员应该保证驾驶者在公路上任一点的可视距离为多少米?
>> j=find(vi==125);
>> plot(vi,di,125,480.14,'rp')
>> di(j)
ans =
480.1373
>>
总结:公路设计是一个复杂的工程,除了地形、地质等因素之外,驾驶者的可视距离也要考虑在内,以与设计时速相匹配,从设计上保障安全。