球面調和関数 (簡単な説明)
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を開いたらグリグリができるはずです。
具体的な表式
極座標
球面調和関数
書き下したもの
軌道関数との関係
伊藤 弘毅 (Hirotake Itoh)
hiroitoh@issp.u-tokyo.ac.jp