We consider the solution of large-scale algebraic Riccati equations with numerically low-ranked solutions. For the discrete-time case, the structure-preserving doubling algorithm has been adapted, with the iterates for A not explicitly computed but in the recursive form Ak=Ak-12-Dk(1)Sk- 1[ Dk(2)]⊤, with Dk(1) and Dk(2) being low-ranked and Sk-1 being small in dimension. For the continuous-time case, the algebraic Riccati equation will be first treated with the Cayley transform before doubling is applied. With n being the dimension of the algebraic equations, the resulting algorithms are of an efficient O(n) computational complexity per iteration, without the need for any inner iterations, and essentially converge quadratically. Some numerical results will be presented. For instance in Section 5.2, Example 3, of dimension n=20209 with 204 million variables in the solution X, was solved using MATLAB on a MacBook Pro within 45 s to a machine accuracy of O(10 -16).
- Continuous-time algebraic Riccati equation
- Doubling algorithm
- Krylov subspace
- Large-scale problem