Find all the roots (zeros) of a complex analytic function within a given contour in the complex plane.
Project description
|pkg_img| |travis|
.. |travis| image:: https://travis-ci.org/rparini/cxroots.svg?branch=master
:target: https://travis-ci.org/rparini/cxroots/branches
.. |pkg_img| image:: https://badge.fury.io/py/cxroots.svg
:target: https://badge.fury.io/py/cxroots
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 <https://rparini.github.io/cxroots/>`_ for a more details and a tutorial.
With `Python <http://www.python.org/>`_ installed you can install cxroots by entering in the terminal/command line
.. code:: bash
pip install cxroots
Example
-------
.. code:: python
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()
.. image:: README_resources/readmeEx.png
.. code:: python
print(roots)
.. literalinclude readmeExOut.txt doesn't work on github
::
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 <http://cpc.cs.qub.ac.uk/summaries/ADKW>`_ is a direct implementation of [KB]_.
----------
References
----------
.. [KB] \P. Kravanja and M. Van Barel. *Computing the Zeros of Analytic Functions*. Springer, Berlin, Heidelberg, 2000.
.. |travis| image:: https://travis-ci.org/rparini/cxroots.svg?branch=master
:target: https://travis-ci.org/rparini/cxroots/branches
.. |pkg_img| image:: https://badge.fury.io/py/cxroots.svg
:target: https://badge.fury.io/py/cxroots
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 <https://rparini.github.io/cxroots/>`_ for a more details and a tutorial.
With `Python <http://www.python.org/>`_ installed you can install cxroots by entering in the terminal/command line
.. code:: bash
pip install cxroots
Example
-------
.. code:: python
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()
.. image:: README_resources/readmeEx.png
.. code:: python
print(roots)
.. literalinclude readmeExOut.txt doesn't work on github
::
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 <http://cpc.cs.qub.ac.uk/summaries/ADKW>`_ is a direct implementation of [KB]_.
----------
References
----------
.. [KB] \P. Kravanja and M. Van Barel. *Computing the Zeros of Analytic Functions*. Springer, Berlin, Heidelberg, 2000.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cxroots-1.1.0.tar.gz
(5.1 MB
view hashes)