Homework 6

Section 7.1: 1b, 2, 8

Section 7.2: 1a-c, 6, 9

Section 9.1: 3a, 4d

Section 7.3: 1a, 11, 13

Contents

Computer Assignment 6

Due Thursday, Nov 10 at 11:59pm

Use the following pseudo-code to implement the LU factorization with partial pivoting.

INPUT: An n x n matrix A
OUTPUT: An n x n permutation matrix P, an n x n lower-triangular matrix
L and an n x x upper-triangular matrix U such that PA = LU
STEP 1: Set P = I, L = I
STEP 2: For j = 1,2,.. n-1 do STEPS
  STEP 3: Set MAX to be the maximum of abs(A(i,j)) for i =
  j,j+1,..,n
  STEP 4: If MAX = 0 then
    DISPLAY('Method failed: matrix is rank deficient')
    OUTPUT(A);
    STOP.
  STEP 5: Let p be the smallest number such that MAX = abs(A(p,j));
  STEP 6: Do Rj <--> Rp on A;
  STEP 7: Do Cj <--> Cp on L;
  STEP 8: Do Rj <--> Rp on L;
  STEP 9: Do Rj <--> Rp on P;
  STEP 10: For i = j+1,j+2,...,n do STEPS 11-12
    STEP 11: Set L(i,j) = A(i,j)/A(j,j)
    STEP 12: Do Ri - L(i,j) Rj --> Ri on A
STEP 13: OUTPUT([P,L,U]); STOP.

Demonstrate that your code works by consdering

norm(P*A-L*U)

Explain why this shows that the factorization worked.

Construct a singular matrix and show that the error message is returned.

Solution

function [P,L,A] = LU(A)
    n = length(A);
    P = eye(n);
    L = eye(n);
    % Your code here
end