How would you generate a random matrix that is not singular in MATLAB.?
I know a matrix determinant can be used to do check this, but after reading MATLAB determinant:
“Using det(X) == 0 as a test for matrix singularity is appropriate only for matrices of modest order with small integer entries. Testing singularity using abs(det(X)) <= tolerance is not recommended as it is difficult to choose the correct tolerance. The function cond(X) can check for singular and nearly singular matrices.”
So if I want to generate a big random matrix (axb) a=5000, b=5000, How to do it??.
A randomly generated matrix will be full rank (and hence invertible, if square) with probability 1:
you can check this by using
min(svd(A)), and verifying that the smallest singular value is larger than zero.This is a well-known fact, but here’s an example paper if you want one.