This is a package that focuses on solving linear systems of type Xβ = y where X is a low-rank matrix and β and y are two vectors. The β vector is the vector of unknowns that we want to solve for. The theoretical background implemented in this package can be found in the paper: Iterative methods for solving factorized linear systems
The idea is to solve the aforementioned system by approximating the optimal result. In order to do that we are not going to work with the full system that was mentioned before, but with a decomposition of X and two subsystems:
- Ux = y
- Vβ = x
were X = UV and U is of size m * k and V is of size k * n full-rank matrices. Thus substituting the second subsystem in the first we get the full system.
There are three possible settings (X a full-rank matrix):
-
X is underdetermined, m < n, then there are indefinitely many solutions and we are interested in the least Euclidean norm solution of the full-system: βLN = X* (X X*)-1y.
-
In the overdetermined setting, m > n, the full-system can have one or no solution. If there is a solution then, the system is called consistent, and we have: βunique = (X* X)-1X*y
-
If the system is inconsistent then we seek to minimize the sum of squared residuals r = XβLS - y, where βLS = (X* X)-1X*y
If the X matrix is rank-deficient then there are indefinitely many cases regardless of m and n. Then
βLN = X* (X X*)+y, if m < n
βLN = (X* X)+X*y, if m > n
The algorithms implemented by this package work by interlacing the solving of U and V as described in the academical paper.