Re: Exact real solutions of cubic equations
- To: mathgroup at smc.vnet.net
- Subject: [mg46960] Re: Exact real solutions of cubic equations
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Wed, 17 Mar 2004 02:53:40 -0500 (EST)
- Organization: The University of Western Australia
- References: <c387p7$bij$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <c387p7$bij$1 at smc.vnet.net>, JonasB at iui.se wrote: > I would like to find the _exact_ real roots of some cubic polynomials. > Mathematica seems to have problems determining that a root is real > > Solve[1 + a s + b s^2 + s^3 == 0, s] > > results in three complex solutions for a = -4 and b = 3. FullSimplify does > not help, either it does nothing or it gets stuck, depending on the values > of a and b. Use ComplexExpand: Solve[s^3 + 3 s^2 - 4 s + 1 == 0, s] /. (a_ -> b_) :> a -> ComplexExpand[b] // Simplify > Does anyone know of a package that can simplify expressions > with complex numbers? Physics 52 (3), 269 (1984)), a cubic of the form x^3 - a x + b has three real roots when a > 0 and 27 b^2 < 4 a^3. In this case, the roots can be written as r[n_] = 2 Sqrt[a/3] Cos[Pi (2n - 1)/3 + ArcCos[(b/2)/(a/3)^(3/2)]/3] where n = 1,2,3. This is easily verified: Simplify[x^3 - a x + b == 0 /. x -> r[n], Element[n,Integers]] True Your cubic reduces to the form x^3 - a x + b by a linear transformation: Simplify[s^3 + 3 s^2 - 4 s + 1 /. s -> s - 1] s^3 - 7 s + 7 Clearly a = 7 > 0 and 27 7^2 < 4 7^3 ==> 27 < 28 so the three roots are 2 Sqrt[7/3] Cos[Pi (2n - 1)/3 + ArcCos[(7/2)/(7/3)^(3/2)]/3] - 1 where n = 1,2,3. However, when all is said and done, I still do not see that these exact solutions are all that useful. Instead, why not express the solutions exactly in terms of Root objects SetOptions[Roots, Cubics -> False, Quartics -> False] Then, Solve[1 + a s + b s^2 + s^3 == 0, s] gives the three roots as exact root objects, as functions of the parameters a and b. You will see that this representation is useful if you need to compute a derivate with respect to either or both of these parameters. For example, computing the partial derivative of the first root with respect to a, Simplify[D[Root[#1^3 + b*#1^2 + a*#1 + 1 & , 1], a]] one obtains a simple function of the root as the result. Cheers, Paul -- Paul Abbott Phone: +61 8 9380 2734 School of Physics, M013 Fax: +61 8 9380 1014 The University of Western Australia (CRICOS Provider No 00126G) 35 Stirling Highway Crawley WA 6009 mailto:paul at physics.uwa.edu.au AUSTRALIA http://physics.uwa.edu.au/~paul
- Follow-Ups:
- new DSolve feature
- From: Selwyn Hollis <sh2.7183@misspelled.erthlink.net>
- new DSolve feature