I think the content is suitable for those who have learned quantum mechanics in class or who have learned it by themselves. Is it about undergraduate students in science? It is better if you like programming! It's not for people who don't know quantum mechanics at all, so don't be afraid ...
Peeking in Python, not scary quantum mechanics 1: Infinite well-type potential
The infinite well is just like seeing a fixed-end standing wave, which may not have been such a strange result. However, the fact that the energy was quantized (discretized) is alive. It should be.
This time, we will deal with wells with a finite height.
This time again, the stationary Schroedinger equation (eigenvalue equation) should be solved:
H\psi_\ell(x) = \left(-\frac{\hbar^2}{2m}\frac{d^2}{dx^2} + V(x)\right)\psi_\ell(x) = E_\ell\psi_\ell(x)\\
V(x) = \begin{cases}
0 & -\frac{L}{2} < x < \frac{L}{2}\\
V_0 & otherwise
\end{cases}
$-\ frac {L} {2} <x <\ frac {L} {2} $ seems to behave like a free particle. The potential depends on the height, but if the energy of the target is the height of the wall It is common sense in classical mechanics that if the energy is lower than the corresponding energy, it cannot cross the wall.
This time we set $ V_0 = 150 $. The dimensionlessization is $ m = \ hbar = L = 1 $.
It's almost the same as last time, so I'll omit it. Only the definition of potential is different.
Now it's coding. This is also a diversion of the previous one.
import numpy as np
from scipy.integrate import simps, quad
import matplotlib.pyplot as plt
##System settings
L, N = 1, 400
x, dx = np.linspace(-L, L, N), 2 * L / N
##Setting of exercise term
K = np.eye(N, N)
K_sub = np.vstack((K[1:], np.array([0] * N)))
K = dx**-2 * (2 * K - K_sub - K_sub.T)
##Setting the potential term
V = np.diag([150] * (N // 4) + [0] * (N // 2) + [150] * (N // 4))
##Hamiltonian eigenvalue equation
H = K / 2 + V
w, v = np.linalg.eigh(H)
##Three energy eigenvalues from the bottom
print(w[:3])
##Normalization of analytical solutions
A = 835.7
B = quad(lambda x: (A * np.exp(17.09 * x))**2, a = -np.inf, b=-L/2)[0]
B += quad(lambda x: (np.cos(2.815 * x))**2, a = -L/2, b = L/2)[0]
B += quad(lambda x:(A * np.exp(-17.09 * x))**2, a = L/2, b = np.inf)[0]
B = B**0.5
##plot
plt.plot(x, np.abs(v.T[0] / simps(v.T[0]**2, x)**0.5), label="ground state")
plt.plot(x, v.T[1] / simps(v.T[1]**2, x)**0.5, label="1st excited state")
plt.plot(x, v.T[2] / simps(v.T[2]**2, x)**0.5, label="2nd excited state")
plt.plot(x, np.cos(2.815 * x) / B, '--', label="analytical : cos(kx)")
plt.plot(x, A * np.exp(-17.09 * x) / B, '--', label="analytical : exp(-kappa x)")
plt.plot(x, A * np.exp(17.09 * x) / B, '--', label="analytical : exp(kappa x)")
plt.show()
For numerical calculation, just change the potential a little. $ A and B $ are the coefficients of the analytical solution. It will be described later.
When calculated, the eigenvalues are $ E_0 = 3.96, E_1 = 15.7, E_2 = 35.3 $, respectively, and ** the wavefunction oozes into the wall, even though it has energies that are clearly below the potential. This is the so-called tunnel effect. **
Looking at the graph, it seems that the high excited state exudes more, but if we accept the exudation of the wavefunction as a fact, it is a natural result.
Then, the reason why the wave function exudes is that the momentum $ p $, and thus the kinetic energy, is due to the uncertainty relation [^ 1] $ \ Delta x \ Delta p \ geq \ frac {\ hbar} {2} $. In other words, when observing the momentum, it has a fluctuation of about $ \ Delta p $ around the expected value $ \ angle p \ rangle $, and the momentum larger than the result $ \ angle p \ rangle $. It can have [^ 2]. This shows the possibility of exceeding the potential of the well.
And if you ask, "Can we have more fluctuations than $ \ Delta p $?", It's possible. $ \ Delta x $ is $ x $-display, $ \ Delta p $ is $ p $-display. It corresponds to the width of the wave packet of the wavefunction, and there is a small probability that it will exceed that width. Therefore, it should exceed $ \ frac {(p + \ Delta p) ^ 2} {2m} $. Exudation will occur even if you prepare a good well.
It's a little confusing. I think this is the "conceptual wall".
Separate damping part on the outside and free part on the inside of the well
\psi(x) = \begin{cases}
Ae^{\kappa x} & x < -\frac{L}{2}\\
\cos(kx)\ \ \ {\rm or}\ \ \sin(kx) & -\frac{L}{2} < x < \frac{L}{2}\\
Ae^{-\kappa x} & \frac{L}{2} < x
\end{cases}
Normalization is ignored this time. This time, let's consider the base $ \ cos (kx) $. The connection condition [^ 3] at these $ x = -L / 2, L / 2 $ By imposing
\kappa = k\tan\frac{k}{2}, \hspace{1cm} k^2 + \kappa^2 = 2V_0 = 300
$ K, \ kappa $ and $ A $ are determined by obtaining the simultaneous equations. This becomes a transcendental equation thanks to $ \ tan (k / 2) $ and cannot be solved analytically. , There is no choice but to rely on numerical calculation. If the problem of normalization is solved further, it becomes like the broken line in the above figure. The definition area of the broken line is intentionally set to the whole area. The triangular function and the exponential function cross over at the wall. You can see that it is connected smoothly.
I just want to solve the eigenvalue equation, but it's quite complicated.
This time, I dealt only with the bound state. The scattered state is not very compatible with numerical calculation because the boundary condition is such that the wave function becomes a plane wave at infinity. If it is handled, it covers a very large space. You need to prepare and see only a part of it. ** The scattering state is not L2 (Hilbert space) in the first place. ** This can be used when discussing the ratio of wave functions, but in terms of stochastic interpretation. In addition to the suspicious discussion, ** I am faced with the peculiar grief of quantum theory of divergence of physical quantities [^ 4]. ** If you try to calculate $ \ Delta x $, you will understand immediately. [^ 5].
An equation that cannot be solved analytically has come out. If it is a numerical solution, it is a good idea to throw it in the dichotomy or Newton's method, but this time in Wolfram Alpha Let's leave it to me. He's the son of Mathematica:
Besides, you can do calculations similar to Mathematica. A little heavy calculation will get stuck in Standard Computation Time Exceeded, but it's practical enough. Pro version probably has no time limit. Monthly fee is also common sense. I think it was a good price.
It works like Tex, Python, or Mathematica (Wolfram language). This is amazing. The above example doesn't have a very unified writing style. Hmm.
SymPy also does the analytical calculations, but if it can't be solved analytically like this time, it returns an error. On the other hand, Wolfram Alpha gives a numerical solution. In addition, it also outputs a graph.
Personally, I would like SymPy to do its best, but at the moment I feel that Wolfram Alpha is too good to compete. If you are worried that Mathematica is too expensive, please use it. is.
[^ 1]: Often referred to as the "uncertainty principle", which is derived from the canonical commutation relation $ [x, p] = i \ hbar $, which is not very appropriate to call it the principle. I think.
[^ 2]: Of course it can be small.
[^ 3]: Differentiable at $ x = -L / 2, L / 2 $. In other words, continuous and smooth.
[^ 4]: In quantum field theory, this kind of divergence problem appears everywhere in the form of "ultraviolet divergence". To avoid this, a renormalization theory was born.
[^ 5]: When the wave function is a plane wave, $ \ Delta p = 0 $. This indicates that the plane wave is an eigenstate of momentum. Since the momentum is fixed, the fluctuation of the position is of course divergent. I will.
Recommended Posts