This post right now is just a quick update with an example python session showing the cool things we can do in represent now, after a very hectic week of code writing. I’m currently in the process of finalizing things in the way that represent works, so I will post a much more detailed post at some point later, but right now I just want to show that we can actually do quantum mechanics in continuous bases! (In this case, with the particle in a box system).
Here is an example python session with notes on the output:
>>> from sympy.physics.quantum import * >>> from sympy.physics.quantum.piab import * >>> wf = represent(PIABKet()) >>> wf Wavefunction(2**(1/2)*(1/L)**(1/2)*sin(pi*n*x_1/L), (x_1, 0, L)) >>> wf.norm 1
We get a particle-in-the-box Wavefunction when it is represented and it’s properly normalized.
>>> represent(XOp()*PIABKet()) Wavefunction(2**(1/2)*x_2*(1/L)**(1/2)*sin(pi*n*x_2/L), x_2)
We now get a wavefunction with an extra factor of x!
>>> represent(PxOp()*PIABKet(), basis=XKet) Wavefunction(-2**(1/2)*hbar*I*pi*n*(1/L)**(1/2)*cos(pi*n*x_2/L)/L, x_2)
The PxOp actually takes the derivative of the wavefunction correctly! (Momentum operators in the position basis are differential operators).
>>> represent(PIABBra()*XOp()*PIABKet(), basis=XKet) 0
Here, we insert two unities. The first one integrated collapses a delta function, but the second one integrated actually computes the expectation value of x for the particle-in-a-box wavefunction (which is what you expect from representing <psi|X|psi>).
EDIT: As you’ll see in the comments, Raoul pointed out that this is actually incorrect, and I will be looking into it!
There are still a few kinks being worked out, but we’re very close to having a nice finished product which is why I am reserving a longer post for tomorrow. I am quite pleased with the results we’re seeing so far though!
Filed under: Uncategorized