Write a computer function that takes a general n times n matrix A as input and c
ID: 3027698 • Letter: W
Question
Write a computer function that takes a general n times n matrix A as input and computes its inverse A^-1 as output. Implement the algorithm by hand, i.e., you shouldn't just call the Matlab function that computes the inverse. Apply this function to compute, numerically, the inverse of the matrix of the previous problem. Do the same for Hilbert matrices of sizes 10 times 10, 100 times 100 and 200 times 200. In each case, verify numerically that AA^-1 = I Where I is the identity matrix. What do you observe?Explanation / Answer
function b = mat_inv2(a)
% Find dimensions of input matrix
[r,c] = size(a);
% If input matrix is not square, stop function
if r ~= c
disp('Only Square Matrices, please')
b = [];
return
end
% Target identity matrix to be transformed into the output
% inverse matrix
b = eye(r);
%The following code actually performs the matrix inversion by working
% on each element of the input
for j = 1 : r
for i = j : r
if a(i,j) ~= 0
for k = 1 : r
s = a(j,k); a(j,k) = a(i,k); a(i,k) = s;
s = b(j,k); b(j,k) = b(i,k); b(i,k) = s;
end
t = 1/a(j,j);
for k = 1 : r
a(j,k) = t * a(j,k);
b(j,k) = t * b(j,k);
end
for L = 1 : r
if L ~= j
t = -a(L,j);
for k = 1 : r
a(L,k) = a(L,k) + t * a(j,k);
b(L,k) = b(L,k) + t * b(j,k);
end
end
end
end
break
end
% Display warning if a row full of zeros is found
if a(i,j) == 0
disp('Warning: Singular Matrix')
b = 'error';
return
end
end
% Show the evolution of the input matrix, so that we can
% confirm that it became an identity matrix.
a
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.