I need to solve a rooting problem of a polynomial (the order of which is 2(N-1), where N=48).

So far I'm using Python Numpy algorithm (that relies on computing the eigenvalues of the companion matrix), but this is too slow solution for me. The polynomial can be written as: $$\sum_{l=-N+1}^{N-1}D_{l}z^{l}$$ where $D_{l}$ is the sum of the elements along an $N \times N$ matrix: $$D_{l}=\sum_{n-m=l}D_{mn}$$ In the attached image you can see all the roots (94 roots, half inside the unitary circle, half outside it); any algorithm that allows the calculation of M≪N closest(<1) to the unit circle roots?


I add here some further figures with hopes to improve the understanding of my question. I have done some tests plotting the roots locus (see pictures) concerning only some $D_{l}$ but this does not make so sense, as Federico Poloni says in the comments:

roots are a global thing that depends on the whole polynomial (or matrix)

However, it is interesting to note that some roots (those closer to zero) keep a fixed position on the plane (if we do a comparison between solving the all polynomial and reduced version of it). All this in view to better understand the whole polynomial (or matrix) structure and possibly to find a faster way to calculate only desired roots.

roots_details matrix insight

  • $\begingroup$ Comments are not for extended discussion; this conversation has been moved to chat. $\endgroup$
    – nicoguaro
    Feb 11, 2020 at 2:29


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.