rank of a matrix
Gabor Grothendieck wrote:
In this case, try a lower tolerance (1e-7 is the default):
qr(hilbert(9), tol = 1e-8)$rank
[1] 9
But don't trust the results. For example, create a matrix with 4 identical copies of hilbert(9). This still has rank 9. It's hard to find, though: > h9 <- hilbert(9) > temp <- cbind(h9, h9) > h9times4 <- rbind(temp, temp) > > qr(h9times4,tol=1e-7)$rank [1] 7 > qr(h9times4, tol=1e-8)$rank [1] 10 > qr(h9times4, tol=1e-9)$rank [1] 11 > qr(h9times4, tol=1e-10)$rank [1] 12 There's a tolerance that gives the right answer (1.5e-8 works for me), but how would I know that in a real problem where I didn't already know the answer? Duncan Murdoch