Re: Eigenvalues, any suggestions?
- To: mathgroup at smc.vnet.net
- Subject: [mg43684] Re: [mg43615] Eigenvalues, any suggestions?
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Mon, 29 Sep 2003 01:47:59 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
AC wrote: > > In[1]:= > data={XX\[Rule]100.,YY\[Rule]100.,ZZ\[Rule]100., > XY\[Rule]0.,XZ\[Rule]0.,YZ\[Rule]0.}; > > In[2]:= > Eigenvalues[{{XX,XY,XZ},{XY,YY,YZ},{XZ,YZ,ZZ}}]/.data > > \!\(Power::"infy" \(\(:\)\(\ \)\) " > Infinite expression \!\(1\/0.`\^\(1/3\)\) encountered."\) > > \!\(\* > RowBox[{\(∞::"indet"\), \(\(:\)\(\ \)\), "\<\"Indeterminate > expression \\!\\(0.`\\\\ > 2\\^\\(1/3\\)\\\\ \\*InterpretationBox[\\\"ComplexInfinity\\\", \ > DirectedInfinity[]]\\) encountered.\"\>"}]\) > > \!\(Power::"infy" \(\(:\)\(\ \)\) " > Infinite expression \!\(1\/0.`\^\(1/3\)\) encountered."\) > > \!\(\* > RowBox[{\(∞::"indet"\), \(\(:\)\(\ \)\), "\<\"Indeterminate > expression \\!\\(\\(0.`\\\\ \\(\\((\\(\[LeftSkeleton] 1 \ > \[RightSkeleton]\\))\\)\\)\\\\ \\*InterpretationBox[\\\"ComplexInfinity\\\", \ > DirectedInfinity[]]\\)\\/2\\^\\(2/3\\)\\) encountered.\"\>"}]\) > > \!\(Power::"infy" \(\(:\)\(\ \)\) " > Infinite expression \!\(1\/0.`\^\(1/3\)\) encountered."\) > > General::stop: Further output of Power::infy will be suppressed during this \ > calculation. > > \!\(\* > RowBox[{\(∞::"indet"\), \(\(:\)\(\ \)\), "\<\"Indeterminate > expression \\!\\(\\(0.`\\\\ \\(\\((\\(\[LeftSkeleton] 1 \ > \[RightSkeleton]\\))\\)\\)\\\\ \\*InterpretationBox[\\\"ComplexInfinity\\\", \ > DirectedInfinity[]]\\)\\/2\\^\\(2/3\\)\\) encountered.\"\>"}]\) > > General::stop: Further output of ∞::indet will be suppressed during this \ > calculation. > > Out[2]= > {Indeterminate,Indeterminate,Indeterminate} > > In[3]:= > $Version > > Out[3]= > 4.2 for Microsoft Windows (June 5, 2002) What happens is you are generating symbolic eigenvalues using (behind the scenes) the Cardano formula for roots of the cubic. You then substitute a set of values that happens to be non-generic for the formula, meaning indeterminate forms arise. You can work around this by forcing Eigenvalues to avoid this formula to begin with, as follows. In[5]:= SetOptions[Roots, Cubics->False]; In[6]:= Eigenvalues[{{XX,XY,XZ},{XY,YY,YZ},{XZ,YZ,ZZ}}]/.data Out[6]= {100., 100., 100.} In case it is of interest, this failure case for that Cardano formula is discussed in the "Solving the cubic ..." section of the 1998 Worldwide Mathematica Conference notebook on solving algebraic equations. Either of the URLs below should get you to it. http://library.wolfram.com/infocenter/Conferences/337/ http://library.wolfram.com/conferences/conference98/abstracts/various_ways_to_tackle_algebraic_equations.html Daniel Lichtblau Wolfram Research