Invertibility of random matrices

It bothers me that getting a random orthonormal basis in Matlab is as simple as onb = orth(rand(n)). Why does this work? Equivalently, why, if you construct a matrix in M_n(\R) with entries chosen i.i.d uniformly in the interval [0,1], is this matrix with high probability invertible? Slightly more general: if k \leq n vectors are constructed in the same manner, what is the probability that the resulting collection of vectors is independent?

3 Responses to “Invertibility of random matrices”

  1. ObsessiveMathsFreak Says:

    The matlab code could be cheating by getting a random matrix, checking for full rank, then orthonormalising it. The right way to do this in my opinion would be to pick a random point on S^(n-1), then pick another and orthonormalise, then another, etc, etc, until you have a full set of orthonormal vectors. However, I’m not sure how one would actually go about properly selecting a random point on S^(n-1).

  2. ObsessiveMathsFreak Says:

    Sorry for the double post. I forgot. In answer to your second question, the odds of getting a full ranked matrix are pretty high. It’s virtually impossible for a random matrix in R^(nxn) to be singular…. I think.

  3. Alex Says:

    For your first point, there isn’t any cheating: the rand call generates a matrix by choosing random i.i.d. U(0,1) entries, then the orth call runs some orthogonalizing procedure on them — you only get back a square matrix if the original matrix was full rank. I think this is equivalent to the procedure you describe. Also, selecting a random point then projecting it onto the sphere seems like a good way to select a random point in S^{n-1}.

    For the second, yep. If you have k < n-1 vectors, then the probability of selecting a vector that lies in the span of those is the measure of the (appropriate section of the) hyperplane they define over the measure of the hypercube: 0.

Leave a Reply