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