invert: Matrix Inversion with Fallback Methods

View source: R/HelperFunctions.R

invertR Documentation

Matrix Inversion with Fallback Methods

Description

Attempts matrix inversion using multiple methods, falling back to more robust approaches if standard inversion fails.

Usage

invert(mat, include_warnings = FALSE)

Arguments

mat

Square matrix to invert

include_warnings

Logical; default FALSE for current implementation.

Details

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.

Value

Inverted matrix, or the identity matrix if all inversion attempts fail

Examples


## 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



lgspline documentation built on May 8, 2026, 5:07 p.m.