Knowledge base dedicated to Linux and applied mathematics.

Home > Mathematics > Linear Systems > **LU decomposition**

All the versions of this article: <English> <français>

We will study a direct method for solving linear systems: the LU decomposition. Given a matrix A, the aim is to build a lower triangular matrix L and an upper triangular matrix which has the following property: diagonal elements of L are unity and A=LU.

Let $A$ be $n\times n$ matrix .$LU$ factorization is a procedure for decomposing $A$ into a product of a lower triangular matrix $L$(diagonal elements of L are unity) and an upper triangular matrix $U$such as $A=LU$ with

$$ L= [ \left( \begin{array}{c c c c } 1\\ l_{21} & 1\\ \vdots & \vdots & \ddots\\ l_{n1} & l_{n2} & \cdots & 1 \end{array} \right) ] $$

and

$$ U= [ \left( \begin{array}{c c c c } u_{11} & u_{12} & \cdots & u_{1n}\\ & u_{22} & \cdots & u_{2n}\\ & & \ddots & u_{n-1,n}\\ & & & u_{nn} \end{array} \right) ] $$

For the resolution of linear system : $Ax=b$, the system becomes

$$LUx = b \Leftrightarrow \left\{\begin{array}{cc} Ly = b& (1),\\ Ux = y &(2). \end{array}\right. $$

We solve the system (1) to find the vector $y$, then the system (2) to find the vector $x$. The resolution is facilitated by the triangular shape of the matrices.

$$Ly = b \Leftrightarrow \left\{\begin{array}{ll} y_1 = b_1/l_{11}& \\ y_i = \displaystyle\frac{1}{l_{ii}}(b_i-\sum_{j=1}^{i-1}l_{ij}y_j) &\forall i=2,3,\ldots,n. \end{array}\right. $$

$$Ux = y \Leftrightarrow \left\{\begin{array}{ll} x_n = y_n/u_{nn}& \\ x_i = \displaystyle\frac{1}{u_{ii}}(y_i-\sum_{j=i+1}^{n}u_{ij}x_j) &\forall i=n-1,n-2,\ldots,1. \end{array}\right. $$

if an LU factorization exists, then it is unique.

An invertible matrix $A$ admits an LU factorization if and only if all its principal minors are non-zero (principal minor of order $k$ is the determiant of the matrix $(A)_{1\leq i,j\leq k}$ ).

If $A$ is only invertible, then $A$ can be written $A=PLU,$ where $P$ is a permutation matrix.

We suppose that $A$ admits an LU factorization, the LU Decomposition algorithm is:

$$k=1,\ldots,n-1\left\{ \begin{array}{l|ll} l_{ik}=0&i=1,\ldots,k-1 & \\ l_{kk}=1& & \\ l_{ik}=\displaystyle\frac{a_{ik}^{(k)}}{a_{kk}^{(k)}}&i=k+1,\ldots,n & \\ a_{ij}^{(k+1)}=a_{ij}^{(k)}&i=1,\ldots,k & j=1,\ldots,n \\ a_{ij}^{(k+1)}=0 &i=k+1,\ldots,n & j=1,\ldots,k \\ a_{ij}^{(k+1)}=a_{ij}^{(k)}-l_{ik}a_{kj}^{(k)} & i=k+1,\ldots,n &j=k+1,\ldots,n \end{array}\right. $$

$$ \begin{array}{lll} l_{in}=0&i=1,\ldots,n-1&l_{nn}=1\\ U=(a^{(n)}_{ij})_{1\leq i,j\leq n}&L=(l_{ij})_{1\leq i,j\leq n} & \end{array} $$

The LU decomposition also makes it possible to calculate the determinant of $A$, which is equal to the product of the diagonal elements of the matrix $U$ if $A$ admits an LU factorization since

$$det(A) = det(L) \times det(U)=1\times det(U)=det(U)$$