Hi!

Thanks for the clear explanation!

On Fri, Nov 4, 2011 at 1:27 AM, Brian Granger <[email protected]> wrote:

> Ugur,
>
> Welcome!
>
> 2011/11/3 Uğur Güney <[email protected]>:
> > Dear Sympy users,
> > I'm a physics PhD student, doing research on differences between
> classical
> > and quantum correlations.
> > I was in need of a simple calculator which works with quantum states etc.
> > While searching for quantum simulators in Python I came to know that
> there
> > is already a quantum module in SymPy. Because I couldn't find an explicit
> > documentation I looked at the source files to understand how basic
> > calculations can be done using the quantum module.
>
> Great, currently this is the best way to learn about how it all works.
>
> > Can you please help me in applying a projection operator on a general
> state.
> > This is the code that I tried:
> > from sympy import *
> > from sympy.physics.quantum import *
> > from sympy.physics.quantum.qubit import *
> > [c00,c01,c10,c11]=var('c00,c01,c10,c11')  # coefficients
> > state = c00*Qubit('00')+c01*Qubit('01')+c10*Qubit('10')+c11*Qubit('11') #
> > most general two-qubit state
> > qbt=Qubit('01') # a qubit
> > proj = qbt*qbt.dual # projection operator
> > # proj*state # operator applied on the state
>
> The following will work:
>
> qapply(proj*state)
>
> The need for qapply ("quantum apply") is as follows.  Because of how
> python/sympy handle multiplication, we are only able to detect inner
> products in very simple situations like Qubit('01').dual*Qubit('01').
> For more complex situations, we just leave it as a general
> "multiplication" operation.  The qapply function walks through a
> general quantum expression and does a couple of things:
>
> * Applies any operators to states.
> * Looks for <bra|*|ket> expressions and turns them into inner products.
>
> This is why you need to call qapply by hand after creating a general
> quantum expression.
>

Now I realized that even the simplest calculation that is made with pencil
and paper involves these kind of background processes that we
do unconsciously. Dirac notation is too intuitive for a computer. :-)


> Hope this helps.  Also, we would love to know how you end up using
> this stuff.  It is pretty new, so there is a ton left to do.  Also, if
> you are looking at classical/quantum correlations, you may be
> interested in the work we have done on density matrices.  That has not
> yet been merged into sympy's master branch, but we plan on doing
> that....always looking for help.
>

Thanks! OK, I will inform the group about how and where I used Sympy. I'll
definitely look at density matrices because I want to work on both pure
states and mixed states.

vug


> Cheers,
>
> Brian
>
> > # (proj*state).expand() operator applied on each term in the expansion
> > print (proj*state).expand().doit() # try to do the inner-products
> > In the last step "doit()" did not work as I expected, it did not do the
> > inner products. I suspect that the expression involving TensorProduct is
> not
> > converted to InnerProduct automatically. But normally
> > "(Qubit('01').dual*Qubit('01')).doit()" and
> > "(Qubit('00').dual*Qubit('01')).doit()" work as expected and give 1 and
> 0.
> > I'll be happy if you can guide me how to use this beautiful tool.
> > Best,
> > ugur guney
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "sympy" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected].
> > For more options, visit this group at
> > http://groups.google.com/group/sympy?hl=en.
> >
>
>
>
> --
> Brian E. Granger
> Cal Poly State University, San Luis Obispo
> [email protected] and [email protected]
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/sympy?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to