- Scilab Online Help
- Linear Algebra
- aff2ab
- balanc
- bdiag
- chfact
- chol
- chsolve
- classmarkov
- cmb_lin
- coff
- colcomp
- companion
- cond
- det
- eigenmarkov
- ereduc
- expm
- fstair
- fullrf
- fullrfk
- genmarkov
- givens
- glever
- gschur
- gspec
- hess
- householder
- im_inv
- inv
- kernel
- kroneck
- linsolve
- lsq
- lu
- lyap
- nlev
- orth
- pbig
- pencan
- penlaur
- pinv
- polar
- proj
- projspec
- psmall
- qr
- quaskro
- randpencil
- range
- rank
- rankqr
- rcond
- rowcomp
- rowshuff
- rref
- schur
- spaninter
- spanplus
- spantwo
- spec
- sqroot
- squeeze
- sva
- svd
- sylv
- trace

Please note that the recommended version of Scilab is 2024.1.0. This page might be outdated.

See the recommended documentation of this function

# lu

LU factorization with pivoting

### Calling Sequence

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

### Arguments

- A
real or complex matrix (m x n).

- L
real or complex matrices (m x min(m,n)).

- U
real or complex matrices (min(m,n) x n ).

- E
a (n x n) permutation matrix.

### Description

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

produces two matrices `L`

and
`U`

such that `A = L*U`

with `U`

upper triangular and `L`

a general matrix without any particular
structure. In fact, the matrix `A`

is factored as `E*A=B*U`

where the matrix `B`

is lower triangular
and the matrix `L`

is computed from `L=E'*B`

.

If `A`

has rank `k`

, rows `k+1`

to
`n`

of `U`

are zero.

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

produces three matrices `L`

, `U`

and
`E`

such that `E*A = L*U`

with
`U`

upper triangular and `E*L`

lower
triangular for a permutation matrix `E`

.

If `A`

is a real matrix, using the function
`lufact`

and `luget`

it is possible to obtain
the permutation matrices and also when `A`

is not full
rank the column compression of the matrix `L`

.

### Example #1

In the following example, we create the Hilbert matrix of size 4 and factor it with A=LU. Notice that the matrix L is not lower triangular. To get a lower triangular L matrix, we should have given the output argument E to Scilab.

a = testmatrix("hilb",4); [l,u]=lu(a) norm(l*u-a)

### Example #2

In the following example, we create the Hilbert matrix of size 4 and factor it with EA=LU. Notice that the matrix L is lower triangular.

a = testmatrix("hilb",4); [l,u,e]=lu(a) norm(l*u-e*a)

### Example #3

The following example shows how to use the lufact and luget functions.

### Used Functions

lu decompositions are based on the Lapack routines DGETRF for real matrices and ZGETRF for the complex case.

<< lsq | Linear Algebra | lyap >> |