summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuben Erlenstedt <rxy626@gmail.com>2019-11-30 11:49:43 +0100
committerRuben Erlenstedt <rxy626@gmail.com>2019-11-30 11:49:43 +0100
commit26cb7b3abac9365d5ceccabc7cdde900f8cde3bf (patch)
tree87cdeb691f8b1d829280acddb1fb0fcfd52de964
parent1df43952807a0182d5c42f42e97321443ff82a8c (diff)
Add python plot for bloch sphere
-rw-r--r--plotting.py42
-rw-r--r--single_dequantify.py6
2 files changed, 32 insertions, 16 deletions
diff --git a/plotting.py b/plotting.py
index 397e4de..9def377 100644
--- a/plotting.py
+++ b/plotting.py
@@ -3,11 +3,11 @@ import cmath as cmt
import numpy as npy
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
-import numpy as np
from itertools import product, combinations
from matplotlib.patches import FancyArrowPatch
from mpl_toolkits.mplot3d import proj3d
+
class Arrow3D(FancyArrowPatch):
def __init__(self, xs, ys, zs, *args, **kwargs):
@@ -20,19 +20,35 @@ class Arrow3D(FancyArrowPatch):
self.set_positions((xs[0], ys[0]), (xs[1], ys[1]))
FancyArrowPatch.draw(self, renderer)
-def plot_kugel(historie):
+
+def kugel(historie):
fig = plt.figure()
ax = fig.gca(projection='3d')
-
+
# draw sphere
- u, v = np.mgrid[0:2*np.pi:20j, 0:np.pi:10j]
- x = np.cos(u)*np.sin(v)
- y = np.sin(u)*np.sin(v)
- z = np.cos(v)
+ u, v = npy.mgrid[0:2*npy.pi:20j, 0:npy.pi:10j]
+ x = npy.cos(u)*npy.sin(v)
+ y = npy.sin(u)*npy.sin(v)
+ z = npy.cos(v)
ax.plot_wireframe(x, y, z, color="r")
-
- # draw a vector
- a = Arrow3D([0, 1], [0, 1], [0, 1], mutation_scale=20,
- lw=1, arrowstyle="-|>", color="k")
- ax.add_artist(a)
- plt.show() \ No newline at end of file
+
+ # draw a time evolution
+ for blochpunkt in historie:
+ x = mth.cos(blochpunkt[1]) * mth.cos(blochpunkt[0])
+ y = mth.cos(blochpunkt[1]) * mth.sin(blochpunkt[0])
+ z = mth.sin(blochpunkt[1])
+ a = Arrow3D([0, x], [0, y], [0, z], mutation_scale=20,
+ lw=1, arrowstyle="-|>", color="k")
+ ax.add_artist(a)
+ plt.show()
+
+def phi(phi):
+ fig, ax = plt.subplots()
+
+ x = mth.cos(phi[0])
+ y = mth.sin(phi[0])
+
+ ax.arrow(0, 0, 1, 1)
+ ax.set_title('Zeitentwicklung von phi')
+
+ plt.show()
diff --git a/single_dequantify.py b/single_dequantify.py
index c5054f5..cd302af 100644
--- a/single_dequantify.py
+++ b/single_dequantify.py
@@ -10,7 +10,7 @@ beta = 1 / npy.sqrt(2)
state = npy.array([alpha, beta])
dt = 0.2
-iterations = 200
+iterations = 20
H = npy.array([[2,-2j],[2j,3]])
@@ -40,7 +40,7 @@ for i in range(iterations):
coords = sphere2cart(coords[0], coords[1])
print(f"{coords[0]}; {coords[1]}; {coords[2]}")
-
-
+import plotting
+plotting.phi(historie[:,0])