Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2002
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2002

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

Search the Archive

Re: Re: information on Eigensystem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg33623] Re: [mg33594] Re: information on Eigensystem
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Wed, 3 Apr 2002 18:08:34 -0500 (EST)
  • References: <a890u0$nto$1@smc.vnet.net> <a8br2m$3lg$1@smc.vnet.net> <200204030613.BAA07724@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Bettina wrote:
> 
> Hi
> I have another question concerning Eigensystem: I try to get the
> Eigensystem for heritian (complex) matrices. Following my test matrix
> M={{65,3+6i,12-6i,4-2i},{3-6i,30,0,30},{12+6i,0,9,3},{4+2i,30,3,46}}.
> But if I try to get Eigensystem[M] nothing comes up. What could be the
> problem? I have already found out (archive) that there seem to be some
> special effects when using Eigensystem on complex matrices, but these
> messages dated from 1999 and 2000. Has anything changed since then? Is
> there a way to solve my problem?
> Thanks for help
> Bettina
> [...]

You do not have a matrix of complex values, but rather a symbolic
matrix. Eigensystem gets bogged down in extracting null spaces (finding
eigenvectors) due to trouble testing lengthy symbolic radical
expressions to see if they are zero.

To work with the complex valued matrix:

mat = {
	{65,3+6*I,12-6*I,4-2*I},
	{3-6*I,30,0,30},
	{12+6*I,0,9,3},
	{4+2*I,30,3,46}};
Eigensystem[mat]

One way to get improved speed is to turn off use of radical formulas in
symbolic Roots. This will also have an effect on exact complex-valued
matrices such as mat above (results will be much more concise, and often
obtained faster).

SetOptions[Roots, Cubics->False, Quartics->False];

mat2 = {
	{65,3+6i,12-6i,4-2i},
	{3-6i,30,0,30},
	{12+6i,0,9,3},
	{4+2i,30,3,46}};

Now you can get the Eigensystem in reasonable time.

In[3]:= Timing[{vals,vecs} = Eigensystem[mat2];]
Out[3]= {0.11 Second, Null}

In[6]:= InputForm[vals]  
Out[6]//InputForm= 
{Root[194805 + 30780*i^2 - 68070*#1 - 5520*i^2*#1 + 6511*#1^2 +
76*i^2*#1^2 - 
    150*#1^3 + #1^4 & , 1], 
 Root[194805 + 30780*i^2 - 68070*#1 - 5520*i^2*#1 + 6511*#1^2 +
76*i^2*#1^2 - 
    150*#1^3 + #1^4 & , 2], 
 Root[194805 + 30780*i^2 - 68070*#1 - 5520*i^2*#1 + 6511*#1^2 +
76*i^2*#1^2 - 
    150*#1^3 + #1^4 & , 3], 
 Root[194805 + 30780*i^2 - 68070*#1 - 5520*i^2*#1 + 6511*#1^2 +
76*i^2*#1^2 - 
    150*#1^3 + #1^4 & , 4]}


Daniel Lichtblau
Wolfram Research


  • Prev by Date: problems with ContourPlot
  • Next by Date: Re: Re: information on Eigensystem
  • Previous by thread: Re: information on Eigensystem
  • Next by thread: Re: information on Eigensystem