This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
 LUDecomposition LUDecomposition[ m ] generates a representation of the LU decomposition of a matrix m. LUDecomposition returns a list of three elements. The first element is a combination of upper and lower triangular matrices, the second element is a vector specifying rows used for pivoting, and for approximate numerical matrices the third element is an estimate of the condition number of . The data generated by LUDecomposition is intended for use in LUBackSubstitution. See the Mathematica book: Section 3.7.8, Section 3.7.10. See also Implementation NotesA.9.44.27MainBookLinkOldButtonDataA.9.44.27. See also: LUBackSubstitution, QRDecomposition, SchurDecomposition. Related packages: LinearAlgebra`Cholesky`, LinearAlgebra`Orthogonalization`. Further Examples We start with the decomposition of a simple matrix. In[1]:= Out[1]= We solve the system m.v = {5,8}. In[2]:= Out[2]= This checks the result. In[3]:= Out[3]= In[4]:= Recovering the lower and upper triangular matrices from the LUDecomposition LUDecomposition satisfies the following relation: Given a matrix M, determine a unit lower triangular matrix L, an upper triangular matrix U and a permutation vector P such that Part[M, P] == L. U . Part[M, P] rearranges the rows of M. The permutation ensures numerical stability during the decomposition phase; after that, L and U are determined using Gaussian elimination. Solving the system M.x == b is equivalent to solving the system L.U.x == b but it is easier because it amounts to solving two triangular systems in a row. For reasons of efficiency, the matrices L and U are returned as a single matrix, where the ones on the main diagonal of L are left out. The functions Lower and Upper recover the matrices by multiplying pairwise (not dot multiplying!) with appropriate matrices of zeros and ones. In[5]:= In[6]:= Consider this inexact matrix. In[7]:= This decomposes the matrix into lower and upper diagonal matrices, gives a permutation vector and an estimate of the condition number. In[8]:= Out[8]= This is the lower triangular matrix L. In[9]:= Out[9]//MatrixForm= This is the upper triangular matrix U. In[10]:= Out[10]//MatrixForm= This checks the result. In[11]:= Out[11]//MatrixForm=