1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

相場師のための量子力学:2週間でマスターする角運動量

Last updated at Posted at 2025-07-15

角運動量ベクトル$\boldsymbol L$は、位置ベクトル$\boldsymbol r$と運動量ベクトル$\boldsymbol p$の外積として定義される。

\boldsymbol L=\boldsymbol r \times \boldsymbol p

ここで、位置ベクトル$\boldsymbol r=(x_1,x_2,x_3)$、運動量ベクトル$\boldsymbol p=(p_1,p_2.p_3)$ 。角運動量がクロス積(外積)で$\boldsymbol L=\boldsymbol r \times \boldsymbol p$と書けるのは、クロス積という数学の道具が、回転運動の物理的な性質を完璧に表現しているからだ。

まずこのことを理解しよう。

運動量は$\boldsymbol p=m \boldsymbol v= m v \boldsymbol o=mv(o_1,o_2,o_3)$とする。ここで$v$はスカラーであり、$\boldsymbol o=(o_1,o_2,o_3)$は運動の方向を表すベクトルである。そうすると

L'=\boldsymbol r \times \boldsymbol o = 
\begin{pmatrix}
e_1 & e_2 & e_3\\
x_1 & x_2  & x_3\\
o_1 & o_2  & o_3
\end{pmatrix}

は単なる外積になり、これは2つのベクトルがつくる平面に直交するベクトルとその長さになる。このベクトルが示すのは、その瞬間の回転運動の軸の向きであり,長さ$L'$は2つのベクトルが作る平行四辺形の面積と等しく、

|\boldsymbol L'|=|\boldsymbol r||\boldsymbol o|\sin \theta=\sqrt{L_1'^2+L_2'^2+L_3'^2}

となる。$\boldsymbol L'$が示すのはその瞬間の回転運動の軸の向きで、質点の位置は原点からのベクトルで示され、その点の動きの方向は$\boldsymbol o$であるので、回転運動を引き起こす。単位時間の移動距離は$|\boldsymbol o|=1$である。回転の方向は右ねじの法則で考えればよい。

よって、角運動量$L$は

L=mvL'

で与えられる。これは運動している質点が位置$\boldsymbol r$と運動量$\boldsymbol p$の瞬間の角運動量であり、この角運動量は質点にトルクがかからない限り保存される。$L$はベクトルであり角運動量の向きを表し、その長さはその大きさを表し、それは$\boldsymbol r$と$\boldsymbol o$が作る平行四辺形の面積に$mv$を掛けたものに等しい。質点は、回転運動をしていれば角運動量をもつし、原点からずれた直線上を運動している場合に等速直線運動をしていても角運動量をもつ場合がある。

質点は等速直線運動をしていようが、。

量子化の必要性

この古典的な角運動量の描像は、惑星の公転のようなマクロな世界では完璧に成り立つ。しかし、原子内の電子のようなミクロの世界では、深刻な困難に直面する。

実験が明らかにしたのは、原子内の電子がとる角運動量は、「とびとび」の値しかとれない、ということだ。この「量子化」と呼ばれる現象を説明するため、量子力学は物理量の概念を根底から覆した。

それは、角運動量のような物理量は、もはや系の状態を表す単なる「数値」ではなく、その系の状態そのものである波動関数 $\psi$ に作用して情報を引き出すための「問いかけ」、すなわち演算子である、という考え方だ。そして、物理量がとびとびの値しかとれない「量子化」という現象は、この演算子という考え方から、数学的な必然として導き出されたのだ。

\hat{L}\psi = l\psi

ここで$l$はとびとびの値しか取れない固有値だ。角運動量がとびとびの値しかとれないという「量子化」の性質は、我々が外部から付け加えた外生的なルールではなく、それは、物理的に意味のある解を求める上で、内生的に現れざるを得ない、数学的な必然なのだ。

角運動量演算子の構築

古典的な角運動量 $\boldsymbol L = \boldsymbol r \times \boldsymbol p$ を量子力学に翻訳するには,$\boldsymbol r \to \hat{\boldsymbol r}$,$\boldsymbol p \to \hat{\boldsymbol p}$ と置き換える(正準量子化)。

\hat{\boldsymbol L}=\hat{\boldsymbol r} \times \hat{\boldsymbol p}

これを成分表示すると

\begin{align}
\hat{\boldsymbol L}&=
\begin{pmatrix}
e_1 & e_2 & e_3\\
\hat x_1 & \hat x_2  & \hat x_3\\
\hat p_1 & \hat p_2  & \hat p_3
\end{pmatrix}\\
&= (\hat x_2\hat p_3-\hat x_3\hat p_2)e_1+(\hat x_3\hat p_1-\hat x_1\hat p_3)e_2+(\hat x_1\hat p_2-\hat x_2\hat p_1)e_3\\
&= \hat L_1e_1+\hat L_2e_2+\hat L_3e_3
\end{align}
\begin{cases}
\hat{L}_1 = \hat{x}_2\hat{p}_3 - \hat{x}_3\hat{p}_2 \\
\hat{L}_2 = \hat{x}_3\hat{p}_1 - \hat{x}_1\hat{p}_3 \\
\hat{L}_3 = \hat{x}_1\hat{p}_2 - \hat{x}_2\hat{p}_1
\end{cases}

位置・運動量演算子が従う交換関係

[\hat x_i,\hat p_j] = i\hbar\,\delta_{ij}

から計算すると

[\hat L_i,\hat L_j] = i\hbar\,\varepsilon_{ijk}\,\hat L_k,

たとえば

[\hat L_1,\hat L_2] = i\hbar\,\hat L_3.

ここで行列の交換関係を記述するために

[A,B]=AB-BA

を導入し、この関係がゼロであれば$A$と$B$は交換可能であり、そうでなければ交換不可となる。よって

[A-B,C-D]=(A-B)(C-D)-(C-D)(A-B)
=[A,C]-[A,D]-[B,C]+[B,D]

となる。これを$[\hat L_1,\hat L_2]$に当てはめると

[\hat x_2 \hat p_3-\hat x_3 \hat p_2,\hat x_3\hat p_1-\hat x_1 \hat p_3]

となり、つぎの4項に分解される。

+[\hat x_2 \hat p_3,\hat x_3 \hat p_1]
-[\hat x_2 \hat p_3,\hat x_1 \hat p_3]
-[\hat x_3 \hat p_2,\hat x_3 \hat p_1]
+[\hat x_3 \hat p_2,\hat x_1 \hat p_3]

交換関係のない演算子は自由に順番を入れ替えて良いのだが、交換不可な演算子は交換前と交換後の状態について注意を払う必要がある。

+[\hat x_2 \hat p_3,\hat x_3 \hat p_1]=
\hat x_2 \hat p_3\hat x_3 \hat p_1-\hat x_3 \hat p_1\hat x_2 \hat p_3
=\hat x_2 (\hat x_3\hat p_3-i\hbar)\hat p_1-\hat x_2 \hat p_1\hat x_3 \hat p_3
=\hat x_2 \hat x_3\hat p_3\hat p_1-\hat x_2i\hbar\hat p_1-\hat x_2 \hat p_1\hat x_3 \hat p_3
=-i\hbar\hat x_2\hat p_1
-[\hat x_2 \hat p_3,\hat x_1 \hat p_3]
=-(\hat x_2 \hat p_3\hat x_1 \hat p_3-\hat x_1 \hat p_3\hat x_2 \hat p_3)
=-\hat x_2 (\hat p_3\hat x_1-\hat x_1\hat p_3)\hat p_3
=-\hat x_2 [\hat p_3,\hat x_1]\hat p_3=0
-[\hat x_3 \hat p_2,\hat x_3 \hat p_1]
=-(\hat x_3 \hat p_2\hat x_3 \hat p_1 -\hat x_3 \hat p_1\hat x_3 \hat p_2)
=-\hat x_3(\hat p_2\hat x_3 \hat p_1 -\hat p_2\hat x_3 \hat p_3)
=-\hat x_3[\hat p_2,\hat x_3] \hat p_1 =0
+[\hat x_3 \hat p_2,\hat x_1 \hat p_3]
=\hat x_3 \hat p_2\hat x_1 \hat p_3-\hat x_1( \hat x_3\hat p_3-i\hbar )\hat p_2
=\hat x_3 \hat p_2\hat x_1 \hat p_3-\hat x_1 \hat x_3\hat p_3\hat p_2+i\hbar\hat x_1 \hat p_2
=i\hbar\hat x_1 \hat p_2

よって、

[\hat L_1, \hat L_2]=-i\hbar\hat x_2\hat p_1+i\hbar\hat x_1 \hat p_2
=i\hbar[\hat x_1 \hat p_2-\hat x_2\hat p_1]=i\hbar\hat L_3

こうして、古典力学の定義から出発して、量子力学における角運動量演算子 $\hat{L}$ を得た。

対称性と回転演算子、そして保存

角運動量の「量子化」は、必然なのだが、その鍵を握るのが対称性だ。そのために、まず「回転」という物理的な操作を、量子力学の言葉で表現する必要がある。物理法則は、観測者がどのような向きで見ていても変わらないはずだ。この「回転対称性」が、実は「角運動量保存則」と固く結びついている。そして、この関係を数学的に解き明かすのが、まさしく角運動量演算子 $\hat{\boldsymbol L}$ の役割なのだ。古典力学のときのようにほんの少し動くことが角運動量につながればいいわけだ。量子力学では、系の状態は波動関数 $\hat{\psi}$ によって記述されるため、「系を回転させる」とは、すなわち「状態 $\hat{\psi}$ を回転させる」ことに他ならない。この操作を行うのが回転演算子 $\hat{R}$ である。

まず$\vert \boldsymbol r \rangle$をほんの僅か動かし$\vert \boldsymbol r-\boldsymbol \epsilon \times \boldsymbol r \rangle$とする演算子$\hat{W}$を

\hat{W}(\boldsymbol \epsilon)\vert \boldsymbol r \rangle=\vert \boldsymbol r-\boldsymbol \epsilon \times \boldsymbol r \rangle

と定義しよう。つぎに任意の関数を微小ベクトル$\delta$に関してテイラー展開してみよう。

f(\boldsymbol r+\boldsymbol \delta)=f(\boldsymbol r)+\boldsymbol \delta \cdot \nabla f(\boldsymbol r)

ここで$\delta=-\boldsymbol \epsilon \times \boldsymbol r$と対応させ,ベクトル3重積の性質を使うと
$\boldsymbol \epsilon \times \boldsymbol r \cdot \nabla=\boldsymbol \epsilon \cdot ( \boldsymbol r \times \nabla)$とすることができる。

\hat{W}(\boldsymbol \epsilon)\vert r \rangle)=[1-(\boldsymbol \epsilon \times \boldsymbol r )\cdot \nabla]\vert r \rangle

もし$f$を波動関数とすれば、$\nabla$は波数$k$と関係があり、位置表示の運動量演算子が$\hat{p}=-i\hbar \nabla$であると解釈できる。すると、

\hat{W}(\boldsymbol \epsilon)\vert r \rangle)=[1-\frac{i}{\hbar}\boldsymbol \epsilon \cdot( \boldsymbol r \times \nabla)]\vert r \rangle

指数関数のテイラー展開から

\hat{W}(\boldsymbol \epsilon)=1-\frac{i}{h}\boldsymbol \epsilon \cdot \hat{\boldsymbol L}=e^{ -\frac{i}{h}\boldsymbol \epsilon \cdot \hat{\boldsymbol L}}

$\hat{W}$は角運動量演算子による回転だと理解できるので、無限小変化を無限小回転としてそれを多数(N回)繰り返せば$\theta=N\epsilon$となり有限回転となるので、$\hat{W}$を回転演算子$\hat{R}$と書き換えて、

\hat{R}(\boldsymbol \theta)=1-\frac{i}{h}\boldsymbol \theta \cdot \hat{\boldsymbol L}=e^{ -\frac{i}{h}\boldsymbol \theta \cdot \hat{\boldsymbol L}}

となる。つまり、角運動量 $\hat{L}$ こそが、回転 $\hat{R}$ を生み出す生成子(ジェネレーター)なのだ。これは、「その粒子がどのような状態にあるか」という情報全体を回転させるというイメージだ。よって、量子化された角運動量は対称性により保存させる。そして、量子力学では交換関係により角運動量を定義しなおすことになる。

古典力学では運動している質点を微小時間放置すれば、その運動が継続して、原点からの質点と運動の方向が作る面に垂直方向に回転したように、ここではコンピュータシミュレーションのように微小変化量を与えて、回転運動を作ったのである。

なお電子の「全角運動量」は
$\hat{\boldsymbol J}=\hat{\boldsymbol L}+\hat{\boldsymbol S}$
としてスピン $\hat{\boldsymbol S}$ を含む。$\hat{\boldsymbol S}$ は $\boldsymbol r\times\boldsymbol p$ からは導けない内部自由度なので,区別しておく。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D   # noqa: F401 (implicit 3‑D backend)

# ------------------------- Classical part ----------------------------------
r = np.array([1.0, 0.3, 0.2])        # position  (arbitrary units)
p = np.array([0.2, 0.9, 0.1])        # momentum
L = np.cross(r, p)                   # angular‑momentum vector

fig = plt.figure(figsize=(5, 5))
ax = fig.add_subplot(111, projection='3d')
origin = np.zeros(3)

for vec, color, label in [(r, 'r', '$\\mathbf{r}$'),
                          (p, 'g', '$\\mathbf{p}$'),
                          (L, 'b', '$\\mathbf{L}=\\mathbf{r}\\times\\mathbf{p}$')]:
    ax.quiver(*origin, *vec, color=color, linewidth=2, label=label)

ax.set_xlim(0, 1); ax.set_ylim(0, 1); ax.set_zlim(0, 1)
ax.set_xlabel('x'); ax.set_ylabel('y'); ax.set_zlabel('z')
ax.set_title('Classical $\\mathbf{r}$, $\\mathbf{p}$, $\\mathbf{L}$')
ax.legend()
plt.tight_layout(); plt.show()

# ------------------------- Quantum part ------------------------------------
from numpy import sqrt

ħ = 1.0  # set ℏ = 1 for clarity
a = ħ / sqrt(2)

# l = 1 irreducible representation (3×3 matrices)
Lx = a * np.array([[0, 1, 0],
                   [1, 0, 1],
                   [0, 1, 0]], dtype=complex)
Ly = a * np.array([[0, -1j, 0],
                   [1j,  0, -1j],
                   [0,  1j, 0]], dtype=complex)
Lz = ħ * np.diag([1, 0, -1])

# Commutator check [Lx, Ly] = i ħ Lz
comm = Lx @ Ly - Ly @ Lx
print("‖[Lx, Ly] − iħ Lz‖ =", np.linalg.norm(comm - 1j * ħ * Lz))

# Eigenvalues of L² = l(l+1)ħ² should all be 2 ħ² for l=1
L2 = Lx @ Lx + Ly @ Ly + Lz @ Lz
print("Eigenvalues of L²:", np.linalg.eigvals(L2).real)

image.png

Python3ではじめるシステムトレード【第2版】環境構築と売買戦略

「画像をクリックしていただくとpanrollingのホームページから書籍を購入していただけます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?