fixed_gauge_of_wave_functions.py
Code:
import numpy as np
import cmath
import guan
# Example 1
vector = np.array([np.sqrt(0.5), np.sqrt(0.5)])*cmath.exp(np.random.uniform(0, 1)*1j)
print('\nExample 1\n', vector)
print(np.dot(vector.transpose().conj(), vector), '\n')
vector = guan.find_vector_with_fixed_gauge_by_making_one_component_real(vector, precision=0.001)
print(vector)
print(np.dot(vector.transpose().conj(), vector), '\n')
# Example 2
vector = np.array([1, 0])*cmath.exp(np.random.uniform(0, 1)*1j)
print('\nExample 2\n', vector)
print(np.dot(vector.transpose().conj(), vector), '\n')
vector = guan.find_vector_with_fixed_gauge_by_making_one_component_real(vector, precision=0.001)
print(vector)
print(np.dot(vector.transpose().conj(), vector), '\n')
Result:
Example 1
[0.3965323+0.58545891j 0.3965323+0.58545891j]
(1+0j)
[0.70710651+0.00061834j 0.70710651+0.00061834j]
(0.9999999999999998+0j)
Example 2
[0.989389+0.1452908j 0. +0.j ]
(1+0j)
[0.99999998+0.00021423j 0. -0.j ]
(1+0j)