量子力学Ⅰ/球面調和関数/メモ

(2103d) 更新


形状

位相を色分けする

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

実数版

LANG:mathematica
With[{
    lmax=5,
    F := Function[{l,m,t,p}, 
           If[ 
             m==0,
             SphericalHarmonicY[l, 0, t, p],
             SphericalHarmonicY[l, Abs[m], t, p]/Sqrt[2] + 
               If[m<0,-1,1] (-1)^m SphericalHarmonicY[l, -Abs[m], t, p]/Sqrt[2]
           ] If[m<0,-I,1]]
  },
  Table[
    If[Abs[m]<=l,
      SphericalPlot3D[2 Abs[F[l,m,t,p]], {t, 0, Pi}, {p, 0, 2 Pi}, 
        PlotRange -> {{-1.2, 1.2}, {-1.2, 1.2}, {-1.8, 1.8}},
        BoxRatios->{1,1,1.5}, PlotPoints->30,
        Axes->False, Boxed->False, Mesh->False,
        ColorFunctionScaling -> False, 
        ColorFunction -> Function[{x,y,z,t,p,r},
          Blend[{Blue,Yellow},
            (Cos[Arg[F[l, m, t, p]]]+1)/2]]
      ] // Evaluate,
      Null
    ],
    {l, 0, lmax},
    {m, -lmax, lmax}
  ]
] // GraphicsGrid[#, AspectRatio->1.5] &

符号の反転する理由

LANG:mathematica
Plot[Sin[x], {x, -3 Pi, 3 Pi}, PlotLegends -> "Expressions", PlotPoints->500,ColorFunctionScaling->False, ColorFunction->Function[{x,y},If[y>0,Blue//Darker,Red//Lighter]],ImageSize->Large,AspectRatio->0.3,PlotStyle->Thick,Filling->Axis]
Plot[Abs[Sin[x]], {x, -3 Pi, 3 Pi}, PlotLegends -> "Expressions", PlotPoints->500,ColorFunctionScaling->False, ColorFunction->Function[{x,y},If[Sin[x]>0,Blue//Darker,Red//Lighter]],ImageSize->Large,AspectRatio->0.15,PlotStyle->Thick,Filling->Axis]

解答:$m$ に関する漸化式

(1)

漸化式にそれぞれ m=l,\,m=-l を代入すると、

  \hat l_+\,Y_l{}^{l}(\theta,\phi)=\hbar&\sqrt{(l-l)(l+l+1)}\,Y_l{}^{l+1}(\theta,\phi)=0\\[-5mm] &\hspace{3mm}\underbrace{\hspace{11mm}}_{=\,0}

  \hat l_-\,Y_l{}^{-l}(\theta,\phi)=\hbar&\sqrt{(l-l)(l+l+1)}\,Y_l{}^{-l-1}(\theta,\phi)=0\\[-5mm] &\hspace{3mm}\underbrace{\hspace{11mm}}_{=\,0}

となって、 Y_l{}^{l+1}(\theta,\phi) Y_l{}^{-l-1}(\theta,\phi) が得られることはない。

(2)

  &\hat l_-\hat l_+Y_l{}^{m}(\theta,\phi)=\hat l_-\hbar\sqrt{(l-m)(l+m+1)}Y_l{}^{m+1} =\hbar^2(l+m+1)(l-m)Y_l{}^m\\ &\hat l_+\hat l_-Y_l{}^{m}(\theta,\phi)=\hat l_+\hbar\sqrt{(l+m)(l-m+1)}Y_l{}^{m-1} =\hbar^2(l+m)(l-m+1)Y_l{}^{m}\\

(3)

\hat l_x\hat l_y\ne \hat l_y\hat l_x に注意しつつ、

  &\frac{1}{2}\left( \hat l_+\hat l_-+\hat l_-\hat l_+\right)\\ &=\frac{1}{2}\left\{ (\hat l_x+i\hat l_y)(\hat l_x-i\hat l_y)+(\hat l_x-i\hat l_y)(\hat l_x+i\hat l_y)\right\}\\ &=\frac{1}{2}\left( \hat l_x^2+\cancel{i\hat l_y\hat l_x}-\cancel{i\hat l_x\hat l_y}+\hat l_y^2+ \hat l_x^2-\cancel{i\hat l_y\hat l_x}+\cancel{i\hat l_x\hat l_y}+\hat l_y^2\right)\\ &=\hat l_x^2+\hat l_y^2

(4)

  \big(\hat l_x^2+\hat l_y^2\big)Y_l{}^m &=\frac{\hbar^2}{2}\big\{(l+m+1)(l-m)+(l+m)(l-m+1)\big\}Y_l{}^m\\ &=\hbar^2(l^2-m^2+l)Y_l{}^m\\

解説

LANG:igor
function draw(l)
 variable l

	wave wave0, wave1
	make/O/N=1001 wave0,wave1
	setscale/p x,-sqrt(l*(l+1)),sqrt(l*(l+1))/500,wave0,wave1
	wave0=sqrt(l*(l+1)-x^2+1e-12)
	wave1=-sqrt(l*(l+1)-x^2+1e-12)

	make/O/N=(2*l+1) wave2
	setscale/p x,-l,1,wave2
	wave2=sqrt(l*(l+1)-x^2)
	
	variable i
	SetDrawLayer /K UserBack
	for(i=0;i<2*l+1;i+=1)
		SetDrawLayer UserBack
		SetDrawEnv xcoord= bottom,ycoord= left;
		SetDrawEnv linethick= 1.50
		DrawLine 0,0,wave2[i],pnt2x(wave2,i)

		SetDrawLayer UserBack
		SetDrawEnv xcoord= bottom,ycoord= left;
		SetDrawEnv linethick= 0.50
		DrawLine 0,pnt2x(wave2,i),wave2[i],pnt2x(wave2,i)
	endfor
end

$\Theta(\theta)$ の分布

縦軸に \theta=0\sim \pi を、右方向に |\Theta_l{}^m(\theta)| を取りプロットした:

theta2.svg

  • 5つのグラフは左から l-m=0,1,2,3,4 に相当する。
    • すなわち、左から右に \hat l_x^2+\hat l_y^2 の固有値が増えていく。
    • \Theta(\theta) の振動数はそのまま \hat l_x^2+\hat l_y^2 に対応するため、 l-m が増えるに従って振動数が大きくなる。
  • 1つのグラフ内では、 m=0,1,2,3,4 のグラフを重ねてプロットしている。
    • m が増えると形状は中央 \theta=\phi/2 に寄っていく。

次に、同じグラフを動径プロットにした:

theta1.svg

これらのグラフを z 軸周りに回転させたものが球面調和関数になる。

spherical-harmonics-y1.png

LANG:mathematica
GraphicsRow[
Table[ParametricPlot[
  Table[{Abs[SphericalHarmonicY[m + n, n, t, 0] 2], t}, {n, 0, 4}] //
    Evaluate, {t, 0, Pi}, PlotRange -> {{0, 1.5}, {0, Pi}}, 
  ImageSize -> 180], {m, 0, 4}]]
GraphicsRow[Table[
  PolarPlot[
   Table[Abs[SphericalHarmonicY[m + n, n, t - Pi/2, 0] 2], {n, 0, 
      4}] // Evaluate, {t, -Pi/2, Pi - Pi/2}, 
   PlotRange -> {{0, 1}, {-1.5, 1.5}}, ImageSize -> 180], {m, 0, 
   4}]]

添付ファイル: filetheta1.svg 966件 [詳細] filetheta2.svg 1045件 [詳細]

Counter: 4990 (from 2010/06/03), today: 2, yesterday: 0