last_modified: 2026-01-07
生成AIによる自動生成記事に関する免責事項: 本記事は、物理学の標準的な教科書および計算化学の理論に基づき、大規模言語モデル(生成AI)によって作成された解説記事です。数式の導出や歴史的経緯の記述においては、学術的な正確性を期しておりますが、学習や研究への応用にあたっては、必ず標準的な教科書を参照してください。
1. 序論:量子化学の出発点
前回の記事では、調和振動子と剛体回転子という理想的なモデルについて扱いました。今回は、いよいよ実際の「原子」へと踏み込みます。
すべての化学の基礎となる水素原子。そのシュレーディンガー方程式は、量子力学の中で特別な地位を占めています。なぜなら、それが「解ける」最後の砦だからです。本記事では、水素原子の理論的な美しさと、そこから多電子原子(計算化学の世界)へと進む際に現れる「越えられない壁」と「工夫」について解説します。
2. 厳密解と多体問題の壁
水素原子の特異性
量子力学において、水素原子のSE(シュレーディンガー方程式)は厳密解が存在する数少ない例の一つです。 中心力場(クーロンポテンシャル)中の電子の運動は、変数分離法を用いることで解析的に解くことができ、その結果としてエネルギー固有値や波動関数の数式が完全に決定されます。私たちが教科書で見る「軌道の形」は、この厳密解に基づいています。
ヘリウム原子と計算化学の起源
しかし、ヘリウム原子のシュレーディンガー方程式には、水素原子のように変数分離によって得られる解析解は存在しません。 電子間のクーロン反発項 が導入されることで問題は非可分となり、固有関数を閉じた形で表すことができなくなるためです。ただし、これは「解が存在しない」という意味ではなく、変分法や数値計算によってエネルギーや波動関数は任意の精度で厳密に定義・評価することが可能です。
この「解析解が存在しないものをどう解くか」という問題が、現代の計算化学を生み出しました。
- 一電子近似: 多電子系の波動関数を、個々の電子が平均的な場の中を動く「一電子軌道」の積で近似する。
- LCAO近似: 分子軌道を原子軌道の線形結合(Linear Combination of Atomic Orbitals)で表現する。
- ガウス関数: 水素原子の厳密解(スレーター型軌道)は積分計算が困難なため、計算機上で扱いやすいガウス関数(GTO)で代用する。
つまり、ヘリウム以降の原子に解析解がないことが、ガウス関数や一電子近似、LCAO近似につながる直接的な動機となっているのです。
3. 量子数とオービタルの形状
角運動量と不確定性
水素原子の波動関数を極座標で解く過程で、角運動量の量子化が現れます。ここで重要なのは、不確定性原理により、角運動量の3成分の値を同時に正確に測定不可であるという点です。 同時に確定できるのは、角運動量の大きさの二乗()と、そのうちの1成分(通常は )のみです。これが量子数の定義に直結します。
3つの量子数
水素原子オービタルは3つの量子数に依存することで特徴づけられます。
- 主量子数 (): エネルギーと軌道の大きさを決定 ()
- 方位量子数 (): 角運動量の大きさと軌道の形状を決定 ()
- 磁気量子数 (): 軌道の空間的な向きを決定 ()
軌道の形状と球面調和関数
波動関数の角度依存部分は、前回の記事で触れた剛体回転子の波動関数を球面調和関数 としてそのまま流用しています。これにより、各軌道の幾何学的な形状が決まります。
- s軌道 (): 角度依存性がなく、s軌道は球対称であるという特徴を持ちます。
- p軌道 (): の3つの状態を取り得ます。したがって、主量子数2以上の各値に対して3種類のp軌道があることになり、これらは直交座標系では として表現され、結合角や分子構造の決定に重要な役割を果たします。
4. Pythonによる可視化:動径分布関数
水素原子の厳密解である動径波動関数 を用いて、電子が原子核からどの距離に存在する確率が高いか(動径分布関数 )を可視化してみます。
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import genlaguerre
from scipy.constants import physical_constants
def radial_wavefunction(r, n, l, Z=1):
"""
水素様原子の動径波動関数 R_nl(r) を計算
r: 原子単位(Bohr)での距離
n: 主量子数
l: 方位量子数
Z: 原子番号 (水素は1)
"""
# ボーア半径で規格化された変数 rho
rho = 2 * Z * r / n
# 規格化定数 (A_nl)
prefactor = np.sqrt((2 * Z / n)**3 * np.math.factorial(n - l - 1) / (2 * n * np.math.factorial(n + l)))
# ラゲールの陪多項式 L_{n-l-1}^{2l+1}(rho)
# scipyのgenlaguerreは L_n^alpha の定義なので、次数とalphaに注意
L = genlaguerre(n - l - 1, 2 * l + 1)
return prefactor * np.exp(-rho / 2) * (rho ** l) * L(rho)
def plot_radial_distribution():
r = np.linspace(0, 25, 1000) # 0 to 25 Bohr radii
orbitals = [(1, 0, '1s'), (2, 0, '2s'), (2, 1, '2p'), (3, 0, '3s')]
plt.figure(figsize=(10, 6))
for n, l, label in orbitals:
R = radial_wavefunction(r, n, l)
# 動径分布関数 (RDF) = r^2 * |R|^2 (4piは相対比較では省略可だが意味的には表面積要素)
# ここでは確率密度そのものではなく、動径分布(存在確率)をプロット
rdf = r**2 * R**2
plt.plot(r, rdf, label=f'{label} (n={n}, l={l})')
plt.title("Radial Distribution Functions of Hydrogen Atom")
plt.xlabel("Distance from Nucleus (Bohr radii)")
plt.ylabel("Radial Probability (r^2 |R|^2)")
plt.legend()
plt.grid(True, alpha=0.3)
plt.xlim(0, 25)
plt.ylim(bottom=0)
# ノード(節)の数を確認
# 1s: 0 nodes, 2s: 1 node, 2p: 0 nodes, 3s: 2 nodes
print("--- Visualization Complete ---")
# 実行
plot_radial_distribution()
plt.show()
このグラフからは、主量子数 が大きくなるほど電子が原子核から遠くに分布することや、同じ でも (s, p…) によって分布の極大位置や浸透度合い(遮蔽効果に関係)が異なることが見て取れます。
5. 結論
水素原子は、量子力学の原理がそのまま美しい数式として現れる唯一の「解析解の存在する」原子系です。しかし、現実の化学計算の対象となる多電子系では、その解析解存在しません。だからこそ、計算化学者は「解析解を持つ水素原子」をモデルケースとして、その軌道の形(s, p, d…)や概念(量子数)を借用し、ガウス関数による展開やLCAOといった近似手法を駆使して、複雑な分子の世界を記述しているのです。次回は、これらの近似計算を実際にコンピュータに行わせるための手法、「変分法」と「ハートリー・フォック法」の基礎について解説します。
参考文献
- Szabo, A., & Ostlund, N. S. “Modern Quantum Chemistry,” Dover Publications.
- Atkins, P., & de Paula, J. “Atkins’ Physical Chemistry,” Oxford University Press.
- Griffiths, D. J. “Introduction to Quantum Mechanics,” Cambridge University Press.
