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
with entries chosen i.i.d uniformly in the interval
, is this matrix with high probability invertible? Slightly more general: if
vectors are constructed in the same manner, what is the probability that the resulting collection of vectors is independent?
December 23rd, 2007 at 8:06 pm
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).
December 23rd, 2007 at 8:08 pm
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.
December 23rd, 2007 at 11:27 pm
For your first point, there isn’t any cheating: the rand call generates a matrix by choosing random i.i.d.
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
.
For the second, yep. If you have
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.