
シュレディンガーの猫
シュレディンガーの猫は、量子力学の「重ね合わせ」の概念を示す有名な思考実験です。
数式と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を用いた量子回路)なども可能ですので、ご希望があれば教えてください!