©
Matrix inverse by updating
  Calculates the inverse of a modified matrix by updating.
2024.Jul.03 18:27:54
Order (n) Order, n, of matrix A. •
Rand, U, .seed  (ignored if Rand = No) Random, upper and repeatability. •
    If Rand = Yes, the following coherent A and U are ignored but needed (k is used).
Matrix A and
new column, U
U =
k =
(1 ≤ kn)
Matrix A (n×n) and new (k.th) column, U (n×1), for the matrix. •

Starting from the (known) inverse of A, calculates the inverse of another, modified matrix, B, in which the k.th column (only), U, is different. (In the output, A is called 'A_old', and B is 'A_new'.)

The procedure is:  (a) Let V = A−1U;  (b) Let E identity matrix, except its column k, which is e(k,k) = 1 / v(k) and, for i ≠ k, e(i,k) = -v(i) / v(k); and  (c) Then, B−1 = E A−1.   (InverseUpdate.xlsx)

The advantage is to avoid any direct inversion (with E a simple, "quasi-identity" matrix). The procedure is used in, and is typically "linked" to, Linear Programming, but is general.

If Rand, the matrix elements are generated in [1, upper] (continuous range).

(Warning: no proviso is included to guarantee that any of the matrices is non-singular.)   (A related case...)

References: Plate: MatrixIUpdate

• Google: update of inverse matrix

Update of the inverse matrix by the Sherman-Morrison formula (ALGLIB).

• 1871-03-04: Galerkin, Boris Grigorievich (1945-06-12).

 
 
Valid HTML 4.01! IST http://web.ist.utl.pt/~ist11038/compute/or/Fx-matrixIUp.php
Created: 2012-03-04 — Last modified: 2015-02-24