Scilab 5.3.0
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
cshep2d
2次元3次シェパード(散布)補間
呼び出し手順
tl_coef = cshep2d(xyz)
パラメータ
- xyz
(グリッド状ではない)補間点 (i番目の行は(x,y)座標,および i番目の補間点の高度zを指定します)
- tl_coef
(cshep2d型の) tlist scilab構造体
説明
この関数は,
補間点がグリッド上にない時に
2次元補間関数を定義する際に有用です
(この場合もこの関数を使用できますが,
splin2dの方がこの目的にはより
適しています).
この補間式は,3次シェパード補間でC2 (2階微分可能な連続関数)であり,
任意のi=1,..,nについて
s(xi,yi)=ziとなるような
2変数関数s(x,y)です
((xi,yi,zi)はxyz
のi番目のとなります).
何らかの点におけるsの評価は, eval_cshep2d関数により行う 必要があります.
注意
この関数はn >= 10で, ノードが同一線上になく (すなわち,補間点の座標 (x,y)座標が同じ直線上にない), 冗長なノードが存在しない(すなわち,同じ(x,y)に ついて複数の補間点が存在しない)場合に 動作します. これらの条件は満たされない場合, エラーが発生します.
例
// ランダムに選択された補間点について cos(x)cos(y)を補間します n = 150; // nb 個の補間点 xy = grand(n,2,"unf",0,2*%pi); z = cos(xy(:,1)).*cos(xy(:,2)); xyz = [xy z]; tl_coef = cshep2d(xyz); // グリッドにおける評価 m = 30; xx = linspace(0,2*%pi,m); [X,Y] = ndgrid(xx,xx); Z = eval_cshep2d(X,Y, tl_coef); clf() plot3d(xx,xx,Z,flag=[2 6 4]) param3d1(xy(:,1),xy(:,2),list(z,-9), flag=[0 0]) xtitle("Cubic Shepard Interpolation of cos(x)cos(y) with randomly choosen interpolation points") legends("interpolation points",-9,1) show_window()
作者
- Robert J. Renka
- B. Pincon (scilab interface)
<< bsplin3val | Interpolation | eval_cshep2d >> |