[R] spectral decomposition for near-singular pd matrices
Prasenjit Kapat
kapatp at gmail.com
Thu Jul 17 02:56:43 CEST 2008
Moshe Olshansky <m_olshansky <at> yahoo.com> writes:
> How large is your matrix?
Right now I am looking at sizes between 30x30 to 150x150, though it will
increase in future.
> Are the very small eigenvalues well separated?
>
> If your matrix is not very small and the lower eigenvalues are clustered,
this may be a really hard problem!
Here are the deciles of the eigenvalues (using eigen()) from a typical random
generation (30x30):
Min 10th 20th 30th 40th
-1.132398e-16 -6.132983e-17 3.262002e-18 1.972702e-17 8.429709e-17
50th 60th 70th 80th 90th Max
2.065645e-13 1.624553e-09 4.730935e-06 0.00443353 0.9171549 16.5156
I am guessing they are *not* "well-separated."
> You may need a special purpose algorithm and/or higher precision arithmetic.
> If your matrix is A and there exists a sequence of matrices A1,A2,...An = A
such that A1 is "good", A2 is a bit
> worse (and is not very different from A1), etc., you may be able to compute
the eigensystem for A1 and then
> track it down to A2, A3,...,An. I have worked on such problems some 15 years
ago but I believe that by now
> there should be packages doing this (I do not know whether they exist in R).
I will have to think on the possibility of such a product-decomposition. But
even if it were possible, it would be an infinite product (just thinking out
loud).
Thanks again,
PK
PS: Kindly CC me when replying.
More information about the R-help
mailing list