How to solve polynomial eigenvalue in python?

In my Python code, I would like to solve a problem with an eigenvalue polynomial:

A0 + lambda*A1 + lambda^2*A2 + lambda^3*A3 + .... = 0

where Anare dense matrices, and a lambdais a constant. In Matlab, this problem can be solved using the polyeig function . There seems to be no equivalent functionality in scipy. So far, the only way to do this is to form an appropriate companion matrix. This creates an equivalent linear eigenvalue problem that can be attributed to existing scipy solvers, however it is much larger, and I believe that it can be poorly conditioned.

Can someone suggest an existing, open or freely accessible library that can solve this problem? I would be happy with the fortran library, which could be linked through the f2py or C / C ++ library for communication through cython.

Edit: for anyone interested in solving non-linear eigenvalue problems in python, the code I wrote to solve this problem can be found here . Note that I am dealing with a more general case of a nonlinear eigenvalue problem (in the sense that it has a nonlinear dependence on lambda). To understand this method, read the article in the code comments.

+5
source share
1 answer
+2

All Articles