| from sympy.core import S, pi, Rational |
| from sympy.functions import hermite, sqrt, exp, factorial, Abs |
| from sympy.physics.quantum.constants import hbar |
|
|
|
|
| def psi_n(n, x, m, omega): |
| """ |
| Returns the wavefunction psi_{n} for the One-dimensional harmonic oscillator. |
| |
| Parameters |
| ========== |
| |
| n : |
| the "nodal" quantum number. Corresponds to the number of nodes in the |
| wavefunction. ``n >= 0`` |
| x : |
| x coordinate. |
| m : |
| Mass of the particle. |
| omega : |
| Angular frequency of the oscillator. |
| |
| Examples |
| ======== |
| |
| >>> from sympy.physics.qho_1d import psi_n |
| >>> from sympy.abc import m, x, omega |
| >>> psi_n(0, x, m, omega) |
| (m*omega)**(1/4)*exp(-m*omega*x**2/(2*hbar))/(hbar**(1/4)*pi**(1/4)) |
| |
| """ |
|
|
| |
| n, x, m, omega = map(S, [n, x, m, omega]) |
| nu = m * omega / hbar |
| |
| C = (nu/pi)**Rational(1, 4) * sqrt(1/(2**n*factorial(n))) |
|
|
| return C * exp(-nu* x**2 /2) * hermite(n, sqrt(nu)*x) |
|
|
|
|
| def E_n(n, omega): |
| """ |
| Returns the Energy of the One-dimensional harmonic oscillator. |
| |
| Parameters |
| ========== |
| |
| n : |
| The "nodal" quantum number. |
| omega : |
| The harmonic oscillator angular frequency. |
| |
| Notes |
| ===== |
| |
| The unit of the returned value matches the unit of hw, since the energy is |
| calculated as: |
| |
| E_n = hbar * omega*(n + 1/2) |
| |
| Examples |
| ======== |
| |
| >>> from sympy.physics.qho_1d import E_n |
| >>> from sympy.abc import x, omega |
| >>> E_n(x, omega) |
| hbar*omega*(x + 1/2) |
| """ |
|
|
| return hbar * omega * (n + S.Half) |
|
|
|
|
| def coherent_state(n, alpha): |
| """ |
| Returns <n|alpha> for the coherent states of 1D harmonic oscillator. |
| See https://en.wikipedia.org/wiki/Coherent_states |
| |
| Parameters |
| ========== |
| |
| n : |
| The "nodal" quantum number. |
| alpha : |
| The eigen value of annihilation operator. |
| """ |
|
|
| return exp(- Abs(alpha)**2/2)*(alpha**n)/sqrt(factorial(n)) |
|
|