where the Hamiltontial $H = T + V$ is defined as
\begin{align} H &= \frac{-\hbar^2}{2m}\frac{\partial^2}{\partial x^2} + \frac{1}{2} k x^2 \end{align}The wavefunction $\psi_n$ can be shown to be:
\begin{align} \psi_n &= N_n H_n \left(\frac{x}{\alpha}\right) e^{- \frac{x^2}{2 \alpha^2}} \end{align}with
\begin{align} \alpha &= \left( \frac{\hbar^2}{m k} \right) \\ N_n &= \frac{1}{\sqrt{\alpha \pi^{1/2} 2^n n!}} \end{align}and the energy $E_n = \hbar \omega \left(n + \frac{1}{2}\right)$ where $\omega = \sqrt{\frac{k}{m}}$ and $n$ is a non-negative integer number.
$H_n$ is a Hermite polynomail, you'll learn more on them in the following exercise
The first two hermite polynomials are given by
\begin{align} H_0(x) &= 1 \\ H_1(x) &= 2x \end{align}The rest of the Hermite polynomials can be found using the recursion relation \begin{align} H_{n+1}(x) = 2xH_n(x) - 2 n H_{n-1}(x) \end{align}
Eg. to find $H_{2}$ insert $n=1$ in the formula above and you get
\begin{align} H_2(x) = 2xH_1(x) - 2 H_{0}(x) = 4x^2 - 2 \end{align}Make a function that generates the Hermite Polynomials. Using the recursion relation shown above.
To do this exercise do you need to make a recursive function, a recursive function is a function that calls itself untill a certain stop condition has been met. To read more about them check out https://www.programiz.com/python-programming/recursion or the internet.
To help you get started on this exercise use the following as a blue print.
# To get started use the following as a blueprint
def hermite_polynomial(n, x):
if n == 0:
return 1
if n == 1:
return 2*x
else:
return # Fill this in with the recursion relation
# Using sympy you can print out the result and compare it to the analytical solution
# that can be found on ExplainEverything WEXLRXLP
import sympy as sp
x = sp.symbols('x')
hermite_polynomial(2, x)
Using the hermite polynomials function you made above, define the wavefunction for the Harmonic oscillator.
Check if the wavefunction is ortonormal, i.e.,
\begin{align} \int_{-\infty}^\infty |\psi_n(x)|^2 dx &= 1 \\ \int_{-\infty}^\infty \psi_n^*(x)\psi_m(x) dx &= 0 \end{align}
Hint: I recommend that sympy is used to complete the rest of the exercises
Hint 2: To integrate from $\int_{-\infty}^\infty f(x) dx $ with sympy
sp.integrate(f(x), (x, -sp.oo, sp.oo))
def wavefunction(n, m, k, x):
""" n : the wave number
m : Mass of the partice
k : Spring costant
x : position of the particle
"""
return
Step 1:
Plot the potential $V(x) = \frac{1}{2} k x^2$
Step 2:
Plot the potential $V(x)$ together with some energy levels of $E_n = \hbar \omega \left(n + \frac{1}{2}\right)$
Step 3:
Plot the potential $V(x)$ together with $|\psi_n|^2$ for a few values of $n$. What happens when $n$ becomes large?
In the lecture on the virial theorem expectation values
\begin{align} \langle x \rangle &= 0 \\ \langle x^2 \rangle &= \hbar \omega (n + 0.5)/k \\ \langle p \rangle &= 0 \\ \langle p^2 \rangle &= m \hbar \omega (n + 0.5) \end{align}using physical intuition and the Virial theorem. Here I want you to make functions that calculates these by brute force.
That is, \begin{align} \langle x \rangle &= \langle \psi_n|x|\psi_n\rangle \\ \langle x^2 \rangle &= \langle \psi_n|x^2|\psi_n\rangle \\ \langle p \rangle &= \langle \psi_n|p|\psi_n\rangle \\ \langle p^2 \rangle &= \langle \psi_n|p^2|\psi_n\rangle \\ \end{align}
Hint: $\langle \psi_n |a|\psi_n\rangle = \int_{-\infty}^{\infty} \psi_n^*(x)a\psi_n(x) dx$
Hint 2: To differentiate twice in sympy use
sp.diff(f(x), x, 2)
def expectation_x(n, m, k):
return
def expectation_x_squared(n, m, k):
return
def expectation_p(n, m, k):
return
def expecation_p_squared(n, m, k):
return
In [ ]: