Skip to main content

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.7
Filename, size File type Python version Upload date Hashes
Filename, size cxroots-1.1.7.tar.gz (31.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page