Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - Русский

Please note that the recommended version of Scilab is 6.1.0. This page might be outdated.
See the recommended documentation of this function

Scilab help >> Interpolation > bsplin3val

# bsplin3val

3次元スプラインの任意微分評価関数

### 呼び出し手順

`[dfp]=bsplin3val(xp,yp,zp,tl,der)`

### パラメータ

xp, yp, zp

tl

"splin3d"型のtlistで, 3次元テンソルスプライン(以下では`s`と 呼びます)を定義します.

der

3つ要素 `[ox,oy,oz]`のベクトルで, 計算する`s`の微分を定義します.

dfp

`xp`,`yp`および `zp`と同じ大きさのベクトルまたは行列で, これらの点における`s`の要素毎に特定の微分の評価値.

### 説明

この場合,`der=[0 0 0]`s, `der=[1 0 0]`ds/dx, `der=[0 1 0]`ds/dy, `der=[1 1 0]`d2s/dxdy, など...に対応します

### 例

```deff("v=f(x,y,z)","v=cos(x).*sin(y).*cos(z)");
deff("v=fx(x,y,z)","v=-sin(x).*sin(y).*cos(z)");
deff("v=fxy(x,y,z)","v=-sin(x).*cos(y).*cos(z)");
deff("v=fxyz(x,y,z)","v=sin(x).*cos(y).*sin(z)");
deff("v=fxxyz(x,y,z)","v=cos(x).*cos(y).*sin(z)");
n = 20;  // n x n x n  補間点
x = linspace(0,2*%pi,n); y=x; z=x; // 補間グリッド
[X,Y,Z] = ndgrid(x,y,z); V = f(X,Y,Z);
tl = splin3d(x,y,z,V,[5 5 5]);

// ある点で f および微係数を計算し,
// スプライン補間値と比較
xp = grand(1,1,"unf",0,2*%pi);
yp = grand(1,1,"unf",0,2*%pi);
zp = grand(1,1,"unf",0,2*%pi);

f_e = f(xp,yp,zp)
f_i = bsplin3val(xp,yp,zp,tl,[0 0 0])

fx_e = fx(xp,yp,zp)
fx_i = bsplin3val(xp,yp,zp,tl,[1 0 0])

fxy_e = fxy(xp,yp,zp)
fxy_i = bsplin3val(xp,yp,zp,tl,[1 1 0])

fxyz_e = fxyz(xp,yp,zp)
fxyz_i = bsplin3val(xp,yp,zp,tl,[1 1 1])

fxxyz_e = fxxyz(xp,yp,zp)
fxxyz_i = bsplin3val(xp,yp,zp,tl,[2 1 1])```

### 参照

• splin3d — 3次元補間グリッドのスプライン
• interp3d — 3次スプライン評価関数

### Comments

Add a comment:
Please login to comment this page.

 Report an issue << Interpolation Interpolation cshep2d >>

 Scilab EnterprisesCopyright (c) 2011-2017 (Scilab Enterprises)Copyright (c) 1989-2012 (INRIA)Copyright (c) 1989-2007 (ENPC)with contributors Last updated:Mon Oct 01 17:40:24 CEST 2012