Example #1
0
def test_jx():
    assert Commutator(Jx, Jz).doit() == -I * hbar * Jy
    assert qapply(Jx * JzKet(1, 1)) == sqrt(2) * hbar * JzKet(1, 0) / 2
    assert Jx.rewrite('plusminus') == (Jminus + Jplus) / 2
    assert represent(Jx, basis=Jz,
                     j=1) == (represent(Jplus, basis=Jz, j=1) +
                              represent(Jminus, basis=Jz, j=1)) / 2
Example #2
0
def test_QubitBra():
    assert Qubit(0).dual_class == QubitBra
    assert QubitBra(0).dual_class == Qubit
    assert represent(Qubit(1,1,0), nqubits=3).H ==\
           represent(QubitBra(1,1,0), nqubits=3)
    assert Qubit(0,1)._eval_innerproduct_QubitBra(QubitBra(1,0)) == Integer(0)
    assert Qubit(0,1)._eval_innerproduct_QubitBra(QubitBra(0,1)) == Integer(1)
Example #3
0
def test_QubitBra():
    assert Qubit(0).dual_class == QubitBra
    assert QubitBra(0).dual_class == Qubit
    assert represent(Qubit(1,1,0), nqubits=3).H ==\
           represent(QubitBra(1,1,0), nqubits=3)
    assert Qubit(0,1)._eval_innerproduct_QubitBra(QubitBra(1,0)) == Integer(0)
    assert Qubit(0,1)._eval_innerproduct_QubitBra(QubitBra(0,1)) == Integer(1)
Example #4
0
def test_superposition_of_states():
    assert qapply(CNOT(0,1)*HadamardGate(0)*(1/sqrt(2)*Qubit('01') + 1/sqrt(2)*Qubit('10'))).expand() == (Qubit('01')/2 + Qubit('00')/2 - Qubit('11')/2 +\
     Qubit('10')/2)

    assert matrix_to_qubit(represent(CNOT(0,1)*HadamardGate(0)\
    *(1/sqrt(2)*Qubit('01') + 1/sqrt(2)*Qubit('10')), nqubits=2))\
     == (Qubit('01')/2 + Qubit('00')/2 - Qubit('11')/2 + Qubit('10')/2)
Example #5
0
def test_superposition_of_states():
    assert apply_operators(CNOT(0,1)*HadamardGate(0)*(1/sqrt(2)*Qubit('01') + 1/sqrt(2)*Qubit('10'))).expand() == (Qubit('01')/2 + Qubit('00')/2 - Qubit('11')/2 +\
     Qubit('10')/2)

    assert matrix_to_qubit(represent(CNOT(0,1)*HadamardGate(0)\
    *(1/sqrt(2)*Qubit('01') + 1/sqrt(2)*Qubit('10')), nqubits=2))\
     == (Qubit('01')/2 + Qubit('00')/2 - Qubit('11')/2 + Qubit('10')/2)
Example #6
0
def test_states():
    assert PIABKet(n).dual_class == PIABBra
    assert PIABKet(n).hilbert_space ==\
        L2(Interval(S.NegativeInfinity,S.Infinity))
    assert represent(PIABKet(n)) == sqrt(2/L)*sin(n*pi*x/L)
    assert (PIABBra(i)*PIABKet(j)).doit() == KroneckerDelta(i, j)
    assert PIABBra(n).dual_class == PIABKet
Example #7
0
def test_states():
    assert PIABKet(n).dual_class() == PIABBra
    assert PIABKet(n).hilbert_space ==\
        L2(Interval(S.NegativeInfinity,S.Infinity))
    assert represent(PIABKet(n)) == sqrt(2 / L) * sin(n * pi * x / L)
    assert (PIABBra(i) * PIABKet(j)).doit() == KroneckerDelta(i, j)
    assert PIABBra(n).dual_class() == PIABKet
Example #8
0
def test_p():
    assert Px.hilbert_space == L2(Interval(S.NegativeInfinity, S.Infinity))
    assert apply_operators(Px*PxKet(px)) == px*PxKet(px)
    assert PxKet(px).dual_class == PxBra
    assert PxBra(x).dual_class == PxKet
    assert (Dagger(PxKet(py))*PxKet(px)).doit() == DiracDelta(px-py)
    assert (XBra(x)*PxKet(px)).doit() ==\
        exp(I*x*px/hbar)/sqrt(2*pi*hbar)
    assert represent(PxKet(px)) == px
Example #9
0
def test_x():
    assert X.hilbert_space == L2(Interval(S.NegativeInfinity, S.Infinity))
    assert Commutator(X, Px).doit() == I*hbar
    assert apply_operators(X*XKet(x)) == x*XKet(x)
    assert XKet(x).dual_class == XBra
    assert XBra(x).dual_class == XKet
    assert (Dagger(XKet(y))*XKet(x)).doit() == DiracDelta(x-y)
    assert (PxBra(px)*XKet(x)).doit() ==\
        exp(-I*x*px/hbar)/sqrt(2*pi*hbar)
    assert represent(XKet(x)) == x
    assert XBra(x).position == x
Example #10
0
def test_apply_represent_equality():
    gates = [HadamardGate(int(3*random.random())),\
     XGate(int(3*random.random())), ZGate(int(3*random.random())),\
      YGate(int(3*random.random())), ZGate(int(3*random.random())),\
       PhaseGate(int(3*random.random()))]

    circuit = Qubit(int(random.random()*2),int(random.random()*2),\
    int(random.random()*2),int(random.random()*2),int(random.random()*2),\
    int(random.random()*2))
    for i in range(int(random.random() * 6)):
        circuit = gates[int(random.random() * 6)] * circuit

    mat = represent(circuit, nqubits=6)
    states = apply_operators(circuit)
    state_rep = matrix_to_qubit(mat)
    states = states.expand()
    state_rep = state_rep.expand()
    assert state_rep == states
Example #11
0
	def state_fromSymbolic(self, expr):
		'''
		This method converts a sympy representation of a quantum state into
		an array or vector (as used by QuBricks). It uses internally `Basis.state_fromString` 
		to recognise ket and bra names, and to substitute them appropriately with the right
		state vectors.
		
		.. warning:: Support for conversion from symbolic representations is not fully
			baked, but seems to work reasonably well.
		'''

		r = np.array(sq.represent(expr, basis=self.__sympy_basis).tolist(), dtype=object)

		if len(r.shape) == 2:
			if r.shape[0] == 1:
				r = r[0, :]
			else:
				r = r[:, 0]
		return r
Example #12
0
def test_apply_represent_equality():
    gates = [HadamardGate(int(3*random.random())),\
     XGate(int(3*random.random())), ZGate(int(3*random.random())),\
      YGate(int(3*random.random())), ZGate(int(3*random.random())),\
       PhaseGate(int(3*random.random()))]

    circuit = Qubit(int(random.random()*2),int(random.random()*2),\
    int(random.random()*2),int(random.random()*2),int(random.random()*2),\
    int(random.random()*2))
    for i in range(int(random.random()*6)):
        circuit = gates[int(random.random()*6)]*circuit


    mat = represent(circuit, nqubits=6)
    states = apply_operators(circuit)
    state_rep = matrix_to_qubit(mat)
    states = states.expand()
    state_rep = state_rep.expand()
    assert state_rep == states
Example #13
0
    def state_fromSymbolic(self, expr):
        '''
		This method converts a sympy representation of a quantum state into
		an array or vector (as used by QuBricks). It uses internally `Basis.state_fromString` 
		to recognise ket and bra names, and to substitute them appropriately with the right
		state vectors.
		
		.. warning:: Support for conversion from symbolic representations is not fully
			baked, but seems to work reasonably well.
		'''

        r = np.array(sq.represent(expr, basis=self.__sympy_basis).tolist(),
                     dtype=object)

        if len(r.shape) == 2:
            if r.shape[0] == 1:
                r = r[0, :]
            else:
                r = r[:, 0]
        return r
Example #14
0
def test_p():
    assert Px.hilbert_space == L2(Interval(S.NegativeInfinity, S.Infinity))
    assert qapply(Px*PxKet(px)) == px*PxKet(px)
    assert PxKet(px).dual_class() == PxBra
    assert PxBra(x).dual_class() == PxKet
    assert (Dagger(PxKet(py))*PxKet(px)).doit() == DiracDelta(px-py)
    assert (XBra(x)*PxKet(px)).doit() ==\
        exp(I*x*px/hbar)/sqrt(2*pi*hbar)
    assert represent(PxKet(px)) == DiracDelta(px-px_1)

    rep_x = represent(PxOp(), basis = XOp)
    assert rep_x == -hbar*I*DiracDelta(x_1 - x_2)*DifferentialOperator(x_1)
    assert rep_x == represent(PxOp(), basis = XOp())
    assert rep_x == represent(PxOp(), basis = XKet)
    assert rep_x == represent(PxOp(), basis = XKet())

    assert represent(PxOp()*XKet(), basis=XKet) == \
           -hbar*I*DiracDelta(x - x_2)*DifferentialOperator(x)
    assert represent(XBra("y")*PxOp()*XKet(), basis=XKet) == \
           -hbar*I*DiracDelta(x-y)*DifferentialOperator(x)
Example #15
0
def test_p():
    assert Px.hilbert_space == L2(Interval(S.NegativeInfinity, S.Infinity))
    assert qapply(Px*PxKet(px)) == px*PxKet(px)
    assert PxKet(px).dual_class() == PxBra
    assert PxBra(x).dual_class() == PxKet
    assert (Dagger(PxKet(py))*PxKet(px)).doit() == DiracDelta(px - py)
    assert (XBra(x)*PxKet(px)).doit() == \
        exp(I*x*px/hbar)/sqrt(2*pi*hbar)
    assert represent(PxKet(px)) == DiracDelta(px - px_1)

    rep_x = represent(PxOp(), basis=XOp)
    assert rep_x == -hbar*I*DiracDelta(x_1 - x_2)*DifferentialOperator(x_1)
    assert rep_x == represent(PxOp(), basis=XOp())
    assert rep_x == represent(PxOp(), basis=XKet)
    assert rep_x == represent(PxOp(), basis=XKet())

    assert represent(PxOp()*XKet(), basis=XKet) == \
           -hbar*I*DiracDelta(x - x_2)*DifferentialOperator(x)
    assert represent(XBra("y")*PxOp()*XKet(), basis=XKet) == \
           -hbar*I*DiracDelta(x - y)*DifferentialOperator(x)
Example #16
0
def test_jy():
    assert Commutator(Jy, Jz).doit() == I*hbar*Jx
    assert qapply(Jy*JzKet(1,1)) == I*sqrt(2)*hbar*JzKet(1,0)/2
    assert Jy.rewrite('plusminus') == (Jplus - Jminus)/(2*I)
    assert represent(Jy, basis=Jz) == (represent(Jplus, basis=Jz) - represent(Jminus, basis=Jz))/(2*I)
Example #17
0
def test_jy():
    assert Commutator(Jy, Jz).doit() == I * hbar * Jx
    assert qapply(Jy * JzKet(1, 1)) == I * sqrt(2) * hbar * JzKet(1, 0) / 2
    assert Jy.rewrite('plusminus') == (Jplus - Jminus) / (2 * I)
    assert represent(Jy, basis=Jz) == (represent(Jplus, basis=Jz) -
                                       represent(Jminus, basis=Jz)) / (2 * I)
Example #18
0
q1

# In[9]:

p0

# In[10]:

p1

# representを用いてベクトルで表記できます。

# In[11]:

represent(q0)

# In[12]:

represent(q0)

# In[13]:

represent(p0)

# In[14]:

represent(p0)

# 2量子系も同様に可能です。
Example #19
0
def test_represent():
    # Spin operators
    assert represent(Jx) == hbar * Matrix([[0, 1], [1, 0]]) / 2
    assert represent(
        Jx,
        j=1) == hbar * sqrt(2) * Matrix([[0, 1, 0], [1, 0, 1], [0, 1, 0]]) / 2
    assert represent(Jy) == hbar * I * Matrix([[0, -1], [1, 0]]) / 2
    assert represent(Jy, j=1) == hbar * I * sqrt(2) * Matrix(
        [[0, -1, 0], [1, 0, -1], [0, 1, 0]]) / 2
    assert represent(Jz) == hbar * Matrix([[1, 0], [0, -1]]) / 2
    assert represent(Jz,
                     j=1) == hbar * Matrix([[1, 0, 0], [0, 0, 0], [0, 0, -1]])
    # Spin states
    # Jx basis
    assert represent(JxKet(S(1) / 2, S(1) / 2), basis=Jx) == Matrix([1, 0])
    assert represent(JxKet(S(1) / 2, -S(1) / 2), basis=Jx) == Matrix([0, 1])
    assert represent(JxKet(1, 1), basis=Jx) == Matrix([1, 0, 0])
    assert represent(JxKet(1, 0), basis=Jx) == Matrix([0, 1, 0])
    assert represent(JxKet(1, -1), basis=Jx) == Matrix([0, 0, 1])
    assert represent(JyKet(S(1) / 2,
                           S(1) / 2),
                     basis=Jx) == Matrix([exp(-I * pi / 4), 0])
    assert represent(JyKet(S(1) / 2, -S(1) / 2),
                     basis=Jx) == Matrix([0, exp(I * pi / 4)])
    assert represent(JyKet(1, 1), basis=Jx) == Matrix([-I, 0, 0])
    assert represent(JyKet(1, 0), basis=Jx) == Matrix([0, 1, 0])
    assert represent(JyKet(1, -1), basis=Jx) == Matrix([0, 0, I])
    assert represent(JzKet(S(1) / 2,
                           S(1) / 2),
                     basis=Jx) == sqrt(2) * Matrix([-1, 1]) / 2
    assert represent(JzKet(S(1) / 2, -S(1) / 2),
                     basis=Jx) == sqrt(2) * Matrix([-1, -1]) / 2
    assert represent(JzKet(1, 1), basis=Jx) == Matrix([1, -sqrt(2), 1]) / 2
    assert represent(JzKet(1, 0), basis=Jx) == sqrt(2) * Matrix([1, 0, -1]) / 2
    assert represent(JzKet(1, -1), basis=Jx) == Matrix([1, sqrt(2), 1]) / 2
    # Jy basis
    assert represent(JxKet(S(1) / 2,
                           S(1) / 2),
                     basis=Jy) == Matrix([exp(-3 * I * pi / 4), 0])
    assert represent(JxKet(S(1) / 2, -S(1) / 2),
                     basis=Jy) == Matrix([0, exp(3 * I * pi / 4)])
    assert represent(JxKet(1, 1), basis=Jy) == Matrix([I, 0, 0])
    assert represent(JxKet(1, 0), basis=Jy) == Matrix([0, 1, 0])
    assert represent(JxKet(1, -1), basis=Jy) == Matrix([0, 0, -I])
    assert represent(JyKet(S(1) / 2, S(1) / 2), basis=Jy) == Matrix([1, 0])
    assert represent(JyKet(S(1) / 2, -S(1) / 2), basis=Jy) == Matrix([0, 1])
    assert represent(JyKet(1, 1), basis=Jy) == Matrix([1, 0, 0])
    assert represent(JyKet(1, 0), basis=Jy) == Matrix([0, 1, 0])
    assert represent(JyKet(1, -1), basis=Jy) == Matrix([0, 0, 1])
    assert represent(JzKet(S(1) / 2,
                           S(1) / 2),
                     basis=Jy) == sqrt(2) * Matrix([-1, I]) / 2
    assert represent(JzKet(S(1) / 2, -S(1) / 2),
                     basis=Jy) == sqrt(2) * Matrix([I, -1]) / 2
    assert represent(JzKet(1, 1),
                     basis=Jy) == Matrix([1, -I * sqrt(2), -1]) / 2
    assert represent(JzKet(1, 0),
                     basis=Jy) == Matrix([-sqrt(2) * I, 0, -sqrt(2) * I]) / 2
    assert represent(JzKet(1, -1),
                     basis=Jy) == Matrix([-1, -sqrt(2) * I, 1]) / 2
    # Jz basis
    assert represent(JxKet(S(1) / 2, S(1) / 2)) == sqrt(2) * Matrix([1, 1]) / 2
    assert represent(JxKet(S(1) / 2,
                           -S(1) / 2)) == sqrt(2) * Matrix([-1, 1]) / 2
    assert represent(JxKet(1, 1)) == Matrix([1, sqrt(2), 1]) / 2
    assert represent(JxKet(1, 0)) == sqrt(2) * Matrix([-1, 0, 1]) / 2
    assert represent(JxKet(1, -1)) == Matrix([1, -sqrt(2), 1]) / 2
    assert represent(JyKet(S(1) / 2,
                           S(1) / 2)) == sqrt(2) * Matrix([-1, -I]) / 2
    assert represent(JyKet(S(1) / 2,
                           -S(1) / 2)) == sqrt(2) * Matrix([-I, -1]) / 2
    assert represent(JyKet(1, 1)) == Matrix([1, sqrt(2) * I, -1]) / 2
    assert represent(JyKet(1, 0)) == sqrt(2) * Matrix([I, 0, I]) / 2
    assert represent(JyKet(1, -1)) == Matrix([-1, sqrt(2) * I, 1]) / 2
    assert represent(JzKet(S(1) / 2, S(1) / 2)) == Matrix([1, 0])
    assert represent(JzKet(S(1) / 2, -S(1) / 2)) == Matrix([0, 1])
    assert represent(JzKet(1, 1)) == Matrix([1, 0, 0])
    assert represent(JzKet(1, 0)) == Matrix([0, 1, 0])
    assert represent(JzKet(1, -1)) == Matrix([0, 0, 1])
Example #20
0
def test_represent():
    assert represent(Jz) == hbar * Matrix([[1, 0], [0, -1]]) / 2
    assert represent(Jz,
                     j=1) == hbar * Matrix([[1, 0, 0], [0, 0, 0], [0, 0, -1]])
Example #21
0
def test_represent():
    represent(sx) == Matrix([[0, 1], [1, 0]])
    represent(sy) == Matrix([[0, -I], [I, 0]])
    represent(sz) == Matrix([[1, 0], [0, -1]])
    represent(sm) == Matrix([[0, 0], [1, 0]])
    represent(sp) == Matrix([[0, 1], [0, 0]])
Example #22
0
def test_represent():
    # Spin operators
    assert represent(Jx) == hbar*Matrix([[0,1],[1,0]])/2
    assert represent(Jx, j=1) == hbar*sqrt(2)*Matrix([[0,1,0],[1,0,1],[0,1,0]])/2
    assert represent(Jy) == hbar*I*Matrix([[0,-1],[1,0]])/2
    assert represent(Jy, j=1) == hbar*I*sqrt(2)*Matrix([[0,-1,0],[1,0,-1],[0,1,0]])/2
    assert represent(Jz) == hbar*Matrix([[1,0],[0,-1]])/2
    assert represent(Jz, j=1) == hbar*Matrix([[1,0,0],[0,0,0],[0,0,-1]])
    # Spin states
    # Jx basis
    assert represent(JxKet(S(1)/2,S(1)/2), basis=Jx) == Matrix([1,0])
    assert represent(JxKet(S(1)/2,-S(1)/2), basis=Jx) == Matrix([0,1])
    assert represent(JxKet(1,1), basis=Jx) == Matrix([1,0,0])
    assert represent(JxKet(1,0), basis=Jx) == Matrix([0,1,0])
    assert represent(JxKet(1,-1), basis=Jx) == Matrix([0,0,1])
    assert represent(JyKet(S(1)/2,S(1)/2), basis=Jx) == Matrix([exp(-I*pi/4),0])
    assert represent(JyKet(S(1)/2,-S(1)/2), basis=Jx) == Matrix([0,exp(I*pi/4)])
    assert represent(JyKet(1,1), basis=Jx) == Matrix([-I,0,0])
    assert represent(JyKet(1,0), basis=Jx) == Matrix([0,1,0])
    assert represent(JyKet(1,-1), basis=Jx) == Matrix([0,0,I])
    assert represent(JzKet(S(1)/2,S(1)/2), basis=Jx) == sqrt(2)*Matrix([-1,1])/2
    assert represent(JzKet(S(1)/2,-S(1)/2), basis=Jx) == sqrt(2)*Matrix([-1,-1])/2
    assert represent(JzKet(1,1), basis=Jx) == Matrix([1,-sqrt(2),1])/2
    assert represent(JzKet(1,0), basis=Jx) == sqrt(2)*Matrix([1,0,-1])/2
    assert represent(JzKet(1,-1), basis=Jx) == Matrix([1,sqrt(2),1])/2
    # Jy basis
    assert represent(JxKet(S(1)/2,S(1)/2), basis=Jy) == Matrix([exp(-3*I*pi/4),0])
    assert represent(JxKet(S(1)/2,-S(1)/2), basis=Jy) == Matrix([0,exp(3*I*pi/4)])
    assert represent(JxKet(1,1), basis=Jy) == Matrix([I,0,0])
    assert represent(JxKet(1,0), basis=Jy) == Matrix([0,1,0])
    assert represent(JxKet(1,-1), basis=Jy) == Matrix([0,0,-I])
    assert represent(JyKet(S(1)/2,S(1)/2), basis=Jy) == Matrix([1,0])
    assert represent(JyKet(S(1)/2,-S(1)/2), basis=Jy) == Matrix([0,1])
    assert represent(JyKet(1,1), basis=Jy) == Matrix([1,0,0])
    assert represent(JyKet(1,0), basis=Jy) == Matrix([0,1,0])
    assert represent(JyKet(1,-1), basis=Jy) == Matrix([0,0,1])
    assert represent(JzKet(S(1)/2,S(1)/2), basis=Jy) == sqrt(2)*Matrix([-1,I])/2
    assert represent(JzKet(S(1)/2,-S(1)/2), basis=Jy) == sqrt(2)*Matrix([I,-1])/2
    assert represent(JzKet(1,1), basis=Jy) == Matrix([1,-I*sqrt(2),-1])/2
    assert represent(JzKet(1,0), basis=Jy) == Matrix([-sqrt(2)*I,0,-sqrt(2)*I])/2
    assert represent(JzKet(1,-1), basis=Jy) == Matrix([-1,-sqrt(2)*I,1])/2
    # Jz basis
    assert represent(JxKet(S(1)/2,S(1)/2)) == sqrt(2)*Matrix([1,1])/2
    assert represent(JxKet(S(1)/2,-S(1)/2)) == sqrt(2)*Matrix([-1,1])/2
    assert represent(JxKet(1,1)) == Matrix([1,sqrt(2),1])/2
    assert represent(JxKet(1,0)) == sqrt(2)*Matrix([-1,0,1])/2
    assert represent(JxKet(1,-1)) == Matrix([1,-sqrt(2),1])/2
    assert represent(JyKet(S(1)/2,S(1)/2)) == sqrt(2)*Matrix([-1,-I])/2
    assert represent(JyKet(S(1)/2,-S(1)/2)) == sqrt(2)*Matrix([-I,-1])/2
    assert represent(JyKet(1,1)) == Matrix([1,sqrt(2)*I,-1])/2
    assert represent(JyKet(1,0)) == sqrt(2)*Matrix([I,0,I])/2
    assert represent(JyKet(1,-1)) == Matrix([-1,sqrt(2)*I,1])/2
    assert represent(JzKet(S(1)/2,S(1)/2)) == Matrix([1,0])
    assert represent(JzKet(S(1)/2,-S(1)/2)) == Matrix([0,1])
    assert represent(JzKet(1,1)) == Matrix([1,0,0])
    assert represent(JzKet(1,0)) == Matrix([0,1,0])
    assert represent(JzKet(1,-1)) == Matrix([0,0,1])
Example #23
0
def test_x():
    assert X.hilbert_space == L2(Interval(S.NegativeInfinity, S.Infinity))
    assert Commutator(X, Px).doit() == I * hbar
    assert qapply(X * XKet(x)) == x * XKet(x)
    assert XKet(x).dual_class() == XBra
    assert XBra(x).dual_class() == XKet
    assert (Dagger(XKet(y)) * XKet(x)).doit() == DiracDelta(x - y)
    assert (PxBra(px)*XKet(x)).doit() == \
        exp(-I*x*px/hbar)/sqrt(2*pi*hbar)
    assert represent(XKet(x)) == DiracDelta(x - x_1)
    assert represent(XBra(x)) == DiracDelta(-x + x_1)
    assert XBra(x).position == x
    assert represent(XOp() * XKet()) == x * DiracDelta(x - x_2)
    assert represent(XOp()*XKet()*XBra('y')) == \
        x*DiracDelta(x - x_3)*DiracDelta(x_1 - y)
    assert represent(XBra("y") * XKet()) == DiracDelta(x - y)
    assert represent(XKet() *
                     XBra()) == DiracDelta(x - x_2) * DiracDelta(x_1 - x)

    rep_p = represent(XOp(), basis=PxOp)
    assert rep_p == hbar * I * DiracDelta(px_1 -
                                          px_2) * DifferentialOperator(px_1)
    assert rep_p == represent(XOp(), basis=PxOp())
    assert rep_p == represent(XOp(), basis=PxKet)
    assert rep_p == represent(XOp(), basis=PxKet())

    assert represent(XOp()*PxKet(), basis=PxKet) == \
        hbar*I*DiracDelta(px - px_2)*DifferentialOperator(px)
Example #24
0
def test_represent():
    assert represent(Jz) == hbar*Matrix([[1,0],[0,-1]])/2
    assert represent(Jz, j=1) == hbar*Matrix([[1,0,0],[0,0,0],[0,0,-1]])
Example #25
0
def test_jx():
    assert Commutator(Jx, Jz).doit() == -I*hbar*Jy
    assert qapply(Jx*JzKet(1,1)) == sqrt(2)*hbar*JzKet(1,0)/2
    assert Jx.rewrite('plusminus') == (Jminus + Jplus)/2
    assert represent(Jx, basis=Jz, j=1) == (represent(Jplus, basis=Jz, j=1)+represent(Jminus, basis=Jz, j=1))/2
Example #26
0
def test_represent():
    represent(sx) == Matrix([[0, 1], [1, 0]])
    represent(sy) == Matrix([[0, -I], [I, 0]])
    represent(sz) == Matrix([[1, 0], [0, -1]])
    represent(sm) == Matrix([[0, 0], [1, 0]])
    represent(sp) == Matrix([[0, 1], [0, 0]])
Example #27
0
def test_x():
    assert X.hilbert_space == L2(Interval(S.NegativeInfinity, S.Infinity))
    assert Commutator(X, Px).doit() == I*hbar
    assert qapply(X*XKet(x)) == x*XKet(x)
    assert XKet(x).dual_class() == XBra
    assert XBra(x).dual_class() == XKet
    assert (Dagger(XKet(y))*XKet(x)).doit() == DiracDelta(x - y)
    assert (PxBra(px)*XKet(x)).doit() == \
        exp(-I*x*px/hbar)/sqrt(2*pi*hbar)
    assert represent(XKet(x)) == DiracDelta(x - x_1)
    assert represent(XBra(x)) == DiracDelta(-x + x_1)
    assert XBra(x).position == x
    assert represent(XOp()*XKet()) == x*DiracDelta(x - x_2)
    assert represent(XOp()*XKet()*XBra('y')) == \
           x*DiracDelta(x - x_3)*DiracDelta(x_1 - y)
    assert represent(XBra("y")*XKet()) == DiracDelta(x - y)
    assert represent(
        XKet()*XBra()) == DiracDelta(x - x_2) * DiracDelta(x_1 - x)

    rep_p = represent(XOp(), basis=PxOp)
    assert rep_p == hbar*I*DiracDelta(px_1 - px_2)*DifferentialOperator(px_1)
    assert rep_p == represent(XOp(), basis=PxOp())
    assert rep_p == represent(XOp(), basis=PxKet)
    assert rep_p == represent(XOp(), basis=PxKet())

    assert represent(XOp()*PxKet(), basis=PxKet) == \
           hbar*I*DiracDelta(px - px_2)*DifferentialOperator(px)