## Page Views on Nuit Blanche since July 2010

My papers on ArXiv:
Approximating Kernels at the speed of Light
&
Imaging with Nature

LightOn
LinkedIn (727)|| on CrunchBase || our Blog
(2452)
(3967)
(1333)||
Attendant references pages:
The Advanced Matrix Factorization Jungle Page ||

Paris Machine Learning
@Meetup.com (8016 members) || @Archives

## Friday, June 20, 2014

### A Riemannian approach to low-rank algebraic Riccati equations - implementation -

Somehow related to neutron transport theory and a different kind of matrix factorization, here is: A Riemannian approach to low-rank algebraic Riccati equations by Bamdev Mishra, B. Vandereycken
We propose a Riemannian optimization approach for computing low-rank solutions of the algebraic Riccati equation. The scheme alternates between fixed-rank optimization and rank-one updates. The fixed-rank optimization is on the set of fixed-rank symmetric positive definite matrices which is endowed with a particular Riemannian metric (and geometry) that is tuned to the structure of the objective function. We specifically discuss the implementation of a Riemannian trust-region algorithm that is potentially scalable to large-scale problems. The rank-one update is based on a descent direction that ensures a monotonic decrease of the cost function. Preliminary numerical results on standard small-scale benchmarks show that we obtain solutions to the Riccati equation at lower ranks than the standard approaches.

from the code page of Bamdev Mishra

We solve the equation \$ATX + XA + X BBT X = CTC\$ for X on the low rank manifold of symmetric and positive definite matrices, where A is large and sparse, B is a tall matrix, and C is a fat matrix. For \$B = 0\$, this boils down to the Lyapunov equation.
The code has been tuned for large scale problems. Computationally, the numerical bottleneck involes solving the linear system \$Px = b\$, where P is a sparsely-structured matrix.
In the present code, \$Px = b\$ for smaller to moderate size problems (about 10 000 x 10 000) is solved with the backslash operator of Matlab without any tuning. For larger size matrices, we employ the Matlab's built-in iterative pcg solver without any tuning, which may not be efficient for all problems. Specific problems call for specific solvers! If you are interestd in a particular setup and have a solver, then do look for the function "use_iterative_solver" in the file "Main_files/Riemannian_lowrank_riccati.m" and modify it accordingly.
The code is built on the Manopt platform. Feel free to contact me on any issue.