Hi all,
I am a little puzzled as to why the first of the three eigenvalue
statements below is equivalent to the second and not the third. I would
have expected it to be the other way round!?
Would be great if someone could briefly comment. Many thanks.
Michael
#include <oxstd.h>
main()
{
decl S00, S10, S11;
decl evals, evecs;
S10 = <
-0.083208, -0.22496, 0.099654, 0.22196, -0.13083;
0.52545, 0.98900, -0.47395, -1.0458, 0.48258;
0.82824, 1.5587, -0.79943, -1.5794, 0.93226>;
S11 = <
1.1706, 0.0028167, 0.0031611;
0.0028167, 1.0048, 0.034944;
0.0031611, 0.034944, 0.97591>;
S00 = <
66.627, 52.635, 35.235, 17.835, 2.3925;
52.635, 82.290, 63.990, 32.390, 4.3450;
35.235, 63.990, 83.090, 48.790, 6.5450;
17.835, 32.390, 48.790, 51.890, 8.7450;
2.3925, 4.3450, 6.5450, 8.7450, 3.5475>;
decl sqrtS11 = sqrt(S11);
eigensymgen(S10*invert(S00)*S10', S11, &evals, &evecs);
print("\n\nevals", evals, "\nevecs", evecs);
eigen(invert(S11)*S10*invert(S00)*S10', &evals, &evecs);
print("\nevals", evals, "\nevecs", evecs);
eigen(invert(sqrtS11)*S10*invert(S00)*S10'*invert(sqrtS11), &evals,
&evecs);
print("\nevals", evals, "\nevecs", evecs);
}
________________________________
Michael Massmann
Lincoln College
Oxford OX1 3DR
England
tel: +44 (0)1865 271091
fax: +44 (0)1865 271094
|