Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Find all the roots (zeros) of a complex analytic function within a given contour in the complex plane.

Project description

pkg_img travis pyup

cxroots

cxroots is a Python package for finding all the roots of a function, f(z), of a single complex variable within a given contour, C, in the complex plane. It requires only that:

  • f(z) has no roots or poles on C
  • f(z) is analytic in the interior of C

The implementation is primarily based on [KB] and evaluates contour integrals involving f(z) and its derivative f’(z) to determine the roots. If f’(z) is not provided then it is approximated using a finite difference method. The roots are further refined using Newton-Raphson if f’(z) is given or Muller’s method if not. See the documentation for a more details and a tutorial.

With Python installed you can install cxroots by entering in the terminal/command line

pip install cxroots

Example

from numpy import exp, cos, sin
f = lambda z: (exp(2*z)*cos(z)-1-sin(z)+z**5)*(z*(z+2))**2

from cxroots import Circle
C = Circle(0,3)
roots = C.roots(f)
roots.show()
https://github.com/rparini/cxroots/blob/master/README_resources/readmeEx.png?raw=true
print(roots)
 Multiplicity |               Root
------------------------------------------------
      2       | -2.000000000000 +0.000000000000i
      1       | -0.651114070264 -0.390425719088i
      1       | -0.651114070264 +0.390425719088i
      3       |  0.000000000000 +0.000000000000i
      1       |  0.648578080954 -1.356622683988i
      1       |  0.648578080954 +1.356622683988i
      1       |  2.237557782467 +0.000000000000i

See also

The Fortran 90 package ZEAL is a direct implementation of [KB].


References

[KB](1, 2) P. Kravanja and M. Van Barel. Computing the Zeros of Analytic Functions. Springer, Berlin, Heidelberg, 2000.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for cxroots, version 1.1.8
Filename, size File type Python version Upload date Hashes
Filename, size cxroots-1.1.8.tar.gz (31.7 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page