# Matrix decomposition

A matrix decomposition is a factorization of a matrix into some canonical form.

A canonical form (often called normal or standard form) of an object is a standard way of presenting that object.

There are many different decompositions; each one is used among a particular class of problems.

Matlab includes several functions for matrix decomposition or factorization.

LU decomposition: the name of the built-in function is 'lu'. To get the LU factorization of a square matrix M, type the command [L,U] = lu(M).

Matlab returns a lower triangular matrix L and an upper triangular matrix U such that L*U = M.

Example:

Type

M = [2 3 4 5
3 2 6 1
2 3 1 7
9 8 0 2];

[l, u] = lu(M)
l*u

l =
0.2222 1.0000 0.4583 1.0000
0.3333 -0.5455 1.0000 0
0.2222 1.0000 0 0
1.0000 0 0 0

u =
9.0000 8.0000 0 2.0000
0 1.2222 1.0000 6.5556
0 0 6.5455 3.9091
0 0 0 -3.7917

ans =
2.0000 3.0000 4.0000 5.0000
3.0000 2.0000 6.0000 1.0000
2.0000 3.0000 1.0000 7.0000
9.0000 8.0000 0 2.0000

QR factorization: the name of the appropriate built-in function for this purpose is 'qr'. Typing the command [Q, R] = qr(M) returns an orthogonal matrix Q and an upper triangular matrix R such that Q*R = M.

Example (assuming the same matrix M as above):

Type

[q, r] = qr(M)
q*r

and the fast Matlab answer is:

q =
-0.2020 0.6359 -0.4469 -0.5959
-0.3030 -0.4127 -0.8144 0.2731
-0.2020 0.6359 0.0027 0.7449
-0.9091 -0.1450 0.3702 -0.1241

r =
-9.8995 -9.0914 -2.8284 -4.5457
0 1.8295 0.7028 6.9274
0 0 -6.6713 -2.2896
0 0 0 2.2595

ans =
2.0000 3.0000 4.0000 5.0000
3.0000 2.0000 6.0000 1.0000
2.0000 3.0000 1.0000 7.0000
9.0000 8.0000 -0.0000 2.0000

Cholesky decomposition: if you have a positive definite matrix A, you can factorize the matrix with the built-in function 'chol'. The command R = chol(A); produces an upper triangular matrix R such that R'*R = A for a positive definite A.

This is a brief reminder of what a positive definite matrix is:

An n by n matrix M is positive definite if

xT Mx > 0 for all x <> 0 and

xT Mx = 0 implies x = 0

If matrix M is symmetric, diagonally dominant, and has positive diagonal elements, then M is positive definite

If matrix M is positive definite, then M is diagonally dominant and has positive diagonal elements.

Example:

Type

M = [1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20];

r = chol(M)
r'*r

r =
1 1 1 1
0 1 2 3
0 0 1 3
0 0 0 1

ans =
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20

Singular value decomposition (svd): this is another type of matrix decomposition and the name of the built-in function is svd. Typing [U,S,V] = svd(M); produces a diagonal matrix S, of the same dimension as M and with nonnegative diagonal elements in decreasing order, and unitary matrices U and V so that M = U*S*V'.

Example (considering the same matrix M as above):

Type

[u, s, v] = svd(M)
u*s*v'

and you get:

u =
-0.0602 -0.5304 0.7873 -0.3087
-0.2012 -0.6403 -0.1632 0.7231
-0.4581 -0.3918 -0.5321 -0.5946
-0.8638 0.3939 0.2654 0.1684

s =
26.3047 0 0 0
0 2.2034 0 0
0 0 0.4538 0
0 0 0 0.0380

v =
-0.0602 -0.5304 0.7873 -0.3087
-0.2012 -0.6403 -0.1632 0.7231
-0.4581 -0.3918 -0.5321 -0.5946
-0.8638 0.3939 0.2654 0.1684

ans =
1.0000 1.0000 1.0000 1.0000
1.0000 2.0000 3.0000 4.0000
1.0000 3.0000 6.0000 10.0000
1.0000 4.0000 10.0000 20.0000

From 'Matrix Decomposition' to home

From 'Matrix Decomposition' to 'Matlab Cookbook I'

## Related pages

simpson's rule examplepolar compasswrite xls matlabbinary code to gray code conversionsystems of nonlinear equations solverhow many combinations calculatorlinear regression in matlablinspace matlab examplematlab code for trapezoidal ruledepreciation calculator computerzy smith chart color pdfquadratics equation solverfloor command in matlabrecursive factorial programboolean matlabquadratic equation calculator programiteration matlabsimultaneous equation exampletrapezoidal rule online calculatorgeometric means formularadio button in matlab guirecursion examplesmatlab clear screenbisection method algorithm matlabmatlab even oddonline ohms law calculatormatlab finance tutorialcalculator definite integralexpansion of sinxsolve function matlabhow to find half life calculusdecay half life formulaalgorithm of tower of hanoiunit step matlabdefine integral calculatormatlab summation functionplot piecewise function matlabhow to convert to binary from decimalcircuits nodal analysiswhat are octal numbersnominal interest calculation worksheetmatlab to excelonline hypotenuse calculatorformula for nominal interest rategraphics in matlabcall function matlabsalvage value meaningc programming sine functionmatlab asciibinary to hexadecimal tablealgorithm to find gcdmaclaurin series sinxconverter octal to decimalhow to convert octal to binarylagrange interpolation examplelinear regression in matlabdemorgans ruleintegrals in matlabexponential regression calculatorplotting imaginary numbersascii values chartsine taylor seriessimultaneous equation solver with workingsyracuse sequenceanimation using matlabhalf life exponential decay formulamatlab derivative of a functiongraphing on matlabfloor command in matlabdefinite integrals calculatorascii table conversionlinear equation solver matlabsalvage value accountinggraycodepoisson distribution tutorialkcl example problems