二维插值
上一页
下一页
x
主 页
引例2:船在该海域会搁浅吗?
在某海域测得一些点(x,y)处的水深z由下表给 出,船的吃水深度为5英尺,在矩形区域(75,200) *(-50,150)里的哪些地方船要避免进入。
x y z x y z 129 140 103.5 88 185.5 195 7.5 141.5 23 147 22.5 137.5 4 8 6 8 6 8 157.5 -6.5 9 107.5 -81 9 105 85.5 8
y y3 y2
(x*, y*)
y1
x1
x2
上一页
x3
下一页 主 页
x4
x5 x
二维插值的提法
第二种(散乱节点) 已知n个节点
其中
互不相同,
求任一插值点 处的插值
上一页 下一页 主 页
二维插值方法的基本思路
构造一个二元函数 通过全部已知节点,即
Y
3200 3000 2800 2600 1500 2000 X 2500
上一页 下一页 主 页
上一页
下一页
主 页
返回 上一页 下一页 主 页
范例2:船在该海域会搁浅吗?
在某海域测得一些点(x,y)处的水深z由下表给出, 船的吃水深度为5英尺,在矩形区域(75,200)* (-50,150)里的哪些地方船要避免进入。
范例1:绘制山区地貌图
分别用最近邻点插值、线性插 值和三次插值加密数据点,并分别 作出这三组数据点的网格图。
注意观察双线性插值方法和双三 次插值方法的插值效果的差异。
上一页 下一页 主 页
上一页
下一页
主 页
上一页
下一页
主 页
上一页
下一页
主 页
4500 4000 3500 3000 2500 2000 1500 1000 500 0
77 81 162 162 117.5 3 56.5 -66.5 84 -33.5 8 8 9 4 9
上一页
下一页
主 页
引例2:船在该海域会搁浅吗?
y
x
返回 上一页 下一页 主 页
插值的基本原理
二 维 插 值 的 提 法
第一种(网格节点)
注意:(x, y)当然应该是在插值节点所形成的矩形区 域内。显然,分片线性插值函数是连续的;
返回 上一页 下一页 主 页
3.双线性插值
y
(x1 y2) ,
(x2, y2)
(x1, y1) (x2, y1)
x
双线性插值是一片一片的空间二次曲面构成。 插值函数的形式如下: f ( x, y) (ax b)(cy d)
上一页
下一页
主 页
返回 上一页 下一页 主 页
用MATLAB作散点数据的插值计算
z=griddata(x0,y0,z0,x,y,’method’)
被插值点 的函数值
插值节点
被插值点
注意:x0,y0,z0均为向量,长度相等。
Method可取 ‘nearest’,’linear’,’cubic’,’v4’; ‘linear’是缺省值。
4500 4000 3500 3000 2500 2000 1500 1000 500 0
0
2000
4000
0
2000
4000
上一页
下一页
主 页
4200 4000 3800 3600 3400
4200 4000 3800 3600 3400
Y
3200 3000 2800 2600 1500 2000 X 2500
上一页 下一页 主 页
范例1:绘制山区地貌图
要在某山区方圆大约27平方公里范围内 修建一条公路,从山脚出发经过一个居民区, 再到达一个矿区。横向纵向分别每隔400米测 量一次,得到一些地点的高程:(平面区域 0<=x<=5600,0<=y<=4800),首先需作出该山 区的地貌图和等高线图。
上一页 下一页 主 页
xlabel('Width of Plate'), ylabel('Depth of Plate') zlabel('Degrees Celsius'), axis('ij'),grid, pause; zlin=interp2(width,depth,temps,wi,di,… 'cubic'); figure(3); mesh(wi,di,zlin) xlabel('Width of Plate'), ylabel('Depth of Plate') zlabel('Degrees Celsius'), axis('ij'),grid
或
再用
计算插值,即
返回 上一页 下一页 主 页
二维插值方法
网格节点插值法: 最邻近插值; 分片线性插值; 双线性插值; 双三次插值。 散点数据插值法:
修正Shephard法
上一页 下一页 主 页
返回
1.最邻近插值
y (x1, y2) (x2, y2) x
(x1, y1) (x2, y1)
求出测量范 围内的细网 格的节点的 x,y坐标数组
pf=griddata(x,y,z,px,py,’cubic’); figure(2),meshz(px,py,pf), rotate3d,pause
figure(3),surf(px,py,pf),
rotate3d,pause Contour(px,py,pf,
返回 上一页 下一页 主 页
用MATLAB作插值计算
网格节点的插值计算;
散点数据的插值计算;
用MATLAB作插值计算小结
返回 上一页 下一页 主 页
网格节点数据的插值
例:测得平板表面3*5网格点处的温度 分别为: x
82 79 84 81 63 84 80 61 82 82 65 85 84 81 86
数学实验之四
——(2)二维插值
实验目的
[1] 了解二维插值的基本原理,了解三 种网格节点数据的插值方法的基本思想; [2] 掌握用MATLAB计算二维插值的方法, 并对结果作初步分析; [3] 通过实例学习如何用插值方法解决 实际问题。
上一页
下一页
主 页
二维插值主要内容
引例1,引例2 二维插值的基本原理 二维插值方法
数值: f (xi, yj)=f1, f (xi+1, yj)=f2,
f (xi+1, yj+1)=f3,
第一片(下三角形区域):
f (xi, yj+1)=f4
插值函数为: f ( x, y) f1 (f 2 f1 )( x x i ) (f 3 f 2 )( y y j )
x y z x y z
129 140 103.5 88 185.5 195 105 7.5 141.5 23 147 22.5 137.5 85.5 4 8 6 8 6 8 8 157.5 107.5 77 81 162 162 117.5 -6.5 -81 3 56.5 -66.5 84 -33.5 9 9 8 8 9 4 9
用插值方法 求出网格节 点处的z坐 标矩阵, 并 作出三维图
figure(4),contour(px,py,pf,[-5 -5]); grid,pause
[i1,j1]=find(pf<-5);
for k=1:length(i1) pf(i1(k),j1(k))=-5; end figure(5) 图2到4: 利用网格 节点的x,y坐标向量 px,py及其对应的z 坐标矩阵pf,作出网 格线图和填充曲面图, 水深5英尺处海底曲 面的等高线
上一页 下一页 主 页
1.作出测量点的分布图
clear;
x=[129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5]; y=[7.5 141.5 23 147 22.5 137.5 85.5… -6.5 -81 3 56.5 -66.5 84 -33.5]; z=[-4 -8 -6 -8 -6 -8 -8 -9 -9 -8 -8 …
-9 -4 -9];
plot(x,y,'+');
pause
上一页 下一页 主 页
150
100
50
0
-50
-100 60
80
100
120
140
160
180
200
上一页
下一页
主 页
nx=100;
px=linspace(75,200,nx); ny=200;
py=linspace(-50,150,ny);
已知 mn个节点 (xi, xj, zij) ( i=1, 2, …,m; j=1, 2, …, n )
其中xi, yj互不相同,不妨设
a=x1<x2<…<xm=b c=y1<y2<…<yn=d
求任一插值点(x*, y*) ( ≠(xi, yj) )处的插值Z*
上一页 下一页 主 页
二维插值的提法
注意:最邻近插值一般不连续。具有连续性的最简 单的插值是分片线性插值。
返回 上一页 下一页 主 页
2.分片线性插值
y
(xi, yj+1) (xi+1, yj+1) (xi, yj) (xi+1, yj)