水素輝線を可視化して見えた、量子の階段の美しさ

## はじめに

水素原子は、宇宙で最も基本的な元素でありながら、その構造には量子力学の本質が詰まっています。
特に、電子の遷移によって生じる「輝線（スペクトル線）」は、美しく、深い物理的意味を持ちます。

本記事では、**水素の輝線系列（Lyman、Balmer、Paschen など）を、PythonとMatplotlibを使って可視化**します。
波長とエネルギーという2つの視点から、電子のふるまいを直感的に捉えられるよう工夫しました。

また、各系列の波長領域（紫外・可視・赤外）に合わせて色彩にもこだわりました。
**Matplotlibが奏でる「量子の階段」の美しさ**を、ぜひお楽しみください。

---

本記事の実装コードはGoogle Colabからもご覧いただけます。

https://colab.research.google.com/drive/1_pfILnghUsAgaTLntGt5vaQaLSEDllmY?usp=sharing


## 輝線系列とは？

水素原子では、電子が高い準位（$n_\text{upper}$）から低い準位（$n_\text{lower}$）に遷移すると、そのエネルギー差に対応する光が放出されます。  
このとき、落ちる先の準位によって名前がついています。


| 系列名       | 落ちる先の $n$ | 領域                | 対応する電子殻(歴史的名称) |
|--------------|-------------|---------------------|--------------------------|
| Lyman        | 1           | 紫外線              | K殻                      |
| Balmer       | 2           | 可視光              | L殻                      |
| Paschen      | 3           | 近赤外（1.0〜2.0 μm付近） | M殻                      |
| Brackett     | 4           | 赤外線（2〜4 μm付近）  | N殻                      |
| Pfund        | 5           | 遠赤外線            | O殻                      |
| Humphreys    | 6           | 遠赤外線            | P殻                      |


:::note warn
波長の分類（近赤外、赤外線、遠赤外線）は文献や分野によって呼び方や範囲が若干異なるため、ここでは伝統的な電子殻名と対応付けた目安としてご理解ください。
:::

## 系列内での「α, β, γ…」の意味

各系列（Lyman, Balmer, Paschen など）では、電子が落ちてくる元の準位（$n$）によって、「α（アルファ）」「β（ベータ）」「γ（ガンマ）」「δ（デルタ）」「ε（イプシロン）」「ζ（ゼータ）」といった名前がついています。

- α：1つ上の準位からの遷移（例：$n=2 → n=1$）  
- β：2つ上の準位からの遷移（例：$n=3 → n=1$）  
- γ：3つ上の準位からの遷移（例：$n=4 → n=1$）  
- …というふうに、上がるほどギリシャ文字が進みます。

たとえば、

-「Lyman-α」は $n=2 → n=1$ の遷移、  
-「Balmer-β」は $n=4 → n=2$ の遷移、  
-「Paschen-γ」は $n=6 → n=3$ の遷移と呼びます。

このように、系列ごとに落ちる先（$n_\text{lower}$）は固定で、「どこから落ちてきたか（$n_\text{upper}$）」によって α, β, γ… と名前がついています。

---

さて、この命名法を知っていると、「Brγ」という表記の意味もすんなり読み解けます。

「Brγ」とは、水素原子のBrackett系列におけるγ線、つまり第3番目の遷移です。  
具体的には $n = 7 → n = 4$ の遷移に対応し、波長はおよそ2.17 μmの赤外線領域にあたります。  
正式には H Brγ と表記されることもあります（H = 水素）。

<br>

「えっ、Brって“臭素（Bromine）”？？」と思った方もいるかもしれません。  
確かに化学では Br は臭素ですが、ここではBrackett系列の略です。

というわけで、「Br」のような略称が出てきたときは、Brackett か Bromine か、両天秤にかけつつ、文脈から読み取るセンスが試されているわけです。


## Pythonで可視化してみよう！

本記事では、水素の各系列における代表的な輝線について、遷移元の準位 $n_\text{upper}$ を縦軸に、波長（下x軸）およびそれに対応する光子エネルギー（上x軸）で表示するグラフを作成します。

実装の際に波長とエネルギーの二次軸表示については以下の記事を活用します。わりとハマりやすい箇所なのでぜひ参考にしてください。

https://qiita.com/yusuke_s_yusuke/items/7a87b3384519aead2a71

### 実装コード

```python
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter
from matplotlib.ticker import FixedLocator

# 単位変換関数
def nm_to_eV(nm):
    return 1239.8 / (nm + 1e-12)

def eV_to_nm(eV):
    return 1239.8 / (eV + 1e-12)

# 定数
E0 = -13.6  # eV
hc = 1239.8  # eV*nm

# 各輝線系列 (基底準位 n_lower)
series = {
    "Lyman": 1,
    "Balmer": 2,
    "Paschen": 3,
    "Brackett": 4,
    "Pfund": 5,
    "Humphreys": 6,
}

# スタイル定義（系列: 色, 遷移: マーカー）
series_colors_named = {
    "Lyman": "#4169e1",     # royalblue
    "Balmer": "#32cd32",    # limegreen
    "Paschen": "#ff8c00",   # darkorange
    "Brackett": "#ff4500",  # orangered
    "Pfund": "#8b0000",     # darkred
    "Humphreys": "#5a2d0c", # brown
}
markers = ['o', '^', 's', 'D', 'v', 'X']
labels_greek = ['α', 'β', 'γ', 'δ', 'ε', 'ζ']

# プロット初期化
fig, ax_wave = plt.subplots(figsize=(10, 6))

# マーカー位置記録用
marker_lines = [[] for _ in markers]

# 各系列プロット
for i, (series_name, n_lower) in enumerate(series.items()):
    n_upper = np.arange(n_lower + 1, n_lower + 7)
    delta_E = E0 * (1/n_upper**2 - 1/n_lower**2)
    wavelengths = hc / delta_E

    # 系列内の実線接続
    ax_wave.plot(wavelengths, n_upper, '-', color=series_colors_named[series_name], alpha=0.7,
                 label=f"{series_name} (n={n_lower})")

    # 系列内マーカー描画・記録
    for j, (wl, n_up) in enumerate(zip(wavelengths, n_upper)):
        ax_wave.plot(wl, n_up, marker=markers[j], color=series_colors_named[series_name], linestyle='None')
        marker_lines[j].append((wl, n_up))

# 同マーカー横方向（波長方向）点線
for points in marker_lines:
    wls, ns = zip(*points)
    ax_wave.plot(wls, ns, ':', color='gray', linewidth=1, alpha=0.6)

# マーカー凡例（グレーで追加）
for j, marker in enumerate(markers):
    ax_wave.plot([], [], marker=marker, color='gray', linestyle='None',
                 label=f"{labels_greek[j]} transition")

# 軸ラベル・設定（縦にupper level nを取る）
ax_wave.set_ylabel("Upper level n")
ax_wave.set_xlabel("Wavelength (nm)")
ax_wave.grid(True)

# 主目盛りの位置を計算
wave_range = (0, 13000)
wave_step = 1000
ax_wave.set_xlim(wave_range[0], wave_range[1])
wave_major_ticks = np.arange(wave_range[0], wave_range[1] + wave_step, wave_step)
ax_wave.xaxis.set_major_locator(FixedLocator(wave_major_ticks))
ax_wave.grid(visible=True, linestyle="--", linewidth=0.5, alpha=0.7)  # グリッド設定
ax_wave.set_yticks(np.arange(1, 13))

# 副x軸 (keV)
ax_energy = ax_wave.secondary_xaxis("top", functions=(nm_to_eV, eV_to_nm))
ax_energy.set_xlabel("Photon energy (eV)")
eV_major_ticks = nm_to_eV(wave_major_ticks)
ax_energy.set_xticks(eV_major_ticks)
eV_major_ticks = nm_to_eV(wave_major_ticks)

# 現実的な値のeVのみ表示
eV_labels = []
for val in eV_major_ticks:
    if np.isfinite(val) and val < 1e3:  # 範囲内の現実的な値だけ表示
        eV_labels.append(f"{val:.3f}")
    else:
        eV_labels.append("inf")  # 無効なラベルは非表示

ax_energy.set_xticklabels(eV_labels)
ax_wave.legend(ncol=2)

fig.suptitle("Hydrogen Spectral Series: Upper level n vs. Wavelength and Energy")

plt.show()
```

**出力結果**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/37f07f21-4660-4bbc-a6b6-119b85cb9543.png)



<details><summary><strong>各系列のプロット</strong></summary>


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/3d8ad77d-9751-4f87-9c28-7613b3eed31b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/8e9a1ba3-f6d6-4b6d-a276-be34ba9f8cd3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/7a779ada-cf69-4455-ac9a-7eda7f1d229c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/2eb531fd-1f72-47b5-a3e1-5ee08955bab3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/a32345ac-0708-432b-ac6e-7dfe01e593f8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/fcbb6ae0-e222-45b0-baee-a66a9857dd2e.png)

</details>

### 図の見方

- **$n_\text{upper}$による依存性：**  
  電子の遷移間のエネルギー差が小さくなるため、生成されるフォトンの波長は長くなります。

- **各系列の特徴：**  
  Lyman系列は紫外線、Balmer系列は可視光に位置する一方、Paschen、Brackett、Pfund、Humphreysなどは、波長が長くなるため赤外線領域に属します。（各系列の波長をイメージしやすいカラーでプロットしています。）


### 水素輝線の一覧表

以下に、各系列における代表的な遷移（α〜ζ）と、それに対応するフォトンのエネルギー・波長を一覧にまとめました。よろしければご覧ください。

<details><summary><strong>水素輝線の一覧表</strong></summary>

| 系列      | 遷移   | 記号   |   エネルギー [eV] |   波長 [nm] |
|:----------|:-------|:-------|------------------:|------------:|
| Lyman     | 2 → 1  | α      |           10.2000 |      121.55 |
| Lyman     | 3 → 1  | β      |           12.0889 |      102.56 |
| Lyman     | 4 → 1  | γ      |           12.7500 |       97.24 |
| Lyman     | 5 → 1  | δ      |           13.0560 |       94.96 |
| Lyman     | 6 → 1  | ε      |           13.2222 |       93.77 |
| Lyman     | 7 → 1  | ζ      |           13.3224 |       93.06 |
| Balmer    | 3 → 2  | α      |            1.8889 |      656.36 |
| Balmer    | 4 → 2  | β      |            2.5500 |      486.20 |
| Balmer    | 5 → 2  | γ      |            2.8560 |      434.10 |
| Balmer    | 6 → 2  | δ      |            3.0222 |      410.23 |
| Balmer    | 7 → 2  | ε      |            3.1224 |      397.06 |
| Balmer    | 8 → 2  | ζ      |            3.1875 |      388.96 |
| Paschen   | 4 → 3  | α      |            0.6611 |     1875.33 |
| Paschen   | 5 → 3  | β      |            0.9671 |     1281.96 |
| Paschen   | 6 → 3  | γ      |            1.1333 |     1093.94 |
| Paschen   | 7 → 3  | δ      |            1.2336 |     1005.06 |
| Paschen   | 8 → 3  | ε      |            1.2986 |      954.71 |
| Paschen   | 9 → 3  | ζ      |            1.3432 |      923.01 |
| Brackett  | 5 → 4  | α      |            0.3060 |     4051.63 |
| Brackett  | 6 → 4  | β      |            0.4722 |     2625.46 |
| Brackett  | 7 → 4  | γ      |            0.5724 |     2165.78 |
| Brackett  | 8 → 4  | δ      |            0.6375 |     1944.78 |
| Brackett  | 9 → 4  | ε      |            0.6821 |     1817.63 |
| Brackett  | 10 → 4 | ζ      |            0.7140 |     1736.41 |
| Pfund     | 6 → 5  | α      |            0.1662 |     7458.69 |
| Pfund     | 7 → 5  | β      |            0.2664 |     4653.05 |
| Pfund     | 8 → 5  | γ      |            0.3315 |     3739.97 |
| Pfund     | 9 → 5  | δ      |            0.3761 |     3296.47 |
| Pfund     | 10 → 5 | ε      |            0.4080 |     3038.73 |
| Pfund     | 11 → 5 | ζ      |            0.4316 |     2872.55 |
| Humphreys | 7 → 6  | α      |            0.1002 |    12370.00 |
| Humphreys | 8 → 6  | β      |            0.1653 |     7501.31 |
| Humphreys | 9 → 6  | γ      |            0.2099 |     5907.28 |
| Humphreys | 10 → 6 | δ      |            0.2418 |     5127.85 |
| Humphreys | 11 → 6 | ε      |            0.2654 |     4671.77 |
| Humphreys | 12 → 6 | ζ      |            0.2833 |     4375.76 |


</details>


### 輝線の数式とコードとのつながり

1913年、ニールス・ボーアは原子のボーアモデルを提案し、水素原子の電子が量子化された軌道上を回ると考えました。このモデルでは、電子のエネルギー準位 $E_n$ は以下の式で表されます：

```math
E_{n} = -\frac{m_e e^4}{2 (4\pi \varepsilon_0 \hbar)^2} \frac{1}{n^2} = -\frac{13.6}{n^2} \quad [\text{eV}]
```

ここで  
- $n$ は主量子数（1, 2, 3, …）  
- 基底状態（$n = 1$）のエネルギーは約 $-13.6~\text{eV}$ で、電子を自由状態まで引き離すのに必要なエネルギー、すなわちイオン化エネルギーに相当します。

電子が高い準位（$n_{\text{upper}}$）から低い準位（$n_{\text{lower}}$）に遷移すると、そのエネルギー差が光（フォトン）として放出されます。

このとき、放出されるフォトンのエネルギー $\Delta E$ は、エネルギー準位差として以下のように求められます。

```math
\Delta E = E_{\text{upper}} - E_{\text{lower}} = 13.6 \left( \frac{1}{n_{\text{lower}}^2} - \frac{1}{n_{\text{upper}}^2} \right)
```

ここで、$n_{\text{upper}} > n_{\text{lower}}$ であるため、分数の差は正となり、$\Delta E > 0$ が保証されます。これにより、放出される光の波長 $\lambda$ は以下の式で計算できます。

```math
\lambda = \frac{hc}{\Delta E}
```

このように、量子力学で導かれるエネルギー準位の差を使えば、電子の遷移によって放出される光の波長を直接求めることができます。



## 補足：実際にはもっと複雑な世界がある

ここまで紹介してきた水素のエネルギー準位や輝線の式は、古典的なボーア模型や非相対論的な量子力学に基づくものです。  
しかし、科学の進展とともに理論も洗練され、水素原子の「より正確な姿」が少しずつ明らかになってきました。  

たとえ1電子系である水素原子でも、精密測定を行うと理想モデルからの微妙なずれが観測されます。以下のような補正が導入されています。

1. **軌道量子数 $l$ の導入**  
   - 水素原子の単純なクーロンポテンシャルでは、エネルギーは主に $n$ のみに依存し、$l$ に依存しません。しかし、実際には波動関数の形状や選択則に影響を与える要素として重要です。

2. **微細構造（fine structure）**  
   - 相対論的補正と電子のスピン軌道相互作用により、同じ $n$ 内でも全角運動量量子数 $j$ の違いによって、エネルギー準位が微妙に分裂します。

3. **ラムシフト（QED効果）**  
   - 量子電磁力学（Quantum Electrodynamics, QED）に基づく真空のゆらぎや自エネルギーの影響により、さらに微細なずれが生じます。


### 理論の進化の歴史背景

これらの補正項（スピンやラムシフトなど）は、物理学の発展の中で段階的に理解されてきました。以下がその簡単な歴史背景です。

| 時代   | 理論                   | キーワード                                      |
|--------|------------------------|-------------------------------------------------|
| 1913年 | ボーア模型             | 軌道量子化、$n$ 依存のエネルギー準位         |
| 1926年 | シュレーディンガー方程式 | 波動関数、$n$ と $l$、選択則                |
| 1928年 | ディラック方程式       | スピン、相対論補正、$j$ による分裂（微細構造） |
| 1947年 | 量子電磁力学（QED）     | 真空のゆらぎ、ラムシフト、自エネルギー補正      |

シンプルに見える輝線の数式にも、実はこうした深い理論的背景が隠れているのです。

---

たとえば、微細構造を含む補正式の一例は次のように表されます。

```math
E_{n,j} = -13.6\,\text{eV} \left( \frac{1}{n^2} + \frac{\alpha^2}{n^3} \left( \frac{1}{j+1/2} - \frac{3}{4n} \right) \right)
```

ここで、  
- $\alpha \approx \frac{1}{137}$ は微細構造定数  
- $j = l \pm \frac{1}{2}$ は全角運動量量子数

この式は、ディラック方程式と摂動論の組み合わせから導かれる近似式であり、実験精度が高まると、さらに超微細構造や核スピンなどの効果も考慮する必要が出てきます。

---

ちなみに、このような精密補正が重要になるのは、実験室だけではありません。宇宙空間でも、水素の輝線は観測されています。

特に「Lyman-α 線」は、遠方銀河や宇宙の大規模構造を調べるカギとなっています（[ライマンα天体](https://astro-dic.jp/lyman-alpha-object/)、[ライマンαフォレスト](https://astro-dic.jp/lyman-alpha-forest/) など）。

水素という最もシンプルな原子が、量子論と宇宙の両方に深くつながっているというのは、なんとも美しい話ですね！


## まとめ

水素原子の輝線は、たった1つの電子の動きから生まれる、シンプルでありながら奥深い現象です。
本記事では、系列ごとの遷移と、それに対応する波長やエネルギーの関係を可視化することで、量子の階段を視覚的にたどってみました。

小さな水素原子のふるまいが、やがて宇宙のスケールへとつながっていく——。
そんな広がりを少しでも感じていただけたなら、筆者としては何よりです。