Discussion:
[Numpy-discussion] Numpy Jenkin's Traub?
Ryan J. Kinnear
2016-07-14 04:16:15 UTC
Permalink
Dear list,

I'm working on implementing an ARMA(p, q) modeling method in Python.
The particular method is described in section 4.7.1 of Statistical
Digital Signal Processing and Modeling by Hayes.

The upshot is that I need to calculate the roots of a polynomial.

I've learned that this is a numerically ill conditioned problem, and
have found many cases where np.roots produces roots that are clearly
spurious. This is causing me a lot of issues.

I have done some further searching and learned of the "Jenkins-Traub"
algorithm for root finding, which seems to be considered the most robust
method. I found a Python implementation of this method here
(https://github.com/vrdabomb5717/jenkins_traub), and it is certainly
much more robust than np.roots.

Are there reasons for Jenkins-Traub not being implemented as part of
Numpy? It is built into Scilab
(https://help.scilab.org/docs/6.0.0/en_US/roots.html) Is anyone working
on getting it into Numpy?

-RJK
.
2016-07-17 18:53:42 UTC
Permalink
There was a little discussion of putting Aberth's method into SciPy. I'm
not sure how those methods compare.

https://github.com/scipy/scipy/issues/5999

On Thu, Jul 14, 2016 at 12:16 AM, Ryan J. Kinnear ryan-at-kinnear.ca |numpy
Post by Ryan J. Kinnear
Dear list,
I'm working on implementing an ARMA(p, q) modeling method in Python. The
particular method is described in section 4.7.1 of Statistical Digital
Signal Processing and Modeling by Hayes.
The upshot is that I need to calculate the roots of a polynomial.
I've learned that this is a numerically ill conditioned problem, and have
found many cases where np.roots produces roots that are clearly spurious.
This is causing me a lot of issues.
I have done some further searching and learned of the "Jenkins-Traub"
algorithm for root finding, which seems to be considered the most robust
method. I found a Python implementation of this method here (
https://github.com/vrdabomb5717/jenkins_traub), and it is certainly much
more robust than np.roots.
Are there reasons for Jenkins-Traub not being implemented as part of
Numpy? It is built into Scilab (
https://help.scilab.org/docs/6.0.0/en_US/roots.html) Is anyone working
on getting it into Numpy?
-RJK
_______________________________________________
NumPy-Discussion mailing list
https://mail.scipy.org/mailman/listinfo/numpy-discussion
Loading...