Galileo prime number gravity stuff

edit

Drafts

edit

Alexander Unzicker

Fling (social network)

QuTip

edit

History

edit

The idea for the QuTip project was conceived in 2010 by PhD student Paul Nation, who decided to create a python package similar to the quantum optics toolbox for MATLAB. As a postdoctoral fellow, at the RIKEN Institute in Japan, he met Robert Johansson and the two worked together on the package[1]. In contrast to its predecessor qotoolbox, which relies on the proprietary MATLAB environment, it was published under an open source license and is continually updated by a large community of contributors.

Examples

edit

Creating quantum objects

edit
>>> import qutip 
>>> import numpy as np
>>> psi=qutip.Qobj([[0.6],[0.8]]) # create quantum state from a list
>>> psi
Quantum object: dims = [[2], [1]], shape = (2, 1), type = ket
Qobj data =
[[0.6]
 [0.8]]
>>> phi=qutip.Qobj(np.array([0.8,-0.6])) # create quantum state from a numpy-array
>>> phi
Quantum object: dims = [[2], [1]], shape = (2, 1), type = ket
Qobj data =
[[ 0.8]
 [-0.6]]
>>> e0=qutip.basis(2,0) # create a basis vector
>>> e0
Quantum object: dims = [[2], [1]], shape = (2, 1), type = ket
Qobj data =
[[1.]
 [0.]]
>>> A=qutip.Qobj(np.array([[1,2j],[-2j,1]])) # create quantum operator from numpy array
>>> A
Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = True
Qobj data =
[[1.+0.j 0.+2.j]
 [0.-2.j 1.+0.j]]
>>> qutip.sigmay() # some common quantum objects, like pauli matrices, are predefined in the qutip package
Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = True
Qobj data =
[[0.+0.j 0.-1.j]
 [0.+1.j 0.+0.j]]

Basic operations

edit
>>> A*qutip.sigmax()+qutip.sigmay() # we can add and multiply quantum objects of compatible shape and dimension
Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False
Qobj data =
[[0.+2.j 1.-1.j]
 [1.+1.j 0.-2.j]]
>>> psi.dag() # hermitian conjugate
Quantum object: dims = [[1], [2]], shape = (1, 2), type = bra
Qobj data =
[[0.6 0.8]]
>>> psi.proj() # projector onto a quantum state
Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = True
Qobj data =
[[0.36 0.48]
 [0.48 0.64]]
>>> A.tr() # trace of operator
2.0
>>> A.eigenstates() # diagonalize an operator
(array([-1.,  3.]), array([Quantum object: dims = [[2], [1]], shape = (2, 1), type = ket
       Qobj data =
       [[-0.70710678+0.j        ]
        [ 0.        -0.70710678j]]                                  ,
       Quantum object: dims = [[2], [1]], shape = (2, 1), type = ket
       Qobj data =
       [[-0.70710678+0.j        ]
        [ 0.        +0.70710678j]]                                  ],
      dtype=object))
>>> (1j*A).expm() # matrix exponential of an operator
Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False
Qobj data =
[[-0.2248451-0.35017549j -0.4912955-0.7651474j ]
 [ 0.4912955+0.7651474j  -0.2248451-0.35017549j]]
>>> qutip.tensor(qutip.sigmaz(),qutip.sigmay()) # tensor product
Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = True
Qobj data =
[[0.+0.j 0.-1.j 0.+0.j 0.+0.j]
 [0.+1.j 0.+0.j 0.+0.j 0.+0.j]
 [0.+0.j 0.+0.j 0.+0.j 0.+1.j]
 [0.+0.j 0.+0.j 0.-1.j 0.+0.j]]

Time evolution

edit
>>> Hamiltonian=qutip.sigmay()
>>> times=np.linspace(0,2,10)
>>> result=qutip.sesolve(Hamiltonian,psi,times,[psi.proj(),phi.proj()]) # unitary time evolution of a system according to schroedinger equation
>>> expectpsi,expectphi=result.expect # expectation values of projectors onto psi and phi 
>>> plt.figure(dpi=200)
>>> plt.plot(times,expectpsi)
>>> plt.plot(times,expectphi)
>>> plt.legend([r"$\psi$",r"$\phi$"])
>>> plt.show()
 
results of a simulation of a simple quantum system using qutip

Simulating a non-unitary time evolution according to the Lindblad Master Equation is possible with the qutip.mesolve function [2]


References

edit
  1. ^ Tobias Macey (24 September 2017). "QuTiP with Paul Nation - Episode 128" (Podcast). Podcast.__init__. Event occurs at 6:15. Retrieved 10 August 2022.
  2. ^ "Lindblad Master Equation Solver". Retrieved 2022-07-24.