matrix-inversion
Matrix inversion techniques.
Header
#include <mathtoolbox/matrix-inversion.hpp>
Block Matrix Inversion
About
Inverse of a block (partitioned) matrix
where and are square matrices, can be calculated as
This technique is useful particularly when is relatively large (compared to ) and is known.
API
This module provides the following function:
Eigen::MatrixXd GetInverseUsingUpperLeftBlockInverse(const Eigen::MatrixXd& matrix,
const Eigen::MatrixXd& upper_left_block_inverse);
where upper_left_block_inverse
corresponds to .
Performance (Casual Comparison)
When was a random matrix, and the size of was 3,000 and that of was 2,999, a naive approach (i.e., the LU decomposition from Eigen) took 5847 milliseconds to obtain while the block inversion approach took only 121 milliseconds.
Useful Resources
- Block matrix - Wikipedia. https://en.wikipedia.org/wiki/Block_matrix.