Learn R Programming

fastmatrix (version 0.5-7721)

sherman.morrison: Sherman-Morrison formula

Description

The Sherman-Morrison formula gives a convenient expression for the inverse of the rank 1 update \((\bold{A} + \bold{bd}^T)\) where \(\bold{A}\) is a \(n\times n\) matrix and \(\bold{b}\), \(\bold{d}\) are \(n\)-dimensional vectors. Thus $$(\bold{A} + \bold{bd}^T)^{-1} = \bold{A}^{-1} - \frac{\bold{A}^{-1}\bold{bd}^T \bold{A}^{-1}}{1 + \bold{d}^T\bold{A}^{-1}\bold{b}}.$$

Usage

sherman.morrison(a, b, d = b, inverted = FALSE)

Value

a square matrix of the same order as a.

Arguments

a

a numeric matrix.

b

a numeric vector.

d

a numeric vector.

inverted

logical. If TRUE, a is supposed to contain its inverse.

Details

Method of sherman.morrison calls BLAS level 2 subroutines DGEMV and DGER for computational efficiency.

Examples

Run this code
n <- 10
ones <- rep(1, n)
a <- 0.5 * diag(n)
z <- sherman.morrison(a, ones, 0.5 * ones)
z

Run the code above in your browser using DataLab