二次元平面上への球面調和関数の図示
おはこんばんにちは(死語)、てれじょんです。
前回記事を書いてからまたしても久方ぶりのブログ更新ですが、今回も球面調和関数関連の話題です。
Twitterではネストありの並列化処理の話を記事に書きたいとか言ってましたが、よくよく調べたら内部変数をちょろっと弄るだけで実現できることがわかり、ブログにするまでもないな……となった次第です。
本題
で、さっそく本題ですが、今回は自作ライブラリ*1を使用して、球面調和関数を二次元平面で図示しました。
御託はあとにして、結果がこちらです。の実部と虚部を図示しました。
が負の成分については、正の成分の複素共役を取れば良いです。(今の定義では。詳しくは後述。)
コンターインターバルは0.4です。
グリッド数は256(緯度)*512(経度)で計算し、図示にはDCLを使用しました。
数がバカ多くなるのでのみに限定して描画していますが、もし需要があったらもっとデカい成分も放流する用意があります*2。
定義
ここで、球面調和関数は次のように定義しています。
ただしは経度、はサイン緯度、は緯度で、はLegendre陪関数です。
このように定義した球面調和関数には、
という直交関係と
という偶奇性があります。物理畑の人の定義とは(往々にして)定数倍違うことに気をつけて下さい*3。
で、どういうふうに計算したか?
次のような球面調和関数展開を考えてみましょう。
このスペクトルを
と定義すれば、
となります。したがって、以上の様にスペクトルを定義して、逆変換すれば球面調和関数の値がグリッドスペースでわかります。
虚部についても同様に、
と定義すれば
で、虚部が求まります。成分はと定義して下さい。
そんな事言われなくても分かってるよ
量子力学の教科書に書いてあるような、3次元の図示はちょっと調べればたくさん出てくるんですが、二次元平面に書いた図って中々なくないですか?
少なくとも私は見つけられませんでした。量子力学エアプなんで詳しくは知りませんが、波動関数の(角度方向の?)の形がどうなってるかとかでイメージしやすいからということで3次元で書く流儀が多いんだと思います。気象学とか、球面上で関数を展開したいというモチベーションを持った人には3次元のプロットよりは2次元のプロットのほうが使いやすい気がするんですけどね。フーリエ変換の時みたいに、どういう形の関数の重ね合わせをすれば表現できるかが直感的にイメージできるので。
以上です。ブログは暇なときにぼちぼち更新したいです。てかTwitterやってる時間あったらブログ書けよ。