图片解析应用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
1.3 KiB

  1. from sympy.core.function import diff
  2. from sympy.functions.elementary.complexes import conjugate
  3. from sympy.functions.elementary.miscellaneous import sqrt
  4. from sympy.functions.elementary.trigonometric import (cos, sin)
  5. from sympy.functions.special.mathieu_functions import (mathieuc, mathieucprime, mathieus, mathieusprime)
  6. from sympy.abc import a, q, z
  7. def test_mathieus():
  8. assert isinstance(mathieus(a, q, z), mathieus)
  9. assert mathieus(a, 0, z) == sin(sqrt(a)*z)
  10. assert conjugate(mathieus(a, q, z)) == mathieus(conjugate(a), conjugate(q), conjugate(z))
  11. assert diff(mathieus(a, q, z), z) == mathieusprime(a, q, z)
  12. def test_mathieuc():
  13. assert isinstance(mathieuc(a, q, z), mathieuc)
  14. assert mathieuc(a, 0, z) == cos(sqrt(a)*z)
  15. assert diff(mathieuc(a, q, z), z) == mathieucprime(a, q, z)
  16. def test_mathieusprime():
  17. assert isinstance(mathieusprime(a, q, z), mathieusprime)
  18. assert mathieusprime(a, 0, z) == sqrt(a)*cos(sqrt(a)*z)
  19. assert diff(mathieusprime(a, q, z), z) == (-a + 2*q*cos(2*z))*mathieus(a, q, z)
  20. def test_mathieucprime():
  21. assert isinstance(mathieucprime(a, q, z), mathieucprime)
  22. assert mathieucprime(a, 0, z) == -sqrt(a)*sin(sqrt(a)*z)
  23. assert diff(mathieucprime(a, q, z), z) == (-a + 2*q*cos(2*z))*mathieuc(a, q, z)