Top 5
git checkout hogeしてerror: pathspec 'hoge' did not match any file(s) known to gitとなったときの対処法【Git】
Oct. 13, 2019, 12:57 a.m.GitHubからpullするときにfatal: refusing to merge unrelated historiesとエラーが出るときの対処法
Aug. 13, 2019, 3:41 a.m.NumPyで標準誤差を計算する【Python】
Feb. 4, 2020, 2:24 a.m.OverleafのBibTeXでjunsrtを使う
Jan. 8, 2019, 1:30 a.m.
<model-viewer>でアニメーションつきモデルをAndroid【Scene Viewer】, iOS【AR Quick Look】で表示してみた
Aug. 15, 2019, 4:02 a.m.SymPyを使ってget_statevectorで得られたベクトルをケットベクトルに変換する【Qiskit】
Aug. 9, 2019, 6:08 a.m. edited Dec. 21, 2019, 5:20 a.m.#SymPy #Qiskit #シミュレーション #量子力学 #Python
量子コンピュータは実機で使うときはもちろん測定結果は確率でしか得られません.
しかし,シミュレーターならば以下のようにして,回路 \(U\) を通したあとの状態をベクトルで得ることができます.ここでは,Pythonで簡単に実行できるQiskit (ver. 0.10.2) を用います.また,回路は
$$
U={\rm CNOT}\cdot (H\otimes \mathbb{I})
$$
つまり,EPR状態を作るものとします.
from qiskit import QuantumCircuit, execute, Aer
simulator = Aer.get_backend('statevector_simulator')
circuit = QuantumCircuit(2)
circuit.h(0)
circuit.cx(0, 1)
statevector = execute(circuit, simulator).result().get_statevector(circuit)
print(statevector)
実行すると,
[0.70710678+0.j 0. +0.j 0. +0.j 0.70710678+0.j]
とブラケット表記で出力してくれません.Qiskitに含まれるplot_state_city
を使えばグラフで見せてくれますが,別にそこまでは求めていません.
SymPyを使ってブラケット表記に変換する
※SimPyとは別物です.
SymPyにはPhysicsの中にQuantum mechanicsのモジュールが含まれ,ここにはベクトルをケットベクトル表示に変換1してくれる matrix_to_qubit
があります.これを使うと,
from qiskit import QuantumCircuit, execute, Aer
import numpy as np
from sympy.physics.quantum.qubit import matrix_to_qubit
simulator = Aer.get_backend('statevector_simulator')
circuit = QuantumCircuit(2)
circuit.h(0)
circuit.cx(0, 1)
statevector = execute(circuit, simulator).result().get_statevector(circuit)
ket_vector = matrix_to_qubit(np.array(statevector)[:, np.newaxis])
print(ket_vector)
実行して,
0.707106781186548*|00> + 0.707106781186547*|11>
と無事にケットベクトルで表示することができました2.
-
この操作はSchmidtの分解定理によって保証されている. ↩
-
0.707106781186548はWolfram Alphaに入力すればわかるように\(\frac{1}{\sqrt{2}}\)である. ↩
Top 5
git checkout hogeしてerror: pathspec 'hoge' did not match any file(s) known to gitとなったときの対処法【Git】
Oct. 13, 2019, 12:57 a.m.GitHubからpullするときにfatal: refusing to merge unrelated historiesとエラーが出るときの対処法
Aug. 13, 2019, 3:41 a.m.NumPyで標準誤差を計算する【Python】
Feb. 4, 2020, 2:24 a.m.OverleafのBibTeXでjunsrtを使う
Jan. 8, 2019, 1:30 a.m.
<model-viewer>でアニメーションつきモデルをAndroid【Scene Viewer】, iOS【AR Quick Look】で表示してみた
Aug. 15, 2019, 4:02 a.m.Tags
- #Python (17)
- #Unity (10)
- #Mac (7)
- #数学 (5)
- #AoE2 (5)
- #NumPy (5)
- #Bash (5)
- #シミュレーション (4)
- #Docker (4)
- #Android (4)
- #量子力学 (3)
- #相対論 (3)
- #GitHub (3)
- #Linux (3)
- #Django (2)
- #意識 (2)
- #Rust (2)
- #PyO3 (2)
- #Qiskit (2)
- #AR (2)
- #Git (2)
- #iOS (2)
- #C++ (2)
- #正規表現 (2)
- #電磁気学 (1)
- #情報理論 (1)
- #Google Drive (1)
- #Overleaf (1)
- #LaTeX (1)
- #Let's Encrypt (1)
- #ポケモン (1)
- #AdMob (1)
- #Autoya (1)
- #docopt (1)
- #SymPy (1)
- #AWS (1)
- #Twitter (1)
- #URP (1)
- #iMovie (1)