Re: Cannot solve 3x3 Eigensystem

• To: mathgroup at smc.vnet.net
• Subject: [mg68618] Re: Cannot solve 3x3 Eigensystem
• From: Peter Pein <petsie at dordos.net>
• Date: Sun, 13 Aug 2006 05:52:26 -0400 (EDT)
• References: <ebhi7q\$12a\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```kdittmer schrieb:
> The result of
>
> FullSimplify[Eigensystem[{{a1, b1, 0}, {b1, a2, b2}, {0, b2, a3}},
> Cubics-> True], {b1, b2, a1, a2, a3} \[Element] Reals]
>
> is unfortunately containing Root[].
>
> How do i get my exact solution?
>

Hello,

1.) Root objects _are_ exact.
2.) To get the redical representation, use ToRadicals:

In[1]:=
rt = Root[1 + #1^2 + #1^3 & , 1];
ToRadicals[rt]
Out[2]=
(1/3)*(-1 - (2/(29 - 3*Sqrt[93]))^(1/3) - ((1/2)*(29 - 3*Sqrt[93]))^(1/3))

but then, the time used by FullSimplify is wasted, because FullSimplify
uses RootReduce, to get Root[]s:

In[3]:=
eqn = First[rt][x] == 0;
s1 = FullSimplify[Solve[eqn]]
Out[4]=
{{x -> Root[1 + #1^2 + #1^3 & , 1]}, {x -> Root[1 + #1^2 + #1^3 & , 2]},
{x -> Root[1 + #1^2 + #1^3 & , 3]}}

If you don't like Roots, use Simplify instead:

In[5]:=
s2 = Simplify[Solve[eqn]]
Out[5]=
{{x -> (1/3)*(-1 - (2/(29 - 3*Sqrt[93]))^(1/3) - ((1/2)*(29 -
3*Sqrt[93]))^(1/3))},
{x -> (1/12)*(-4 + (2 - 2*I*Sqrt[3])*(2/(29 - 3*Sqrt[93]))^(1/3) +
2^(2/3)*(1 + I*Sqrt[3])*(29 - 3*Sqrt[93])^(1/3))},
{x -> (1/12)*(-4 + (2 + 2*I*Sqrt[3])*(2/(29 - 3*Sqrt[93]))^(1/3) +
2^(2/3)*(1 - I*Sqrt[3])*(29 - 3*Sqrt[93])^(1/3))}}

or block RootReduce:

In[6]:=
<< "Developer`"
ClearCache[]
s3 = Block[{RootReduce}, FullSimplify[Solve[eqn]]]
Out[8]=
<omitted; same as Out[5]>

In this case the result is the same as using Simplify:

In[9]:=
s2 === s3
Out[9]=
True

Hope that helps,

Peter

```

• Prev by Date: Re: benchmark...why don't you send it back?
• Next by Date: Postscipt fonts in graphics
• Previous by thread: Re: Cannot solve 3x3 Eigensystem
• Next by thread: Scientific Notation on Y-axis of ListPlots