# 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 chosen interpolation points")
    legends("interpolation points",-9,1)
    show_window()

## 参照

- splin2d
- eval_cshep2d