12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 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))
- """
- # sympify arguments
- n, x, m, omega = map(S, [n, x, m, omega])
- nu = m * omega / hbar
- # normalization coefficient
- 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))
|