import numpy as np
z_plus_bra = np.array([[1,0]])
z_minus_bra = np.array([[0,1]])
z_plus_ket = z_plus_bra.T
z_minus_ket = z_minus_bra.T
x_plus_bra = 1/np.sqrt(2)*np.array([[1,1]])
x_minus_bra = 1/np.sqrt(2)*np.array([[1,-1]])
x_plus_ket = x_plus_bra.T
x_minus_ket = x_minus_bra.T
y_plus_bra = 1/np.sqrt(2)*np.array([[1, 1j]])
y_minus_bra = 1/np.sqrt(2)*np.array([[1, -1j]])
y_plus_ket = np.conj(y_plus_bra.T)
y_minus_ket = np.conj(y_minus_bra.T)
psi_1_ket = 1/2*z_plus_ket + 1j*np.sqrt(3)/2*z_minus_ket
# Find <S_x>
A_up = x_plus_bra@psi_1_ket
#print(A_up)
A_up_prob = np.conj(A_up)*A_up
print("A_up_prob = ", A_up_prob)
A_down = x_minus_bra@psi_1_ket
#print(A_down)
A_down_prob = np.conj(A_down)*A_down
print("A_down_prob = ", A_down_prob)
print("<S_x> = ", +1*A_up_prob - A_down_prob, "hbar/2")
# Find <S_y>
A_up = y_plus_bra@psi_1_ket
#print(A_up)
A_up_prob = np.conj(A_up)*A_up
print("A_up_prob = ", A_up_prob)
A_down = y_minus_bra@psi_1_ket
#print(A_down)
A_down_prob = np.conj(A_down)*A_down
print("A_down_prob = ", A_down_prob)
print("<S_y> = ", +1*A_up_prob - A_down_prob, "hbar/2")
# Find <S_z>
A_up = z_plus_bra@psi_1_ket
#print(A_up)
A_up_prob = np.conj(A_up)*A_up
print("A_up_prob = ", A_up_prob)
A_down = z_minus_bra@psi_1_ket
#print(A_down)
A_down_prob = np.conj(A_down)*A_down
print("A_down_prob = ", A_down_prob)
print("<S_z> = ", +1*A_up_prob - A_down_prob, "hbar/2")
A_up_prob = [[0.5+0.j]]
A_down_prob = [[0.5+0.j]]
<S_x> = [[0.+0.j]] hbar/2
A_up_prob = [[0.0669873+0.j]]
A_down_prob = [[0.9330127+0.j]]
<S_y> = [[-0.8660254+0.j]] hbar/2
A_up_prob = [[0.25+0.j]]
A_down_prob = [[0.75+0.j]]
<S_z> = [[-0.5+0.j]] hbar/2
psi_10_ket = 1/2*z_plus_ket + 1j*np.sqrt(3)/2*z_minus_ket
psi_11_ket = -1j/2*z_plus_ket + np.sqrt(3)/2*z_minus_ket
psi_11_bra = np.conj(psi_11_ket.T)
print(psi_11_bra@psi_11_ket)
amp = psi_11_bra@psi_10_ket
print("Probability amplitude is ", amp)
prob = np.conj(amp)*amp
print("Probability is ", prob)
[[1.+0.j]]
Probability amplitude is [[0.+1.j]]
Probability is [[1.+0.j]]
psi_10_ket = 1/2*z_plus_ket + 1j*np.sqrt(3)/2*z_minus_ket
psi_10_perp_ket = 1/(1/2)*z_plus_ket - 1j/(np.sqrt(3)/2)*z_minus_ket
psi_10_perp_bra = np.conj(psi_10_perp_ket.T)
psi_11_ket = -1j/2*z_plus_ket + np.sqrt(3)/2*z_minus_ket
norm_perp = psi_10_perp_bra@psi_10_perp_ket
print(norm_perp)
amp = psi_10_perp_bra@psi_10_ket
print(amp)
amp2 = psi_10_perp_bra@psi_11_ket
print(amp2)
[[5.33333333+0.j]]
[[0.+0.j]]
[[0.+0.j]]