球面調和関数 (簡単な説明)

Last modified: Sun Nov 30 06:29:29 2003
home -- PC関連 -- Mathematica -- 球面調和関数 -- 簡単な説明

操作

細かいグリグリで色々できます。
ドラッグ ................. 回転
shift + 水平ドラッグ ..... 1点を中心に回転
shift + 垂直ドラッグ ..... 拡大、縮小
ctrl + ドラッグ .......... フォーカス位置変更
右ボタン + 垂直ドラッグ .. 部品除去
s ........................ ステレオ図
拡大したものは重くなります。極度の拡大に注意です。 調子コイて速い動作を行うと固まります。

作成手順

とりあえず、(x,y,z)の角度依存性を定めておきます。
x[theta_,phi_] := Sin[theta]Cos[phi]
y[theta_,phi_] := Sin[theta]Sin[phi]
z[theta_,phi_] := Cos[theta]
簡単のために球面調和関数を定義しなおしておきます。
sp00[theta_, phi_] := SphericalHarmonicY[0, 0, theta, phi]
以下のようにすれば図が見られます。
gr00 = First[
      ParametricPlot3D[
         {Abs[sp00[theta, phi]] x[theta,phi],
          Abs[sp00[theta, phi]] y[theta,phi],
          Abs[sp00[theta, phi]] z[theta,phi]},
        {theta, 0, Pi}, {phi, 0, 2 Pi}]
      ];
軸もあった方が参考になるので、以下のようにします。文字もつけます。
xline = Graphics3D[Line[{{-1, 0, 0}, {1, 0, 0}}]];
yline = Graphics3D[Line[{{0, -1, 0}, {0, 1, 0}}]];
zline = Graphics3D[Line[{{0, 0, -1}, {0, 0, 1}}]];
xnote = Graphics3D[Text[StyleForm["x",FontSize -> 20, FontWeight -> "Bold"],{1,0,0}]];
ynote = Graphics3D[Text[StyleForm["y",FontSize -> 20, FontWeight -> "Bold"],{0,1,0}]];
znote = Graphics3D[Text[StyleForm["z",FontSize -> 20, FontWeight -> "Bold"],{0,0,1}]]
そして、
Show[
  Graphics3D[gr00,
LightSources -> {{{1, 1, 1}, GrayLevel[1]},{{-1, -1,-1}, RGBColor[1,1,0]}}],
xline, yline, zline, xnote, ynote, znote, Boxed -> False
  ]
とすると、軸も一緒に表示できます。 物体の光の当たり方ですが、光源がひとつだとちょっと淋しいので、 色違いのふたつの光源を逆方向に設置しました。 これで見てくれを確かめた後に、 HTMLに取り込む作業をします。outputの番号を確かめ、
InputForm[%番号]
とすると、長い文字列が出てくるので、Graphics3D以下をテキストで保存します。 例えばファイル名を"test.m"などとすると、
<HTML>
<APPLET ARCHIVE="live.jar" CODE="Live.class" WIDTH=300 HEIGHT=300 ALIGN=LEFT>
<PARAM NAME=BGCOLOR VALUE=#FFFFFF>
<PARAM NAME=MAGNIFICATION VALUE=2>
<PARAM NAME=INPUT_FILE VALUE="test.m">
</APPLET>
</HTML>
というHTMLを、test.mと同じディレクトリに作ります。そこに、 本家のサイトから入手できる"live.jar"も入れておきます。 これで、そのHTMLを開いたらグリグリができるはずです。

具体的な表式

極座標

polar coordinate

球面調和関数

spherical harmonic

書き下したもの

explicit expressions

軌道関数との関係

orbitals

伊藤 弘毅 (Hirotake Itoh)
hiroitoh@issp.u-tokyo.ac.jp

Valid HTML 4.01!