見出し画像

シュレディンガーの猫

シュレディンガーの猫は、量子力学の「重ね合わせ」の概念を示す有名な思考実験です。
数式とPythonでこの概念をシミュレーションしてみます。


1. シュレディンガーの猫の数式


2. 量子状態のPythonシミュレーション

以下のPythonコードでは、量子状態のシミュレーションを行います。

  • 量子状態の重ね合わせ

  • 観測のシミュレーション

  • 確率的な波動関数の崩壊

import numpy as np
import matplotlib.pyplot as plt

def quantum_superposition():
    # 状態ベクトルの確率振幅(ランダムな複素数)
    alpha = np.random.rand() + 1j * np.random.rand()
    beta = np.random.rand() + 1j * np.random.rand()
    
    # 正規化(確率の合計を1にする)
    norm = np.sqrt(np.abs(alpha)**2 + np.abs(beta)**2)
    alpha /= norm
    beta /= norm
    
    print(f"初期量子状態: {alpha:.2f} |Alive⟩ + {beta:.2f} |Dead⟩")
    
    # 観測のシミュレーション
    outcome = np.random.choice(["Alive", "Dead"], p=[np.abs(alpha)**2, np.abs(beta)**2])
    
    print(f"観測結果: 猫は {outcome} です!")
    return outcome

# シミュレーションを実行
outcomes = {"Alive": 0, "Dead": 0}
n_experiments = 1000
for _ in range(n_experiments):
    result = quantum_superposition()
    outcomes[result] += 1

# 結果を可視化
plt.bar(outcomes.keys(), outcomes.values(), color=['green', 'red'])
plt.xlabel("状態")
plt.ylabel("出現回数")
plt.title("シュレディンガーの猫の観測結果(1000回シミュレーション)")
plt.show()

このPythonコードでは、シュレディンガーの猫の量子状態をシミュレーションし、観測結果の分布を可視化しています。

  • 量子状態の重ね合わせ を作成

  • 観測時に確率的に決定 (波動関数の崩壊)

  • 1000回の実験を実施し、統計的に可視化

これにより、シュレディンガーの猫の「生死の不確定性」を数値的にシミュレーションできます。
追加の改良や量子コンピュータ向けの拡張(Qiskitを用いた量子回路)なども可能ですので、ご希望があれば教えてください!

いいなと思ったら応援しよう!