| Mathematics |
散布データの三角メッシュと内挿
MATLABは、最近傍点問題の解析と幾何解析に手助けになるルーチンを用意しています。
| 関数 |
詳細 |
|
凸包 |
|
n-次元の凸包 |
|
Delaunay三角形作成 |
|
3-次元の Delaunay 三角形分割 |
|
n-次元の Delaunay 三角形分割 |
|
最近傍点に対するDelaunay三角形の探索 |
|
多角形内部に点が存在すると真 |
|
多角形の面積 |
rectint |
2つまたはそれ以上の長方形に囲まれた面積 |
|
最近傍の三角形の探索 |
|
Voronoiダイアグラム |
|
n-次元のVoronoiダイアグラム |
この節は、MATLABで与えるseamountデータセットに、つぎの手法を適用します。
Delaunay 三角形
関数delaunayは、ある三角形の領域に含まれているけれども、実際にデータとして存在しない点を一組の三角形として出力します。delaunayを実行するために、MATLABで用意されているseamountデータをロードし、簡単なバラツキのプロットが表示されます。
load seamount
plot(x,y,'.','markersize',12)
xlabel('Longitude'), ylabel('Latitude')
grid on
注意:seamountの情報に関しては、Parker,R.L.,L.Shure,J.Hildebrandの"The
Application of Inverse Theory to Seamount Magnetism."(Reviews of GeophysicsVol
25,1987:pp.17-40)を参照してください
Delaunay三角法を適用し、バラツキのあるデータのプロット図に重ね書きします。
tri = delaunay(x,y);
hold on, trimesh(tri,x,y,z), hold off
hidden off; grid on
xlabel('Longitude'); ylabel('Latitude')
[xi,yi] = meshgrid(210.8:.01:211.8,-48.5:.01:-47.9); zi = griddata(x,y,z,xi,yi,'cubic'); [c,h] = contour(xi,yi,zi,'c-'); clabel(c,h)
meshgrid
に対する引数は、オリジナルのseamountデータの中のxとyの最大値と最小値の範囲を含んでいます。これらのデータを得るには、つぎのステートメントを使ってください。
min(min(x)) max(max(x))
min(min(y)) max(max(y))
最近傍点の探索 つぎの2つの関数を使って、Delaunay三角法データから求めます。
Voronoi ダイアグラム
Voronoiダイアグラムは、Delaunay三角法に関連した最近傍点プロット法です。seamountデータに対して、Voronoiダイアグラムは、つぎのステートメントで求めます。
load seamount voronoi(x,y) grid on
凸包
関数convhullは、データ集合に対して、凸部を構成する点のインデックスを出力します。例えば、seamountデータに対して、凸部を構成する部分を表示しましょう。
load seamount plot(x,y,'.','markersize',10) k = convhull(x,y); hold on, plot(x(k),y(k)), hold off grid on
| 内挿と多次元配列 | 高次散布データの三角分割と内挿 |