2次元極座標のラプラシアン¶
ユークリッド空間のラプラシアンが表す意味は座標によらない一方、 その具体的な式は座標によって変わります。ここでは計量から 極座標表示を導出し、多変数の連鎖律を使って検算します。
座標と計量¶
線素は次のように表されます。
$$ds^2=dr^2+r^2d\theta^2$$
座標写像を微分して接ベクトルを求め、それらの内積から計量を構成します。 逆計量は、この誘導計量の行列から計算します。
declare symbol r, θ : MathValue
def x : Vector MathValue := [| r, θ |]
def position : Vector MathValue := [| r * cos θ, r * sin θ |]
def e_i_j : Matrix MathValue := ∂/∂ position_j x~i
def g_i_j : Matrix MathValue :=
generateTensor (\[a, b] -> V.* e_a_# e_b_#) [2, 2]
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} +\frac1r\frac{\partial f}{\partial r} +\frac1{r^2}\frac{\partial^2f}{\partial\theta^2}. $$
laplacian
連鎖律による検算¶
最後に、2変数の直交座標関数を新しい座標の関数とみなします。 上に示した座標表示を展開すると、すべての混合偏微分が打ち消し合い、 直交座標のラプラシアンだけが残るはずです。
def X : MathValue := r * cos θ
def Y : MathValue := r * sin θ
def u : MathValue := function (X, Y)
def uR : MathValue := ∂/∂ u r
def uRR : MathValue := ∂/∂ (∂/∂ u r) r
def uΘΘ : MathValue := ∂/∂ (∂/∂ u θ) θ
uRR + uR / r + uΘΘ / r^2
展開結果は$u_{XX}+u_{YY}$となります。これにより、角度方向の 尺度の変化が$r^{-1}u_r$の項によって補正されることが確認できます。