球座標のラプラシアン¶
ユークリッド空間のラプラシアンが表す意味は座標によらない一方、 その具体的な式は座標によって変わります。ここでは計量から 球座標表示を導出し、多変数の連鎖律を使って検算します。
座標と計量¶
線素は次のように表されます。
$$ds^2=dr^2+r^2d\theta^2+r^2\sin^2\theta\,d\phi^2.$$
座標写像を微分して接ベクトルを求め、それらの内積から計量を構成します。 逆計量は、この誘導計量の行列から計算します。
declare symbol r, θ, φ : MathValue
def x : Vector MathValue := [| r, θ, φ |]
def position : Vector MathValue :=
[| r * sin θ * cos φ
, r * sin θ * sin φ
, r * cos θ
|]
def e_i_j : Matrix MathValue := ∂/∂ position_j x~i
def g_i_j : Matrix MathValue :=
generateTensor (\[a, b] -> V.* e_a_# e_b_#) [3, 3]
def g~i~j : Matrix MathValue := M.inverse g_#_#
def f : MathValue := function (r, θ, φ)
g_#_#
共変微分による導出¶
スカラー場に対するラプラス–ベルトラミ作用素は次のように書けます。
$$ \Delta f=g^{ij}\partial_i\partial_jf -g^{ij}\Gamma^k{}_{ij}\partial_kf. $$
Egisonは、この式に現れる重複したテンソル添字をそのまま縮約します。
def Γ_i_j_k : Tensor MathValue :=
(1 / 2) *
(∂/∂ g_i_k x~j + ∂/∂ g_i_j x~k - ∂/∂ g_j_k x~i)
def Γ~i_j_k : Tensor MathValue := withSymbols [m]
g~i~m . Γ_m_j_k
def laplacian : MathValue := withSymbols [i, j, k]
g~i~j . ∂/∂ (∂/∂ f x~j) x~i
- g~i~j . Γ~k_i_j . ∂/∂ f x~k
計算結果¶
$$ \Delta f=\frac{\partial^2f}{\partial r^2} +\frac2r\frac{\partial f}{\partial r} +\frac1{r^2}\frac{\partial^2f}{\partial\theta^2} +\frac{\cos\theta}{r^2\sin\theta}\frac{\partial f}{\partial\theta} +\frac1{r^2\sin^2\theta}\frac{\partial^2f}{\partial\phi^2}. $$
laplacian
連鎖律による検算¶
最後に、3変数の直交座標関数を新しい座標の関数とみなします。 上に示した座標表示を展開すると、すべての混合偏微分が打ち消し合い、 直交座標のラプラシアンだけが残るはずです。
def X : MathValue := r * sin θ * cos φ
def Y : MathValue := r * sin θ * sin φ
def Z : MathValue := r * cos θ
def u : MathValue := function (X, Y, Z)
def uR : MathValue := ∂/∂ u r
def uRR : MathValue := ∂/∂ (∂/∂ u r) r
def uΘ : MathValue := ∂/∂ u θ
def uΘΘ : MathValue := ∂/∂ (∂/∂ u θ) θ
def uΦΦ : MathValue := ∂/∂ (∂/∂ u φ) φ
uRR + 2 * uR / r + uΘΘ / r^2
+ cos θ * uΘ / (r^2 * sin θ)
+ uΦΦ / (r^2 * (sin θ)^2)
展開結果は$u_{XX}+u_{YY}+u_{ZZ}$となります。1階微分を含む各項は、 動径方向と角度方向の尺度因子の変化によって生じる補正に ちょうど対応しています。