Feb 11, 2020 02:29
@FedericoPoloni: hi Federico, yes, you're right..does not make so much sense what I have experimented: the roots depends on the whoke polynomial! I'm still wondering if there is a way to reduce the complexity (trading it for a little reduced accuracy) by reducing in an appropriate manner the polynomial (or considering only a part of the matrix). Thanks
Feb 11, 2020 02:29
@LutzLehmann: the discussion about Dandelin-Graeffe method it's very interesting, i need some time to assimilate it. I added some lines in my question, hoping now it is more clear. thanks
Feb 11, 2020 02:29
@FedericoPoloni: thanks again for you interest; I checked, it's just as you thought: it happens that the leading coefficient become exactly zero (in case of 93 roots)! I have also noted that the 94/2 roots that "fall" outside [inside] to the unitary circle belong to the upper [lower] triangular part of the NxN hermitian matrix (from which $D_l$ is calculated). If I remeber correctly the fundamentals theory of linear algebra this should not be surprising, I guess (hope) should be a way to directly identify the M<<N roots closer to the unitary border (<1).
Feb 11, 2020 02:29
@Lutz Lehmann: thanks of joining the conversation; as I have replied to Federico the NxN matrix from which $D_l$ is calculated it's hermitian. The polynomial is like the following: $D_l$ it's always a real number, $D_l=D^{\ast}_{-l}$. I'm trying to have a deeper look and understanding in the matrix structure and its "meaning" (I'm not a mathematic expert). Thanks
Feb 11, 2020 02:29
Hi Federico, I'm starting to implement Duran-Kernel method (then I'll try Alberth method). I have noted that the numpy.root() function applied to my polynomial (the order of which is 94) sometimes returns back 93 roots while others times 94 roots. Why it is so? (one root has multiplicity 2)?Thanks a lot
Feb 11, 2020 02:29
@FedericoPoloni: yes, you're right, it won't work...at least not as fast as I would have liked. Yes, a tracking roots algorithms it's a good idea even if I'd rather avoid its usage: the D matrix it's already a result of a subspace tracking algorithm. Probably I have no other chance, I was wondering about the possibility to calculate the roots only in a very narrow annulus around the unitary circle but it seems this is not possible.
Feb 11, 2020 02:29
@FedericoPoloni: thanks Federico, yes, you're right: I think it will be difficult to beat Numpy. In my tests I use a for loop that calculate the first M<<N closest to the unit circle roots 174 times and it takes around 2.2 seconds. Unfortunately this is too slow for me, I'm need to be below 0.04 seconds. Probably I need to completely change approach. Someone suggested me to use a "conformant map that unrolls the circle to the y axis and use a root finder that finds the roots with the smallest real part" but I still need to digest the idea. Have a good day, ciao
Feb 11, 2020 02:29
@FedericoPoloni: ciao Federico, thanks for your interest; the polynomial is like the following: $D_0$ it's a real number, $D_l=D^{\ast}_{-l}$. I'm able to find the first M<<N (i.e. M=5) closest to the unit circle roots in few steps by finding all the roots, filtering out the ones greater (in absolute value) than 1, and sorting the remaining ones. I'm wondering if there is any faster way to do this eventually without calculate all the roots.
Feb 11, 2020 02:29
@AloneProgrammer: thanks; any pretty good algorith to find the closest poles to the unit circle?