Symbolic Eigenvectors
- To: mathgroup at yoda.physics.unc.edu
- Subject: Symbolic Eigenvectors
- From: Jim Ferguson <ferguson at rest.tasc.com>
- Date: Mon, 4 Oct 93 08:30:30 -0400
Can anyone suggest a "plan of attack"?
I am given a four dimensional, symbolic, real, symmetric covariance
matrix. This matrix represents the correlations of four, zero mean,
normally distributed random variables. All entries in the matrix are
real and all diagonal entries are positive.
I am trying to find the rotation matrix that will diagonalize the
given covariance matrix. This is the same as saying that I am trying
to find all of the eigenvectors for the covariance matrix.
I know from theory that for a real, symmetric, positive definite
matrix there is a full set of eigenvectors and that all of the
eigenvalues are real.
Unfortunately, I have been unable to get Mathematica to return these
eigenvectors.
Can anyone suggest some neat mathematical or Mathematica tricks that
will help Mathematica converge to a solution?
Previous failed attempts:
corr= {{a, b, c, d },
{b, f, g, h },
{c, g, k, l },
{d, h, l, p } }
(1) evectors = Eigenvectors[ corr ];
(*Never converges...5days on a PC-386DX Mathematica 2.2 *)
(* After 3 days on a Next Mathematica 2.1, Next auto reboots *)
eigenMatrix = corr - e IdentityMatrix[4];
(2) Find the eigenvectors manually by solving the
chararteristic polynomial for eigenMatrix.
{k0,k1,k2,k3,k4} = CoefficientList[Det[eigenMatrix], e];
ev = Solve[ e^4 + c3 e^3 + c2 e^2 + c1 e + c0 == 0, e ];
ev1 = e /. ev[[1]];
ev1 = Simplify[ev1 /. {c0->k0, c1->k1, c2->k2, c3->k3}];
ev1 = Simplify[ComplexExpand[ ev1 ]];
ematrix = eigenMatrix /. e->ev1;
evec1 = NullSpace[ ematrix ];
.
. Do same for the remaining three vectors
. if the first one ever returned
Thanks for any help,
Jim Ferguson
email: ferguson at rest.tasc.com