clear disp('Block Gauss elimination') disp('Generate a random 5x5 matrix') disp('Caution: it may not have an inverse') A = rand(5) pause A11 = A(1:2,1:2) pause A12 = A(1:2,3:5) pause A21 = A(3:5,1:2) pause A22 = A(3:5,3:5) pause d = [1 2 3 4 5]' pause d1 = d(1:2) pause d2 = d(3:5) pause disp('sol1 = A\d') sol1 = A\d pause disp('sol2 = inv(A)*d') sol2 = inv(A)*d pause disp('Schur complement via block row operation') A22hat = A22 - A21*inv(A11)*A12 pause d2hat = d2 - A21*inv(A11)*d1 pause disp('Solution via block backward substitution') x2 = inv(A22hat)*d2hat; x1 = inv(A11)*(d1 - A12*x2); disp('sol3 via block Gauss-El.') sol3 =[x1;x2]