That was fantastic, and it was just at my level (perpetual undergraduate, now age 71). I did a lot of masses-and-springs realtime animation for fun, starting in Berkeley when I really was an undergrad, and continuing for years after on my own, so I'm very familiar with the concepts of discrete space and time. I particularly liked where you put the units back in! I just never really got around to doing that. And by the way, when I tried to visualize the Schrodinger equation instead of the classical harmonic oscillator, at that time I did not understand that setting the initial conditions had to be done carefully to avoid a jumble of mixed eigenstates evolving at different frequencies. In the Schrodinger case I could not tame that to get a nice-looking time evolution, so I put it aside and have only done a few plots of that in Mathematica over the years. Thanks so much for putting up these videos. They are perfect from my personal point of view.
Could you make a video using ML in physics problems soon? That would be really interesting. Amazing work so far tho. Keep it up! Looking forward to all future content as they help me with using python for physics.
Does your wavefunctions preserve total probability at each time step? It seems like when you have large peaks in the center, they do not, but it is hard to tell. Just by eye This simplest version of the Euler method is likely to have numerical instabilities, especially with loss of unitarity. In principle, the eigenstate method should not, but because of the hard walls, once the energy eigenstates have reasonable weight in the outer region, the approximation as a solution of the Gaussian potential starts to fail. There are ways to handle the infinite tails as well, instead of forcing them into the box as you have done. As long as you do not occupy very high energy states it should be ok. So, I am guessing the small step sizes you take are needed to get reasonable accuracy for the problems you looked at. It is a lot of time steps.
Amazing. There must be a upper limit for m and L beyond which the QM would "break down"? Say, m is the mass of the sun and L the 'size' of the solar system. The classical QM interpretation suggests the sun is only there if you look at it.
Many thanks for your great and useful videos. I think there is a mistake in your compute_psi fonction. To normalize psi[t+1] shoudn't you divide by np.sqrt(normal) instead of dividing by normal ?
wait if this about probability density function (PDF), as |psi(x)|^2. isn't the total PDF should be 1? but here the graph shows more than 1? i don't understand the concept sorry
How do you code the time step in finite difference for more dimensions: In one u say is : psi[t][i] + 1j/2 * dt/dx**2 * (psi[t][i+1] - 2*psi[t][i] + psi[t][i-1]) . And if there is kinetic energy move, does it appear on time step function or there is no need because it is implicit in the initial PSI gaussian wave packet ?
Hello..I am a PhD student in physics from Iraq..I hope you can help me find codes in the Python program to study the Fe(II)particle (ising model 2D)to determine the spin crossover of the electrons and find the energy..with many thanks to you.
No, I don't think so. Essentially, when normalizing a wave function you divide by < psi | psi >, which in the discrete position space we use here becomes a sum over all the wave functions times their complex conjugate. So, it's something like sum(psi * psi_cc) with psi_cc being the complex conjugate of psi. But the argument of the sum is exactly the definition of the absolute square, which is used in [12].
Nice video. You are my new hero..... a big thank you for this excellent explanation. I just subscribe a few seconds ago to your channel. Do you have some python or pseudocode about Maxwell Field equations? Thank you in advance...
Peace be upon you Oh teacher Professor I have a question if you can help me I will be grateful Let's say we have a series made up of : X=[(n/1),(n/2),(n/3),..., (n/n)] How do I tell Python to get me natural numbers (meaning non-fractional numbers) from this series if the value of n=100
I know it's more than a year ago but I had a few minutes :D n = 100 x = [] for i in range(n): x.append(n/(i+1)) if x[i] % 1 == 0: print(x[i]) That's the simplest way I found :D
Would you be interested in being on a team that develops entertaining and passively educational videogames? I've got a pitch and I need someone with a skillset like yours if I can get funding.
That was fantastic, and it was just at my level (perpetual undergraduate, now age 71). I did a lot of masses-and-springs realtime animation for fun, starting in Berkeley when I really was an undergrad, and continuing for years after on my own, so I'm very familiar with the concepts of discrete space and time. I particularly liked where you put the units back in! I just never really got around to doing that. And by the way, when I tried to visualize the Schrodinger equation instead of the classical harmonic oscillator, at that time I did not understand that setting the initial conditions had to be done carefully to avoid a jumble of mixed eigenstates evolving at different frequencies. In the Schrodinger case I could not tame that to get a nice-looking time evolution, so I put it aside and have only done a few plots of that in Mathematica over the years.
Thanks so much for putting up these videos. They are perfect from my personal point of view.
This video single-handedly saved a big chunk of my undergrad thesis. Thanks a lot for all the efforts you put in to make these wonderful videos!
Same here, I am following his videos for my thesis
same here, btw if you don't mind can you share your thesis. i just want to refer and validate my work
Absolutely great videos! Keep it up please! It would be cool to see 2D version of time-dependent Schrodinger equation as well
Definitely at some point in the near future!
Thanks for putting this out there. It's good that you used two different methods so as to use one to check the other.
How can someone put so much effort into a one video?
The best of the best!!!
Keep it up!!
You're rap is on fire and supercool in the same state.
Could you make a video using ML in physics problems soon? That would be really interesting. Amazing work so far tho. Keep it up! Looking forward to all future content as they help me with using python for physics.
Thanks i was needing this for a project.
Very good tutorial! Thank you!
Schrodinger rap is wild haha
Does your wavefunctions preserve total probability at each time step? It seems like when you have large peaks in the center, they do not, but it is hard to tell. Just by eye This simplest version of the Euler method is likely to have numerical instabilities, especially with loss of unitarity. In principle, the eigenstate method should not, but because of the hard walls, once the energy eigenstates have reasonable weight in the outer region, the approximation as a solution of the Gaussian potential starts to fail. There are ways to handle the infinite tails as well, instead of forcing them into the box as you have done. As long as you do not occupy very high energy states it should be ok. So, I am guessing the small step sizes you take are needed to get reasonable accuracy for the problems you looked at. It is a lot of time steps.
Please share some of numerical problems on Time dependent Schrodinger wave equation. Thanks
Amazing. There must be a upper limit for m and L beyond which the QM would "break down"? Say, m is the mass of the sun and L the 'size' of the solar system. The classical QM interpretation suggests the sun is only there if you look at it.
You used linear superposition method in the second method. How many wave functions you superposed?
Thanks for this! Do u know of John L. Richardson's 1990s Java_Applet simulations of quantum scattering?
Many thanks for your great and useful videos. I think there is a mistake in your compute_psi fonction. To normalize psi[t+1] shoudn't you divide by np.sqrt(normal) instead of dividing by normal ?
really helpful.. thanks a lot!!
wait if this about probability density function (PDF), as |psi(x)|^2. isn't the total PDF should be 1? but here the graph shows more than 1? i don't understand the concept sorry
How do you code the time step in finite difference for more dimensions: In one u say is : psi[t][i] + 1j/2 * dt/dx**2 * (psi[t][i+1] - 2*psi[t][i] + psi[t][i-1]) . And if there is kinetic energy move, does it appear on time step function or there is no need because it is implicit in the initial PSI gaussian wave packet ?
What boundary conditions did you use ?
Nice work.could please do some videos on boundary element methods?thanks in advance
How about Bloch's theorem? Good work!
Could a 2 dimensional space version be done with matplotlib with the x, z axis as space and y axis as probability density?
I mean i don't know if that's useful to study, but it would look very cool with the colormap parameter
How can I make this 3d for a small system of a neutral hydrogen atom (a proton and an electron)?
could you recommend a computational chemistry textbook which covers basic of computation then goes to advance computation?
Don’t you need to keep in mind that psi * conjugate( psi ) = 1 when integrated over all of space?
can you do a video on 1D and 2D DVR method also? particularly on a quantum dynamics problem?
Hey... Can you guide me about how to extract the velocity of wavefunction using its angle?
Awesome work! is it possible to parallelize the code using MPI and without using numba??
Why are we not considering the units of the wavefunction?
Won‘t the wavefunction After some time reach a stationary state again?
Hello..I am a PhD student in physics from Iraq..I hope you can help me find codes in the Python program to study the Fe(II)particle (ising model 2D)to determine the spin crossover of the electrons and find the energy..with many thanks to you.
Shouldn't In [12] of your jupyter notebook change?
psi[t+1][i] = psi[t+1][i]/normal
be
psi[t+1][i] = psi[t+1][i]/normal**0.5
instead?
No, I don't think so. Essentially, when normalizing a wave function you divide by < psi | psi >, which in the discrete position space we use here becomes a sum over all the wave functions times their complex conjugate. So, it's something like sum(psi * psi_cc) with psi_cc being the complex conjugate of psi. But the argument of the sum is exactly the definition of the absolute square, which is used in [12].
How about doing the Dirac equation for Hydrogen Atom and then Helium Atom?
BTW - Your videos are Awesome!
por que no me hace la animacion?
Mr p the discoed invite is expired. Can u reshare a new one
Fixed. Let me know if there are any issues
Nice video. You are my new hero..... a big thank you for this excellent explanation. I just subscribe a few seconds ago to your channel. Do you have some python or pseudocode about Maxwell Field equations? Thank you in advance...
Hi, pls could you solve reaction-diffusion and reaction-cross-diffusion PDEs in Python?:) Maybe a system of them in 1D?
Thanks pal!
Man, this guy is handsome.
Peace be upon you Oh teacher
Professor I have a question if you can help me I will be grateful
Let's say we have a series made up of :
X=[(n/1),(n/2),(n/3),..., (n/n)]
How do I tell Python to get me natural numbers (meaning non-fractional numbers) from this series if the value of n=100
I know it's more than a year ago but I had a few minutes :D
n = 100
x = []
for i in range(n):
x.append(n/(i+1))
if x[i] % 1 == 0:
print(x[i])
That's the simplest way I found :D
Imagine this guy meeting andrew dotson
I will watch your rapping career with great interest.
Sorry, psi0 IS already normalized
smh, implying Schrödinger didn't get any. That man was a player on par with Feynman.
Basically had two wives right? And my comment was purely about Schrodinger's cat ;)
nice
And psi0 should also be normalized.
Emmanuel
Would you be interested in being on a team that develops entertaining and passively educational videogames? I've got a pitch and I need someone with a skillset like yours if I can get funding.
Would you date a girl who doesnt know shit about Physics?
There is little correlation between your knowledge of physics and your worth as a human being.
A very bad choice of numerical methods. No one uses them in practice because they are neither accurate nor stable.
psi_js.T@(cs*np.exp(-1j*E_js*t))
how this work ?
@ is the symbol for matrix multiplication, it's a way of doing the sum efficiently in Python.
Great Video! thanks a lot