linalg[diverge] - ベクトル値関数の発散
使い方
diverge(f, v)
diverge(f, v, co)
パラメータ
f - 式のベクトルまたはリスト
v - f の変数からなる(f と同じ長さの)ベクトルまたはリスト
co - (オプション) 型 `=` を持つか、または3つの要素からなるリスト。このオプションは直交曲線座標系で発散を計算するのに使います。
|
説明
|
|
•
|
関数 diverge は、v に関する f の発散を計算します。ここで、f は v により与えられる変数のベクトル値関数です。
|
•
|
f の v に関する発散は、diff(f[i], v[i]) の和で定義されます。ただし i は f の長さをわたるとします。
|
•
|
3次元の場合、すなわち f が3つの変数の3次元関数で、かつ v が3つの変数のリストまたはベクトルからなる場合:
|
|
オプションの第3引数 co が coords = coords_name または coords = coords_name([const]) である場合、diverge は よく使われる直交曲線座標系 の上で作用します。Maple がサポートする座標系のリストについては、?coords を見て下さい。
|
|
単位ベクトル a[1], a[2], a[3], スケール因子 h[1], h[2], h[3] をもつ
|
直交曲線座標 v[1], v[2], v[3] に対し、
x,y,z を指定された直交曲線座標により定義される直交座標とする。次が成り立つ:
h[n]^2 = [diff(x,v[n])^2 + diff(y,v[n])^2 + diff(z,v[n])^2], n=1,2,3.
f の発散の公式は以下のように与えられる:
|
diverge(f) = 1/(h[1]*h[2]*h[3])*sum(diff(h[1]*h[2]*h[3]*
f[n]/h[n],v[n]),n=1..3)
|
|
もし オプションの第3引数 co がスケール因子を指定する3つの要素からなるリストならば、diverge は直交曲線座標系の上で作用します。
|
|
他の直交曲線座標系で発散を計算するには、ルーチン addcoords を使います。
|
•
|
コマンド with(linalg,diverge) により、このコマンドの省略形を使えます。
|
|
|
例
|
|
Warning, the protected names norm and trace have been
redefined and unprotected
| |
>
|
f := vector([x, y^2, z]): v := vector([x, y, z]):
diverge(f, v);
|
| (2.1) |
>
|
h := vector([r, sin(theta), z]): v := vector([r, theta, z]):
diverge(h, v, coords=cylindrical);
|
| (2.2) |
>
|
i := vector([r, sin(theta)*r, cos(phi)*r]): v := vector([r, theta, phi]):
diverge(i, v, coords=spherical);
|
| (2.3) |
は球面極座標でスケール因子を定義します
>
|
s := [1, r, r*sin(theta)]:
diverge(i, v, s);
|
| (2.4) |
|
|