summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Kobert <dennis@kobert.dev>2019-11-30 13:15:01 +0100
committerDennis Kobert <dennis@kobert.dev>2019-11-30 13:15:01 +0100
commit98c588bbb04f11b05324b6e415ec358305f06f7a (patch)
tree8238b0ed0bd09698f13173d62777a19be3b0fd5b
parentf3988902b014da58eb8c6a1914312721b0b59f86 (diff)
Normalize alpha and beta
-rw-r--r--single_dequantify.py30
1 files changed, 17 insertions, 13 deletions
diff --git a/single_dequantify.py b/single_dequantify.py
index 44f2190..fa5f017 100644
--- a/single_dequantify.py
+++ b/single_dequantify.py
@@ -5,14 +5,18 @@ import cmath as cmt
import numpy as npy
import scipy.linalg as sla
-alpha = 1 / npy.sqrt(2)
-beta = 1 / npy.sqrt(2)
-state = npy.array([alpha, beta])
+#alpha = 1 / npy.sqrt(2)
+alpha = 1
+#beta = 1 / npy.sqrt(2)
+beta = 1
-dt = 0.067
-iterations = 41
+norm = npy.linalg.norm([alpha, beta])
+state = npy.array([alpha / norm, beta / norm])
-H = npy.array([[2,-1j],[1j,3]])
+dt = 0.1
+iterations = 61
+
+H = npy.array([[2,0],[0,3]])
def time_evolution(state, dt = dt):
@@ -20,16 +24,16 @@ def time_evolution(state, dt = dt):
def bloch_map(state):
temp = npy.conj(state[0] / state[1])
- theta = 2 * npy.arctan(abs(temp) / 2)
+ theta = 2 * npy.arctan(abs(temp))
phi = cmt.phase(temp)
- return npy.array([phi, theta])
+ return (phi, theta)
def sphere2cart(phi, theta):
return [
- mth.cos(theta) * mth.cos(phi),
- mth.cos(theta) * mth.sin(phi),
- mth.sin(theta)
+ mth.sin(theta) * mth.cos(phi),
+ mth.sin(theta) * mth.sin(phi),
+ mth.cos(theta)
]
historie = npy.array([bloch_map(state)])
@@ -39,8 +43,8 @@ for i in range(iterations):
state = time_evolution(state)
h = npy.dot(state, state)
historie = npy.vstack([historie,bloch_map(state)])
- coords = bloch_map(state)
- coords = sphere2cart(coords[0], coords[1])
+ (phi, theta) = bloch_map(state)
+ coords = sphere2cart(phi, theta)
f.write(f"{coords[0]}; {coords[1]}; {coords[2]}; {(i + 1) / iterations}\n")
f.close()