12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- from sympy.core.numbers import (I, pi)
- from sympy.core.singleton import S
- from sympy.functions.elementary.exponential import exp
- from sympy.functions.elementary.miscellaneous import sqrt
- from sympy.physics.quantum.constants import hbar
- def wavefunction(n, x):
- """
- Returns the wavefunction for particle on ring.
- Parameters
- ==========
- n : The quantum number.
- Here ``n`` can be positive as well as negative
- which can be used to describe the direction of motion of particle.
- x :
- The angle.
- Examples
- ========
- >>> from sympy.physics.pring import wavefunction
- >>> from sympy import Symbol, integrate, pi
- >>> x=Symbol("x")
- >>> wavefunction(1, x)
- sqrt(2)*exp(I*x)/(2*sqrt(pi))
- >>> wavefunction(2, x)
- sqrt(2)*exp(2*I*x)/(2*sqrt(pi))
- >>> wavefunction(3, x)
- sqrt(2)*exp(3*I*x)/(2*sqrt(pi))
- The normalization of the wavefunction is:
- >>> integrate(wavefunction(2, x)*wavefunction(-2, x), (x, 0, 2*pi))
- 1
- >>> integrate(wavefunction(4, x)*wavefunction(-4, x), (x, 0, 2*pi))
- 1
- References
- ==========
- .. [1] Atkins, Peter W.; Friedman, Ronald (2005). Molecular Quantum
- Mechanics (4th ed.). Pages 71-73.
- """
- # sympify arguments
- n, x = S(n), S(x)
- return exp(n * I * x) / sqrt(2 * pi)
- def energy(n, m, r):
- """
- Returns the energy of the state corresponding to quantum number ``n``.
- E=(n**2 * (hcross)**2) / (2 * m * r**2)
- Parameters
- ==========
- n :
- The quantum number.
- m :
- Mass of the particle.
- r :
- Radius of circle.
- Examples
- ========
- >>> from sympy.physics.pring import energy
- >>> from sympy import Symbol
- >>> m=Symbol("m")
- >>> r=Symbol("r")
- >>> energy(1, m, r)
- hbar**2/(2*m*r**2)
- >>> energy(2, m, r)
- 2*hbar**2/(m*r**2)
- >>> energy(-2, 2.0, 3.0)
- 0.111111111111111*hbar**2
- References
- ==========
- .. [1] Atkins, Peter W.; Friedman, Ronald (2005). Molecular Quantum
- Mechanics (4th ed.). Pages 71-73.
- """
- n, m, r = S(n), S(m), S(r)
- if n.is_integer:
- return (n**2 * hbar**2) / (2 * m * r**2)
- else:
- raise ValueError("'n' must be integer")
|