アップグレード情報:

VectorAnalysis`

バージョン9で,ベクトル解析パッケージの機能はWolframシステムに統合された.

ベクトル解析パッケージは三次元のベクトル解析にための機能を提供していた.バージョン9では,この機能がネイティブでカーネルに実装された.以前の機能はまだ利用可能であり,多数の拡張機能も加えられている.しかし,アップデートする場合は以下の点に注意する必要がある.

1つ目は,ネイティブの実装にはデフォルトの座標系というものがないという点である.座標系や変数の名前を必要とする関数では,明示的にそれを指定する必要がある.2つ目は,パッケージでは座標系は,座標系の名前,変数,パラメータを組み合わせた1つの式で指定されるが,ネイティブの実装では,この3つの部分がはっきりと分けられているという点である.三次元以外の座標系や非ユークリッド空間にある座標系もサポートされるため,座標系がどのように指定されるかという点についての違いが必要であった.

ベクトル解析パッケージをロードすると新しい機能が上書きされ,昔の式との完全な互換性が提供される.これはサイレントで新しい関数を隠すので,昔のコードが実行されることがある.ほとんどの場合新しい実装と古い実装を混ぜるべきではない.必要であれば,System`GradあるいはVectorAnalysis`Gradという完全なコンテキスト名を使って,この2つのバージョンを同時に使うことができる.

カーネル機能の概要についてはベクトル解析のガイドページを参照のこと.

座標系の名前

新しいカーネル関数CoordinateChartDataには,さまざまな座標系が集められている.以下の表はベクトル解析パッケージ座標系に対して等価のものの名前を記載している.名前は系とパラメータのみを示すもので,座標の名前ではないという点に注意する.座標の名前あるいは評価点を必要とするコマンドでは,これらは別々に指定される.このような場合,簡潔にするために次元は省略することができる.

ベクトル解析パッケージ バージョン9座標
Cartesian[x,y,z]{"Cartesian",3}{x,y,z}
Cylindrical[r,θ,z]{"Cylindrical",3} or "Cylindrical"{r,θ,z}
Spherical[r,θ,φ]{"Spherical",3} or "Spherical"{r,θ,φ}
Paraboloidal[u,v,φ]{"CircularParabolic",3}{u,v,φ}
ParabolicCylindrical[u,v,z]{"ParabolicCylindrical",3}{u,v,z}
EllipticCylindrical[u,v,z,a]{{"EllipticCylindrical",a},3}{u,v,z}
ProlateSpheroidal[ξ,η,φ,a]{{"ProlateSpheroidal",a},3}{ξ,η,φ}
OblateSpheroidal[ξ,η,φ,a]{{"ProlateSpheroidal",a},3}{ξ,π/2-η,φ}
Bipolar[u,v,z,a]{{"BipolarCylindrical",a},3}{u,v,z}
Bispherical[u,v,φ,a]{{"Bispherical",a},3}{u,v,φ}
Toroidal[u,v,φ,a]{{"Toroidal",a},3}{v,u,φ}
Conical[λ,μ,ν,a,b]{{"Conical", {a,b}},3}{λ,μ,ν}
ConfocalEllipsoidal[λ,μ,ν,a,b,c]{{"Confocal",{a2,b2,c2}},3}{-ν,-μ,-λ}
ConfocalParaboloidal[λ,μ,ν,a,b]{{"ConfocalParaboloidal",{a2,b2}},3}{λ,μ,ν}

新しいシステム関数

以下の表の微分関数がカーネルに移動した.座標の名前,座標系の名前,パラメータは別々の引数となり,複数のパラメータが指定される場合はそれをリストでくくらなければならないという点に注意する.以下の例の中には,新しいシンタックを示すものもある.より多くの例題は,個々の関数のレファレンスページを参照されたい.

ベクトル解析パッケージ バージョン9
Grad[f,csys[x1,x2,x3,pars]]Grad[f,{x1,x2,x3},{{"csys",pars}}]
Div[v,csys[x1,x2,x3,pars]]Div[v,{x1,x2,x3},{{"csys",pars}}]
Curl[v,csys[x1,x2,x3,pars]]Curl[v,{x1,x2,x3},{{"csys",pars}}]
Laplacian[f,csys[x1,x2,x3,pars]]Laplacian[f,{x1,x2,x3},{{"csys",pars}}]

球座標における傾き.

Version 8.0 Needs["VectorAnalysis`"]
Grad[r^2, Spherical[r, \[Theta], \[CurlyPhi]]]

共焦楕円座標における分散.

Version 8.0 Needs["VectorAnalysis`"]
Div[{1, 0, 0}, 
  ConfocalEllipsoidal[\[Lambda], \[Mu], \[Nu], a, b, c]] // Simplify

上記の通り,変数がコマンドの一部になっているときは,次元を省略することができる.

長球座標におけるカール.

Version 8.0 Needs["VectorAnalysis`"]
Curl[{1, 0, \[Xi]}, 
  ProlateSpheroidal[\[Xi], \[Eta], \[CurlyPhi], a]] // Simplify

第3要素は,異なるが等価の形式である.

円筒座標のラプラシアン.

Version 8.0 Needs["VectorAnalysis`"]
Laplacian[f[r, \[Theta], z], Cylindrical[r, \[Theta], z]] // Simplify

等価であるが,ずっと長い.

直交座標での操作の場合,座標系の名前は完全に省略してもよい.

Version 8.0 Needs["VectorAnalysis`"]
Grad[x^2 + y^2 + z^2, Cartesian[x, y, z]]

プロパティとして符号化された関数

ベクトル解析パッケージの関数の中には,カーネル関数にはなっていないものもあるが,新しいカーネル関数CoordinateChartDataおよびCoordinateTransformDataのプロパティとして利用することができる.

関数ScaleFactorsは,新しい関数CoordinateChartDataのプロパティに当る.

Version 8.0 Needs["VectorAnalysis`"]
ScaleFactors[{1, 2, 0}, 
 ProlateSpheroidal[\[Xi], \[Eta], \[CurlyPhi], a]]

関数CoordinateRangesおよびParameterRangesは,必然的に新関数CoordinateChartDataのプロパティに相当する.しかし,これらの新しいプロパティは不等式のリストではなく,論理式を返す.また,Parametersにより返されるように,デフォルトのパラメータはない.

Version 8.0 Needs["VectorAnalysis`"]
CoordinateRanges[ProlateSpheroidal[\[Xi], \[Eta], \[CurlyPhi], a]]
ParameterRanges[ProlateSpheroidal[\[Xi], \[Eta], \[CurlyPhi], a]]

新しいシステムでは,次元が指定されている場合は座標名を省略できるという柔軟性が加わった.これはパラメータ範囲等のプロパティがはっきりとは座標に依存しない場合に便利である.

関数JacobianMatrixJacobianDeterminantは両方とも,関数CoordinateTransformDataのプロパティである.

Version 8.0 Needs["VectorAnalysis`"]
JacobianMatrix[{1, Pi/4, 2}, 
 ProlateSpheroidal[\[Xi], \[Eta], \[CurlyPhi], a]]
JacobianDeterminant[{1, Pi/4, 2}, 
  ProlateSpheroidal[\[Xi], \[Eta], \[CurlyPhi], a]] // TrigReduce

関数CoordinatesToCartesianCoordinatesFromCartesianは両方,1つの関数CoordinateTransformによりカプセル化される.

Version 8.0 Needs["VectorAnalysis`"]
CoordinatesToCartesian[{1, Pi/4, 2}, Cylindrical[r, \[Theta], z]]
CoordinatesFromCartesian[{1, 1, 0}, Cylindrical[r, \[Theta], z]]

関数CoordinatesToCartesianCoordinatesFromCartesianは,新しい関数CoordinateTransformDataのプロパティと見ることもできる.

Version 8.0 Needs["VectorAnalysis`"]
CoordinatesToCartesian[{1, Pi/4, 2}, Cylindrical[r, \[Theta], z]]
CoordinatesFromCartesian[{1, 1, 0}, Cylindrical[r, \[Theta], z]]

パッケージからの他の関数

関数Biharmonicは次の定義で置き換えることができる.

Version 8.0 Needs["VectorAnalysis`"]
Biharmonic[r^4, Spherical[r, \[Theta], \[CurlyPhi]]]

関数ArcLengthFactorは次の定義で置き換えることができる.

Version 8.0 Needs["VectorAnalysis`"]
ArcLengthFactor[{R, t, t}, t, Cylindrical[r, \[Theta], z]]

関数DotProductは次の定義で置き換えることができる.

Version 8.0 Needs["VectorAnalysis`"]
DotProduct[{1/3, 1/2, 7}, {1/2, 1/5, 1}, Cylindrical[r, \[Theta], z]]

関数CrossProductは次の定義で置き換えることができる.

Version 8.0 Needs["VectorAnalysis`"]
CrossProduct[{1/3, 1/2, 7}, {1/2, 1/5, 1}, 
  Cylindrical[r, \[Theta], z]] // Simplify

関数ScalarTripleProductは次の定義で置き換えることができる.

Version 8.0 Needs["VectorAnalysis`"]
ScalarTripleProduct[{1, -3, 2}, {3, 7, -5}, {4, 1, 6}, 
  Cylindrical[r, \[Theta], z]] // Simplify