2021年7月3日土曜日

球面調和関数(1)

tsujimotterさんが日曜化学:量子力学の基本と球面調和関数の可視化というテーマで python のmatplotlib を使ったコードを書いていたところ,東北大学の堀田さんに褒められていた。

なるほど,これをJuliaでやってみようかと思ったのだが,Plots の三次元散布図のカラーオプションの制御方法がわからなくてとりあえず挫折した。

Mathematicaだと簡単に実例が見つかるんだわこれが。

With[{lmax = 2}, Table[If[Abs[m] <= l,
SphericalPlot3D[
Abs[2 SphericalHarmonicY[l, l-m, t, p]]^2, {t, 0, Pi}, {p, 0,
2 Pi}, PlotRange -> {{-0.5, 0.5}, {-0.5, 0.5}, {-0.5, 0.5}},
BoxRatios -> {1, 1, 1}, PlotPoints -> 30, Axes -> False,
Boxed -> False, Mesh -> False, ColorFunctionScaling -> False,
ColorFunction ->
Function[{x, y, z, t, p, r}, Blend[{Blue, Orange}, (Cos[Arg[SphericalHarmonicY[l, l - m, t, p]]] + 1)/
2]]], Null], {l, 0, lmax}, {m, 0, lmax}]] //
GraphicsGrid[#, AspectRatio -> 1] &

図 球面調和関数の例 by Mathematica(筑波大学 武内修さんより引用)

 

0 件のコメント: