View source: R/HelperFunctions.R
| invert | R Documentation |
Attempts matrix inversion using multiple methods, falling back to more robust approaches if standard inversion fails.
invert(mat, include_warnings = FALSE)
mat |
Square matrix to invert |
include_warnings |
Logical; default FALSE for current implementation. |
Tries methods in order:
1. Cholesky decomposition via chol2inv(chol(...)) for symmetric
positive-definite matrices (fastest for SPD)
2. Direct inversion using armaInv() as first fallback
3. Generalized inverse using eigendecomposition with small ridge
4. Returns identity matrix if all methods fail, with optional warning
For eigendecomposition, uses a small ridge penalty (1e-16) for stability and
zeroes eigenvalues below machine precision.
Inverted matrix, or the identity matrix if all inversion attempts fail
## Well-conditioned matrix
A <- matrix(c(4,2,2,4), 2, 2)
invert(A) %*% A
## Singular matrix falls back to M.P. generalized inverse
B <- matrix(c(1,1,1,1), 2, 2)
invert(B) %*% B
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.