插值与拟合
插值与拟合的区别和联系
1、联系
都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数的方法。
2、区别
插值问题不一定得到近似函数的表达形式,仅通过插值方法找到未知点对应的值。数据拟合要求得到一个具体的近似函数的表达式。
插值方法
选用不同类型的插值函数,逼近的效果就不同,一般有:
(1)最近邻算法插值(一维插值)
(2)拉格朗日插值算法(一维插值)
(3)双线性内插算法(二维插值)
(4)分段线性插值(二维插值)
(5)三次样条插值(二维插值)
(6)克里金插值(地理学)
(7)反距离权重插值算法(地理学)
Matlab 实现:实现分段线性插值不需要编制函数程序,它自身提供了内部的功能函数
interp1(一维插值)
interp2(二维)
interp3(三维)
intern(n维)
例:从1点12点的11小时内,每隔1小时测量一次温度,测得的温度的数值依次为:5,8,9,15,25,29,31,30,22,25,27,24.试估计每隔1/10小时的温度值.
hours=1:12;
temps=[5 8 9 15 25 29 31 30 22 25 27 24];
h=1:0.1:12;
t=interp1(hours,temps,h,'spline');
plot(hours,temps,'+',h,t,hours,temps,'r:') %作图
xlabel('Hour'),ylabel('Degrees Celsius’)
1.先在三维坐标画出原始数据,画出粗糙的温度分布曲线图.
输入以下命令:
x=1:5;
y=1:3;
temps=[82 81 80 82 84;79 63 61 65 81;84 84 82 85 86];
mesh(x,y,temps)
2.以平滑数据,在 x、y方向上每隔0.2个单位的地方进行插值.
再输入以下命令:xi=1:0.2:5;yi=1:0.2:3;zi=interp2(x,y,temps,xi',yi,'cubic');mesh(xi,yi,zi)
画出插值后的温度分布曲面图.
例 在某海域测得一些点(x,y)处的水深z由下表给出,船的吃水深度为5英尺,在矩形区域(75,200)×(-50,150)里的哪些地方船要避免进入.
1.输入插值基点数据 2.在矩形区域(75,200)×(-50,150)进行插值。 3. 作海底曲面图 4.作出水深小于5的海域范围,即z&