[R] rank of a matrix
Duncan Murdoch
murdoch at stats.uwo.ca
Wed May 4 21:32:14 CEST 2005
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
More information about the R-help
mailing list