The Product Form of the Inverse (PFI) is based on the fact that, if we already have the inverse B of an n×n matrix C, we can obtain the inverse B * of a new matrix C * , formed by replacing column r of C by a vector ξ, by evaluating the matrix product υ = Bξ and then performing a pivot operation expressed by the formulae
b rj * = b rj / υ r } ∀ j∈{0,...,n-1}
An M_OPS function block (FB)
performs the PIVOT operation by taking the ξ
vector from the IorM-th column of its A
MATRIX
input, and pivoting it into the JorN-th column of its B
output. In this case, the IorM and JorN
inputs of the FB do not correspond to the indices i, j
or n in the algorithm above:
-
The
IorMinput specifies the column of theAinput matrix to be used as the ξ vector. -
The
JorNinput specifies the pivot column index r in theBmatrix output.
An M_OPS FB performs the matrix inversion (INV)
function by initializing the B matrix output to an
identity matrix of the same order as the A matrix input,
and then pivoting the columns of A into B
one at a time.
- A maximum pivot divisor strategy is used to provide the highest accuracy of the inverse. That is, at each iteration, the index r of the pivot column is chosen to maximize the absolute value of the divisor υr from the set of as-yet unpivoted columns.
-
If the absolute value of the maximum divisor υr
is less than the tolerance specified by the FB's
Xinput, theAmatrix is declared to be singular and the inversion operation terminates gracefully with an appropriateSTATUSoutput code.