RalphAS / PeriodicSchurDecompositions.jl

Julia package for periodic Schur decompositions of matrix products
Other
8 stars 0 forks source link

Registration #3

Closed andreasvarga closed 1 year ago

andreasvarga commented 2 years ago

I am using the eigenvalue reordering features for a real product to solve continuous-time periodic Riccati equations, as an alternative method to "fast" structure exploiting reductions used in conjunction with multiple-shooting techniques . This functionality is planned to be included in the release 0.4.2 of PeriodicSystems. So, I wonder if the registration of this package is planned in the near future, to allow an easier inclusion of this package.

A second issue is related to supporting the generalized periodic Schur decomposition in the real case. This decomposition would be very useful in both continuous- and discrete-time contexts. Is it is planned to implement the real version of the generalized decomposition?

Here are some technical details. A more efficient solution of the continous-time periodic Riccati equation, would be possible by exploiting features which are intrinsic to the periodic QZ algorithm. The solution technique involves the operation on a left-oriented product of real state transition matrices, formed for a linear periodic system with time-dependent periodic Hamiltonian coefficient matrix. The product S itself is a symplectic matrix, with a dichotomic eigenvalue structure (half of eigenvalues are in the unit circle, half of them outside). In my current implementation, I am moving the "stable" eigenvalues (i.e., those in the unit circle) in the leading positions and operate with the corresponding stable Schur vectors. A known fact in this context is that the "unstable" eigenvalues have the natural tendency to result in the leading positions, so the reordering phase may involve a substantial reordering effort. The methods for constant discrete-time systems try to exploit this feature by working with a symplectic matrix pair (A,E), for which the natural appearance can be exploited by simply interchanging the matrices, i.e., working with (E,A). For the periodic case, this would involve to work with inv(S) (i.e., with the product of inverses), which is, in principle, possible using the generalized decomposition. I am fully exploiting this aspect in the implemetation of "fast" method.
The generalized periodic Schur decomposition in the real case would be also very useful to solve discrete-time periodic Riccati equations.

PS. I guess, I could manage using the available complex decomposition, but this would not be a very elegant and efficient solution.

RalphAS commented 2 years ago

The generalized real decomposition is the next major addition I plan for this project. Then it should be feasible to extend the reordering to that case, but I expect that will be challenging to get right. Although I haven't had much time for this recently, your interest is very encouraging.

I'll register it shortly since I have only some cosmetic patches in progress and current tests are passed.

RalphAS commented 1 year ago

The generalized real decomposition is included as of v0.1.2