The Matrices and Linear Algebra library provides three large sublibraries containing blocks for linear algebra; Linear System Solvers, Matrix Factorizations, and Matrix Inverses. A fourth library, Matrix Operations, provides other essential blocks for working with matrices.
The Linear System Solvers library provides the following blocks for solving the system of linear equations AX = B:
Some of the blocks offer particular strengths for certain classes of problems. For example, the Cholesky Solver block is particularly adapted for a square Hermitian positive definite matrix A, whereas the Backward Substitution block is particularly suited for an upper triangular matrix A.
In the following ex_lusolver_tut model, the LU Solver block solves the equation Ax = b, where
and finds x to be the vector
[-2 0 1]'.
You can verify the solution by using the Matrix Multiply block to perform the multiplication Ax, as shown in the following ex_matrixmultiply_tut1 model.
The Matrix Factorizations library provides the following blocks for factoring various kinds of matrices:
Some of the blocks offer particular strengths for certain classes of problems. For example, the Cholesky Factorization block is particularly suited to factoring a Hermitian positive definite matrix into triangular components, whereas the QR Factorization is particularly suited to factoring a rectangular matrix into unitary and upper triangular components.
In the following ex_lufactorization_tut model, the LU Factorization block factors a matrix Ap into upper and lower triangular submatrices U and L, where Ap is row equivalent to input matrix A, where
The lower output of the LU Factorization,
is the permutation index vector, which indicates that the factored
matrix Ap is generated from A by interchanging the first and second rows.
The upper output of the LU Factorization,
is a composite matrix containing the two submatrix factors, U and L, whose product LU is equal to Ap.
You can check that LU = Ap with the Matrix Multiply block, as shown in the following ex_matrixmultiply_tut2 model.
The Matrix Inverses library provides the following blocks for inverting various kinds of matrices:
In the following ex_luinverse_tut model, the LU Inverse block computes the inverse of input matrix A, where
and then forms the product A-1A, which yields the identity matrix of order 3, as expected.
As shown above, the computed inverse is