## Linear Algebra and Least Squares

### Linear Algebra Blocks

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.

### Linear System Solvers

The Linear System Solvers library provides the following blocks for solving the
system of linear equations A*X* = B:

Some of the blocks offer particular strengths for certain classes of problems. For example, the Cholesky Solver block is adapted for a square Hermitian positive definite matrix A, whereas the Backward Substitution block is suited for an upper triangular matrix A.

#### Solve AX=B Using the LU Solver Block

Open the `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.

### Matrix Factorizations

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 suited to factoring a Hermitian positive definite matrix into triangular components, whereas the QR Factorization is suited to factoring a rectangular matrix into unitary and upper triangular components.

#### Factor a Matrix into Upper and Lower Submatrices Using the LU Factorization Block

Open the `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 P 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 *LU* 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.

### Matrix Inverses

The Matrix Inverses library provides the following blocks for inverting various kinds of matrices:

#### Find the Inverse of a Matrix Using the LU Inverse Block

Open the `ex_luinverse_tut`

model. The LU Inverse block computes the inverse of input matrix A, where

and then forms the product inv(A)*A, which yields the identity matrix of order 3, as expected.

As shown above, the computed inverse is