Scilab Function
Last update : 17/6/2004

lu - factorisation LU

### Calling Sequence

  `[L,U]= lu(A)`
  `[L,U,E]= lu(A)`

### Parameters

- `A` : matrice carrée réelle ou complexe (m x n).
- `L,U` : matrices carrées réelles ou complexes (n x n).
- `E` : une matrice de permutation.

### Description

`[L,U]= lu(A)` calcule deux matrices `L` et `U` telles que `A = L*U` avec `U` triangulaire supérieure et `L` triangulaire inférieure à une permutation des lignes près.

Si `A` est de rang `k`, les lignes `k+1` à `n` de `U` sont nulles.

`[L,U,E]= lu(A)` calcule trois matrices `L`, `U` et `E` telles que `E*A = L*U` avec `U` triangulaire supérieure, `L` triangulaire inférieure et `E` une matrice de permutation.

Si `A` est une matrice réelle, il est possible en utilisant `lufact` et `luget` d'obtenir les matrices de permutations et quand `A` n'est pas inversible la compression des colonnes de la matrice `L`.

### Examples

        a=rand(4,4);
        [l,u]=lu(a)
        norm(l*u-a)

        [h,rk]=lufact(sparse(a))  // lufact fonctionne avec des matrices creuses
        [P,L,U,Q]=luget(h);
        ludel(h)
        P=full(P);L=full(L);U=full(U);Q=full(Q);
        norm(P*L*U*Q-a) // P,Q sont des matrices de permutation

### See Also

`lufact`, `luget`, `lusolve`, `qr`, `svd`,

### Used Function

La décomposition LU est basée sur les routines Lapack DGETRF pour les matrices réelles et ZGETRF pour le cas complexe.