MATLAB Answers

# How to tell if a random 3x3 Matrix is invertible

248 views (last 30 days)
Kyle Donk on 10 Jan 2020
Edited: Meg Noah on 11 Jan 2020
I have to produce a random 3x3 matrix A that is invertible and display it. I have a couple questions:
1. How do I know when a matrix is invertible? I used the command (inv) on the random 3x3 matrix that I had created and I got a 3x3 matrix with different numbers. Does this mean that the matrix is invertible?
2. I also got a hint with the question: Use a while-loop until you get one with non-zero determinant. I am confused by this because I used the determinants command (det) on my 3x3 matrix and got a nonzero determinant. I feel like I might be missing something here.
##### 2 CommentsShowHide 1 older comment
Stephen Cobeldick on 10 Jan 2020

Sign in to comment.

### Accepted Answer

Meg Noah on 10 Jan 2020
Edited: Meg Noah on 11 Jan 2020
Back to your question, I have to produce a random 3x3 matrix A that is invertible and display it. One way could be to start with a matrix that you know will have a determinant of zero and then add random noise to each element. It worked for me to generate random matrices that are invertable.
for MC = 1:10000
% first create a matrix that you know has a low rcond value:
A = double(uint32(1000.*rand(3,1)).*uint32(1000.*rand(1,3)));
% then add noise
C = A + 100.0*rand(3,3);
if (rcond(C)<1e-20)
disp('algorithm fails');
C
inv(C)
end
end
There were objections to this suggestion about checking the determinant value. I had said: If the determinant of a square matrix is 0, it can't be inverted. I'd suggestion to test with - using your tolerance on the last argument. See comments below.
##### 7 CommentsShowHide 6 older comments
Meg Noah on 11 Jan 2020
But that wasn't the question. He has a task to produce a matrix that can be inverted.

Sign in to comment.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!