MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Extracting eigenvectors of symbolic matrices

  • To: mathgroup at smc.vnet.net
  • Subject: [mg111952] Extracting eigenvectors of symbolic matrices
  • From: carlos at colorado.edu
  • Date: Sat, 21 Aug 2010 04:18:10 -0400 (EDT)

For a research project in progress I need to find eigenvalues
and eigenvectors of real symbolic matrices of moderate size:
3 through 12. These matrices are what I have labeled
"S-orthogonal": they are similar to orthogonal matrices
so all of their eigenvalues are on the unit circle.  Here is a
simple example. Given =F6 (angle in radians)

  c2=Cos[2*=F6];  s2=Sin[2*=F6];
  T={{1+c2,1-c2,s2},{1-c2,1+c2,-s2},
        {-2*s2,2*s2,2*c2}}/2;

(This one is actually orthogonal).
Eigenvalues: ev={1,c2-I*s2,c2+I*s2}.  Spectral decomposition:
T=X D YT, where D=DiagonalMatrix[ev] and

  YT={{1,1,0},{-I,I,1},{I,-I,1}};  X={{2,I,-I},{2,-I,I},{0,2,2}}/4;

are left (transposed) and right eigenvectors.  For this kind of n x n
matrices I was able to get symbolic eigenvalues and eigenvectors
 up to n=8. It failed for this one (n=10)

  c=Cos[=F6]; s=Sin[=F6]; c3=Cos[3*=F6];
  s3=Sin[3*=F6]; c5=Cos[5*=F6]; s5=Sin[5*=F6];
  f1=10*c +5*c3+c5; f2=2*c -c3-c5; f3=2*c -3*c3+c5; f4=c +2*c3+c5;
  f5=c -c5; f6=2*c -c3-c5; f7=c3 -c5; f8=2*c +3*c3+3*c5;
  f9=6*c +7*c3+3*c5; f10=c3 -c5; f11=2*c -5*c3+3*c5; f12=c -3*c3+2*=
c5;
  f13=4*c +3*c3+c5; g1=2*s +3*s3+s5; g2=2*s +s3-s5; g3=10*s -5*s3+s=
5;
  g4=s3+s5; g5=s-s5; g6=s-2*s3+s5; g7=2*s-3*s3+3*s5; g8=6*s-7*s3+=
3*s5;
  g9=2*s+5*s3+3*s5; g10=s+3*s3+2*s5; g11=4*s-3*s3+s5;
  T={{f1,  g1,  2*f6,   4*g2,   4*f6,  2*g2,   f3,   g3,   g1,   f3},
     {-3*g1,   f9,  6*g4,  12*f5, -12*g5, 6*f10,  -g8, 3*f3,-3*f6,
3*g2},
     { 3*f6,  -g9,  2*f8,  12*g4,-12*f10,  2*g7, -f11, 3*g2, 3*g2,
3*f6},
     {  -g2,   f6, -2*g4,   4*f4,  -4*g6,-2*f10,  -g2,   f6,  -f3,
g1},
     {   f6,   g2,-2*f10,   4*g6,   4*f4,  2*g4,   f6,   g2,  -g1,  -
f3},
     {-3*g2, -f11, -2*g7,-12*f10, -12*g4,  2*f8,   g9, 3*f6,
3*f6,-3*g2},
     { 3*f3,   g8, 6*f10,  12*g5,  12*f5, -6*g4,   f9,
3*g1,-3*g2,-3*f6},
     {  -g3,   f3, -2*g2,   4*f6,  -4*g2,  2*f6,  -g1,   f1,   f3,  -
g1},
     {-2*g1,-2*f6, -4*g5, -4*f12,  4*g10,  4*f5, 2*g2,
2*f3,2*f13,-2*g11},
     { 2*f3,-2*g2,  4*f5, -4*g10, -4*f12,  4*g5,-2*f6, 2*g1,2*g11,
2*f13}}/16;

Its characteristic polynomial is
C(=EB)=((1+=EB^2-2*=EB*Cos[=F6])^2*(1+=EB^2-2*=EB*Cos[3*=F6])^2*(1+=EB^2-=
2*=EB*Cos[5*=F6]);
so Eigenvalues should be able to extract the eigenvalues in
closed form, but it didnt.

Here is the question: suppose I get the 10 eigenvalues directly by
solving C(=EB)=0 with Solve. Is there an "eigenvector capturer"
in Mathematica that given the original symbolic matrix and
one root at a time, returns a right eigenvector?

(For left eigenvectors, transpose the matrix).  Note: I tried
a "perturbed"  inverse iteration using LinearSolve and
Series, but it seems hopelessly slow.






  • Prev by Date: Re: "Abort Evaluation" does not work
  • Next by Date: Launch kernel and packages from Mac OS's launchd utility
  • Previous by thread: Presentation capabilities - Fullscreen images?
  • Next by thread: Launch kernel and packages from Mac OS's launchd utility