3次元極座標のLaplacian(第1版)
3次元極座標のLaplacian(第1版)
- date: 2020/10/18
- author: quantale
1. 概要
3次元曲座標のLaplacian表示についてMatlabを用いて公式の証明を行う。
2. 検証環境
3. 3次元極座標のLaplacian表示公式
変数変換
に対して
が成立する。
4. 証明の指針
本公式の証明には
- 方法1: 座標変換の公式から直接計算する。
- 方法2: 微分形式により計算する。
がある。
「方法1」は前提知識がほとんどないが、証明が非常に冗長になる。
「方法2」は証明が短くて済み、さらに一般形まで示すことができるが、「微分形式」の前提知識が必要となる。
本稿では、初等的な方法により、Matlabを用いた計算を行う
- 方法3: 「方法1」をMatlabにより計算。
を採用する。
5. 証明
滑らかな上の関数fについて
を示す。
ここで左辺をLHS(Left-Hand-Side), 右辺をRHS(Right-Hand-Side)と表し、LHS=RHSを以下示す。
連鎖律(Chain-Rule)より
行列で表すと
ここで
と置き,
と表すと
close all; clear; clc; % 初期化
syms x y z; % シンボリック変数x,y,zを定義
syms r theta phi real; % シンボリック変数r,theta,phiを実数型として定義
syms f(r,theta,phi); % シンボリック変数r,theta,phiの関数としてfを定義
x = r*sin(theta)*cos(phi); % xを極座標系で表す
y = r*sin(theta)*sin(phi); % yを極座標系で表す
z = r*cos(theta); % zを極座標系で表す
J = jacobian([x;y;z], [r theta phi]); % 上記Jacobian行列
L = diag([1 r r*sin(theta)]); % 上記対角行列L
U = inv(L) * J.'; %#ok<MINV> % 上記行列U
このときUは直交行列, すなわち (ここで I は恒等変換) を満たす。実際,
simplify(U.' * U)
simplify(U * U.')
となる。したがって, 。これを用いると
のxyz-座標系での第k成分を と表すと
となる。ここで f にを代入することで-座標系での偏微分の線形結合によりを表現できる。同様にも表現できる。
Nab_f = U.' * inv(L) * gradient(f); %#ok<MINV>
Nab_f = Nab_f(r,theta,phi);
D2f = sym(zeros(size(Nab_f)));
Df2(1) = subs(Nab_f(1),f,Nab_f(1));
Df2(2) = subs(Nab_f(2),f,Nab_f(2));
Df2(3) = subs(Nab_f(3),f,Nab_f(3));
左辺(LHS)として の和としてLaplacianを計算する。
LHS = sum(Df2);
右辺(RHS)として各項とその和を求める。
term1 = diff(r^2*diff(f,r),r)/r^2;
term2 = diff(sin(theta)*diff(f,theta),theta)/(r^2*sin(theta));
term3 = diff(f,phi,2)/(r*sin(theta))^2;
RHS = term1 + term2 + term3;
LHS-RHSを計算して
simplify(LHS-RHS)
0
によりLHS=RHSが示された。▮
Reference