* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download LU Factorization of A
Exterior algebra wikipedia , lookup
Symmetric cone wikipedia , lookup
Rotation matrix wikipedia , lookup
Linear least squares (mathematics) wikipedia , lookup
Jordan normal form wikipedia , lookup
Principal component analysis wikipedia , lookup
Determinant wikipedia , lookup
Eigenvalues and eigenvectors wikipedia , lookup
Four-vector wikipedia , lookup
Matrix (mathematics) wikipedia , lookup
Perron–Frobenius theorem wikipedia , lookup
Orthogonal matrix wikipedia , lookup
Singular-value decomposition wikipedia , lookup
System of linear equations wikipedia , lookup
Matrix calculus wikipedia , lookup
Cayley–Hamilton theorem wikipedia , lookup
Matrix multiplication wikipedia , lookup
Numerical Computation Lecture 6: Linear Systems – part II United International College Review Presentation • 10 minutes for review presentation. Review • During our Last Two Classes we covered: – Linear Systems: Gaussian Elimination – Section 3.1 in Pav – Sections 2.1, 2.2, 2.3 in Moler Today • We will cover: – Linear Systems: LU Factorization (or Decomposition) – Section 3.3 in Pav – Sections 2.4, 2.5 in Moler – Linear Algebra Theorems LU Factorization • Today we will show that the Gaussian Elimination method can be used to factor (or decompose) a square, invertible, matrix A into two parts, A = LU, where: – L is a lower triangular matrix with 1’s on the diagonal, and – U is an upper triangular matrix LU Factorization • A= LU • We call this a LU Factorization of A. LU Factorization Example • Consider the augmented matrix for Ax=b: • Gaussian Elimination (with no row swaps) yields: LU Factorization Example • Let’s Consider the first step in the process – that of creating 0’s in first column: • This can be achieved by multiplying the original matrix [A|b] by M1 LU Factorization Example • Thus, M1 [A|b] = • In the next step of Gaussian Elimination, we pivot on a22 to get: • We can view this as multiplying M1 [A|b] by LU Factorization Example • Thus, M2 M1 [A|b] = • In the last step of Gaussian Elimination, we pivot on a33 to get: • We can view this as multiplying M2 M1 [A|b] by LU Factorization Example • Thus, M3 M2 M1 [A|b] = • So, the original problem of solving Ax=b can now be thought of as solving M3 M2 M1 Ax = M3 M2 M1 b LU Factorization Example • Note that M3 M2 M1 A is upper triangular: • Thus, • We hope that L is lower triangular LU Factorization Example • Recall: In Exercise 3.6 you proved that the inverse to the matrix • Is the matrix LU Factorization Example • Thus, L = M1-1 M2-1 M3-1 LU Factorization Example • So, A can be factored as A=LU Solving Ax=b using LU Factorization • To solve Ax=b we can do the following: – Factor A = LU – Solve the two equations: • Lz = b • Ux = z – This is the same as L(Ux) = b or Ax=b. LU Factorization Example • Our example was Ax=b: • Factor: LU Factorization Example • Solve Lz=b using forward substitution: • We get: LU Factorization Example • Solve Ux=z using back substitution: • We get the solution vector for x: (Note typo in Pav, page 36 bottom of page “z” should be “x”) LU Factorization Theorem • Theorem 3.3. If A is an nxn matrix, and Gaussian Elimination does not encounter a zero pivot (no row swaps), then the algorithm described in the example above generates a LU factorization of A, where L is a lower triangular matrix (with 1’s on the diagonal), and U is an upper triangular matrix. • Proof: (omitted) LU Factorization Matlab Function (1 of 2) function [ L U ] = lu_gauss(A) % This function computes the LU factorization of A % Assumes A is not singular and that Gauss Elimination requires no row swaps [n,m] = size(A); % n = #rows, m = # columns if n ~= m; error('A is not a square matrix'); end for k = 1:n-1 % for each row (except last) if A(k,k) == 0, error('Null diagonal element'); end for i = k+1:n % for row i below row k m = A(i,k)/A(k,k); % m = scalar for row i A(i,k) = m; % Put scalar for row i in (i,k) position in A. % We do this to store L values. Since the lower % triangular part of A gets zeroed out in GE, we % can use it as a storage place for values of L. LU Factorization Matlab Function (1 of 2) for j = k+1:n % Subtract m*row k from row i -> row i % We only need to do this for columns k+1 to n % since the values below A(k,k) will be zero. A(i,j) = A(i,j) - m*A(k,j); end end end % At this point, A should be a matrix where the upper triangular % part of A is the matrix U and the rest of A below the diagonal % is L (but missing the 1's on the diagonal). L = eye(n) + tril(A, -1); % eye(n) is a matrix with 1's on diagonal U = triu(A); end LU Factorization Matlab >> A=[2 1 1 3; 4 4 0 7; 6 5 4 17; 2 -1 0 7] A= 2 1 1 3 4 4 0 7 6 5 4 17 2 -1 0 7 >> [l u] = lu_gauss(A); LU Factorization Matlab >> >> l l= 1 0 0 0 2 1 0 0 3 1 1 0 1 -1 -1 1 >> u u= 2 1 1 3 0 2 -2 1 0 0 3 7 0 0 0 12 LU Factorization Matlab Solve Function • Class Discussion: What must we do to modify the function lu_gauss so that we can compute the solution to Ax=b using the LU factorization? • New function: lu_solve on handouts. Discuss and consider Matlab output -> LU Factorization Matlab >>> [x z] = lu_solve(A, b); >> z z= 7 -3 13 18 >> x x= 1.5417 -1.4167 0.8333 1.5000 Linear Algebra Review • Definition: Two matrices A and B are equal if they have the same number of rows and columns and if aij = bij . • Definition: If A and B are nxm matrices, the sum A + B is the nxm matrix with entries aij + bij . • Definition: If A is nxm and c is a real number, the scalar multiplication cA is the nxm matrix with entries c aij . Linear Algebra Review • Note: In Matlab we multiply two matrices by using ‘*’ • >> A=[1 2; 3 4]; • >> B=[1 1; 2 2]; • >> A*B Linear Algebra Review • Note: In Matlab we multiply two matrices by using the ‘*’ operator: >> A=[1 2; 3 4]; >> B=[1 1; 2 2]; >> A*B ans = 5 5 11 11 Linear Algebra Review Linear Algebra Review • Note: In Matlab, we can create an identity matrix by typing eye(n) >> eye(4) ans = 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 Linear Algebra Review Linear Algebra Review Linear Algebra Review • Note: In Matlab, we use the ' symbol to find the transpose: >> A=[1 2; 3 4] A= 1 2 3 4 >> A' ans = 1 3 2 4