In quantum mechanics, particles are represented by ‘wave functions’, wavy entities that are extended in space. The square modulus of the wave at any location gives the probability density of finding the particle at that location. The behavior of the waves is given by the time-dependent Schrödinger equation – a wave equation that describes how the waves evolve in time.
Interpreting quantum mechanics is a notoriously abstract and subtle business; much discussion exists regarding the ontological status of the waves, as well as their connection to the point-like particles we observe in actual experiments – we never observe waves, only particles (this is related to the so-called ‘measurement problem’). We won’t look at measurements in this series of posts – instead we will only consider the time evolution of quantum mechanical systems while they are not measured. This evolution is wave-like and fully deterministic, and it can be readily visualized, which may help us to understand it more intuitively.
We can do this by concocting an initial wave configuration and then solving the wave equation using a computer, plotting the evolving wave at each moment in time. Stitching the resulting plots together into an animation then yields a visual picture of the quantum mechanical process we are examining.
In this series of posts, I will describe and publish the C++ code I have developed for this purpose. In this first entry I’ll have an introductory look at solving the time-dependent Schrödinger equation (TDSE), which determines the time evolution of an initial wave function , along with some examples.
Mathematical description of a one-particle system
The TDSE reads as follows:
where is the reduced Planck constant and the Hamiltonian. The wave function is a complex-valued function of position and time , i.e. a field of complex numbers that evolves with time. Let’s consider a specific, simple quantum mechanical system: a spinless particle subject to a potential . Dropping the explicit dependence of and , we have
where is the particle’s mass. The necessary ingredients for solving this equation are:
- The particle’s initial wave function, .
- The potential in which the particle finds itself, .
Equation (1) itself can then be discretized and solved numerically, for example by using a simple Euler scheme:
Thus, to evolve the wave function in time, we act on it with the operator , multiply the result with , add it to the wave function, and repeat. In practice, the Euler scheme is not a very good choice, because it tends to be unstable for all but the smallest time increments – I actually use a 4th order Runge-Kutta scheme (more on this in the next blog post!)
I. A coherent state of the quantum harmonic oscillator
As a first example, let’s look at the time evolution of a coherent state of the harmonic oscillator (for a refresher on coherent states, see this University of Virginia page). The initial wave function is a Gaussian packet that is displaced from the center of the potential and centered at ;
where represents the oscillation frequency. The potential is given by
Plugging these expressions into equation (1) and solving that equation numerically yields the time evolution of the coherent state. After each time step, we plot the wave function; finally we create an animation by playing the plots in sequence.
The wave function assigns a complex number (probability amplitude) to each point in space. We’ll plot the wave function as follows; the hue of each pixel represents the complex phase, while the intensity represents the complex amplitude. The potential, meanwhile, is plotted in white (the higher the potential, the brighter the pixel).
Let’s look at the result:
As you can see, the wave packet of the coherent state retains its exact shape indefinitely – only its phase changes. It is the closest thing in quantum mechanics to a classical particle oscillating back and forth.
II. The double-slit experiment
The coherent state and its temporal evolution have actually been solved analytically. A more interesting example, which is impossible to solve analytically, is the famous double-slit experiment. To recreate it numerically, let’s construct a suitable wave function; we want it to be localized (suggesting a Gaussian packet once again) as well as in a state of motion toward the two slits. To accomplish this we will modulate the Gaussian packet’s complex phase, giving it a non-zero momentum:
Here determines the width of the Gaussian packet and determines its momentum. The next step is to model the wall containing the two slits using . The potential in this case is flat almost everywhere, representing a force-free vacuum, except at a thin, impenetrable boundary, plotted in red, where the potential is very steep everywhere except for two omissions (the slits). The boundary consists of many Gaussian packets (yet again) in a row; in my experience this works better than a step function potential, whose sharp edges can cause numerical issues.
Most of the particle’s wave function is reflected by the barrier – just like most ping pong balls would be, if the wave function were a diffuse cloud of ping pong balls approaching a wall with 2 small slits.
Parts of the wave function, however, propagate through the slits and radiate outward as if from point sources. At the places where these two ’emissions’ begin to overlap, we see the characteristic interference pattern appear (visible as dark lines radiating out from midway between the slits).
III. Wheeler’s delayed choice experiment/Mach-Zehnder interferometer
As a final example, let’s look at another famous quantum mechanical experiment; the Mach-Zehnder interferometer, also known as the “delayed choice experiment” made famous by Wheeler. We start with the same as before (a phase-modulated Gaussian packet), but this time, the potential consists of three separate barriers; two are impenetrable (acting as mirrors) while one is semi-transparent (acting as a glass sheet, reflecting part of the wave function and transmitting the rest).
The idea here is that one can choose to place a measuring device at either 1) the place where the two wave packets overlap, or 2) further down the wave packets’ paths (where they no longer overlap). In the former case, we will observe an interference pattern, indicating that the particle somehow ‘took both paths and interfered with itself’, i.e. we observe its wave nature; in the latter, we observe either a particle that seems to have been deflected by the upper mirror or a particle that seems to have been deflected by the lower mirror, and it is said we have observed its particle nature.
Wheeler went so far as to say “The present choice of the mode of observation … should influence what we say about the past… The past is undefined and undefinable without observation.”
Now, I actually don’t agree with this description (and thus Wheeler’s interpretation of his own experiment). For, as we see in the video, the process is not mysterious at all; there is no need for the particle to make any ‘decisions’, no matter where we place the detection apparatus or when we choose to do so. Its wave function always evolves according to the Schrödinger equation until a measurement is made, and all observations are faithfully reproduced. It makes no sense to speak of observing either the wave nature or the particle nature of the particle, because it displays neither – the behavior of the particle is always quantum mechanical, no matter how (or whether) we choose to observe it!
As a final, philosophical remark, I imagine that Bohr would probably not have approved of any of the interpretations presented above. He famously said “there is no quantum world”, meaning that all we have is a set of computational tools with which to predict readouts on lab instruments; a recipe or algorithm for predicting experimental results. What we do NOT have, according to Bohr, is a picture or ontological model of the subatomic world itself. So, to him, all that these videos represent is a visualization of a useful recipe with which to predict the behavior of particle detectors (which behave classically) in a certain experimental setup. Not everyone agrees with this; to some physicists, the wave function itself is a ‘real’ entity, i.e. it has an ontological status.
For much more on this subject, see Chapter 2, and chapter 6, section 8 in Bohm & Hiley’s book ‘The Undivided Universe’.
In the next blog post I will describe the C++ code used to create the videos presented here, and discuss the specific numerical algorithms I used.