On Fri, 17 Apr 2009, Stavros Macrakis wrote:
< In this cubic, all three roots are real, but cannot be expressed with
< real radicals, even in principle. See
< http://en.wikipedia.org/wiki/Casus_irreducibilis . They *can* be
< expressed as real expressions involving trigonometric functions, which
< is what rectform does for you.
<
< That said, I wonder why you want the roots expressed as symbolic
< expressions. I suppose there must be some application where
< (8*cos(atan(sqrt(2101)/(69*sqrt(3)))/3)-sqrt(3))/sqrt(3) is more
< useful than 3.584428340330492, but usually the latter is what you
< really want, in which case why not calculate it directly using
< realroots or allroots (which, unlike solve, work for *all*
< polynomials, not just those which reduce to the quartic case or
< simpler by factorization or polynomial decomposition).
<
< -s
<
<
< On Fri, Apr 17, 2009 at 10:34 AM, Raymond Toy
< <raymond.toy at stericsson.com> wrote:
< > solve(A^3+3*A^2-13*A-38=0,A);
You may want to do the computations with bfloats, in which case Raymond
Toy wrote a package `jtroot3' which contains `polyroots', the bfloat
implementation of `allroots' (as I understand Raymond's documentation).
I insert this comment because this extension is not presently documented in the
maxima online help, and I only came across it by accident.
(%i1) load(jtroot3)$
(%i2) fpprec:120$
(%i3) f:A^3+3*A^2-13*A-38$
(%i4) polyroots(f,A);
(%o4)
[6.083493012b-210*%i-2.805118086b0,-3.041746506b-210*%i-3.779310253b0,
3.58442834b0-3.041746506b-210*%i]
Leo.
--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.