Edmond,
Your suggestion of using explicitly symmetric matrix and |TMatrixDSymEigen| worked and I have currently no trouble. Not only that but the MC based on this eigen problem runs a lot faster with explicit symmetric matrix.
Maybe if I go to even larger matrices I'll break it again, but for the moment things are fine.
-Thanks, Arthr
Hi Arthur,
What about using the fact that a correlation matrix is positive definite and symmetric, so use TMatrixDSymEigen.
The TMatrixDEigen is based on a Fortran subroutine in EISPACK, so moving to another package might not help that much because it is most likely also based on EISPACK.
Hi Rooters,
I am having trouble with |TMatrixDEigen| for larger matrices. I have made 200x200 matrices of correltions which I'm trying to digagonalize. It mostly works, but sometimes fails with
root [13] TMatrixDEigen emat(*scanMatrix) Error in <MakeSchurr>: too many iterations
It apparently thinks the matrix is too close to singular.
However, I can still find diagonalilzed variables with ugly, homemade Gram-Schmidt (which I'm trying to replace with something better).
The matrix that gives trouble has in fact smaller correlations than some of the ones that work successfully.
So what's going on here? And how do I fix it? Do I have to move beyond root?
-AE
A.E. Snyder, The Former Group C (TFC) \!c*p?/ SLAC Mail Stop #95 ((. .)) Box 4349 | Stanford, Ca, USA, 94309 '\|/` e-mail:snyder_at_slac.stanford.edu<mailto:snyder_at_slac.stanford.edu> o phone:650-926-2701 _ http://www.slac.stanford.edu/~snyder BaBar FAX:707-313-0250 Collaboration & Fermi/GLASTReceived on Fri Jun 08 2012 - 00:38:46 CEST
This archive was generated by hypermail 2.2.0 : Fri Jun 08 2012 - 11:50:01 CEST