てれじょんのメモ帳

twitter(@television_met)に書ききれないことを投稿します。

二次元平面上への球面調和関数の図示

おはこんばんにちは(死語)、てれじょんです。

前回記事を書いてからまたしても久方ぶりのブログ更新ですが、今回も球面調和関数関連の話題です。

Twitterではネストありの並列化処理の話を記事に書きたいとか言ってましたが、よくよく調べたら内部変数をちょろっと弄るだけで実現できることがわかり、ブログにするまでもないな……となった次第です。

本題

で、さっそく本題ですが、今回は自作ライブラリ*1を使用して、球面調和関数を二次元平面で図示しました。

御託はあとにして、結果がこちらです。0\leq m\leq 10,~m\leq n \leq10の実部と虚部を図示しました。
mが負の成分については、正の成分の複素共役を取れば良いです。(今の定義では。詳しくは後述。)

コンターインターバルは0.4です。
グリッド数は256(緯度)*512(経度)で計算し、図示にはDCLを使用しました。
数がバカ多くなるので0\leq m\leq 10,~m\leq n \leq10のみに限定して描画していますが、もし需要があったらもっとデカい成分も放流する用意があります*2

定義

ここで、球面調和関数Y_n^m(\lambda,\mu)は次のように定義しています。
Y_n^m(\lambda,\mu)=P_n^m(\mu)e^{im\lambda}
P_n^m(\mu)=\sqrt{(2n+1)\frac{(n-|m|)!}{(n+|m|)!}}\frac{1}{2^n n!}(1-\mu)^{|m|/2}\frac{d^{n+|m|}}{d\mu^{n+|m|}}\left( (\mu^2-1)^n\right)
ただし\lambdaは経度、\mu=\sin\phiはサイン緯度、\phiは緯度で、P_n^m(\mu)はLegendre陪関数です。
このように定義した球面調和関数には、
\int_{-1}^1d\mu\int_0^{2\pi}d\lambda ~Y_n^m(Y_{n'}^{m'})^*=4\pi \delta_{n,n'}\delta_{m,m'}
という直交関係と
Y_n^{-m}=(Y_n^{m})^*
という偶奇性があります。物理畑の人の定義とは(往々にして)定数倍違うことに気をつけて下さい*3

で、どういうふうに計算したか?

次のような球面調和関数展開を考えてみましょう。
g(\lambda,\mu)=\sum_{n=0}^M\sum_{m=-n}^n s_n^mY_n^m(\lambda,\mu)
このスペクトルs_n^m
s_{n'}^{m'}=s_{n'}^{-m'}=1/2
s_n^m=0 (\mbox{otherwise})
と定義すれば、
g(\lambda,\mu)=\left(Y_n^m+\left\{Y_n^{m}\right\}^*\right)/2=\Re(Y_n^m)
となります。したがって、以上の様にスペクトルを定義して、逆変換すれば球面調和関数の値がグリッドスペースでわかります。
虚部についても同様に、
s_{n'}^{m'}=1/2i
s_{n'}^{-m'}=-1/2i
s_n^m=0 (\mbox{otherwise})
と定義すれば
g(\lambda,\mu)=\left(Y_n^m-\left\{Y_n^{m}\right\}^*\right)/2i=\Im(Y_n^m)
で、虚部が求まります。m=0成分はs_{n'}^{0}=1と定義して下さい。
そんな事言われなくても分かってるよ

量子力学の教科書に書いてあるような、3次元の図示はちょっと調べればたくさん出てくるんですが、二次元平面に書いた図って中々なくないですか?
少なくとも私は見つけられませんでした。量子力学エアプなんで詳しくは知りませんが、波動関数の(角度方向の?)の形がどうなってるかとかでイメージしやすいからということで3次元で書く流儀が多いんだと思います。気象学とか、球面上で関数を展開したいというモチベーションを持った人には3次元のプロットよりは2次元のプロットのほうが使いやすい気がするんですけどね。フーリエ変換の時みたいに、どういう形の関数の重ね合わせをすれば表現できるかが直感的にイメージできるので。

以上です。ブログは暇なときにぼちぼち更新したいです。てかTwitterやってる時間あったらブログ書けよ。

サムネイル用の画像です。地球流体電脳倶楽部最高!一番好きな倶楽部です!

*1:前回の記事から紆余曲折あって、卒業研究とかでも使えるまあまあ実用的な計算速度のライブラリができました。これの話もおいおい記事にしたいけど(それはお前がやるんだよ)

*2:T30ですら450枚くらいになっちゃうし、これで十分だと思いますがね……

*3:こう定義したほうが積分領域の面積と一致して気持ちいい気がするんですけどね 他の人のお気持ちがよくわかりません 追記:よく考えたらこれって確率密度の全空間積分が1になるように正規化したいから定数倍ずれるんですね 当たり前じゃん