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
![]() |
内挿と多次元配列 | 高次散布データの三角分割と内挿 | ![]() |