Re: radical equation once more!

*To*: mathgroup at smc.vnet.net*Subject*: [mg72069] Re: radical equation once more!*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Mon, 11 Dec 2006 04:54:38 -0500 (EST)*References*: <421128.34967.qm@web30214.mail.mud.yahoo.com> <BCA4CF36-E5C0-4158-8948-A9893A991D6B@mimuw.edu.pl>

On 10 Dec 2006, at 09:26, Andrzej Kozlowski wrote: > > On 10 Dec 2006, at 02:54, dimitris anagnostou wrote: > > >> --------------------------------------------------------------------- >> ----------------------- >> >> Before proceeding to the post let me thank Andrzej and Daniel >> for their responses to my previous question appeared here >> >> http://groups.google.com/group/comp.soft-sys.math.mathematica/ >> browse_thread/thread/78d57749388d7384/e072ef4f6aa4f9c0? >> hl=en#e072ef4f6aa4f9c0 >> >> So consider again the following equation >> >> req = (2 - x)^2 - 4*Sqrt[1 - x]*Sqrt[1 - c*x] == 0; >> >> with 0<x<1 and 0<c<1. >> >> A quick solution is provided by >> >> Reduce[{req, 0 < x < 1, 0 < c < 1}, {x}, Reals] >> 0 < c < 1 && x == Root[-16 + 16*c + (24 - 16*c)*#1 - 8*#1^2 + #1^3 >> & , >> 1] >> >> Here comes my first question: >> >> Why the following setting returns the same output? >> >> Reduce[{req,0<x<1,0<c<1},{x},Reals,Cubics->True (*the default is >> False*)] >> 0 < c < 1 && x == Root[-16 + 16*c + (24 - 16*c)*#1 - 8*#1^2 + #1^3 >> & , >> 1] > > > Because in the presence of inequalities Reduce will not use the > Cardano and Tartaglia formulas no matter what setting fro the > options cubic and Quartics you use. The main tool used in such > cases is CylindricalDecomposition and that defines having a > function that will be real for all values of the parameter c. Only > using Root[....,1] will give this kind of function. In fact this is > how (probably) mathematica gets this answer. Let > > In[1]:= > req1 = (2 - x)^4 - 16*(1 - x)*(1 - c*x) == 0; > > In[2]:= > CylindricalDecomposition[req1 && 0 < c < 1 && 0 < x < 1, > {c, x}] > > Out[2]= > 0 < c < 1 && x == Root[#1^3 - 8*#1^2 - 16*c*#1 + 24*#1 + > 16*c - 16 & , 1] > > >> >> And here comes my second question: >> >> With the Root object, somehow, we obtain a closed form root which >> is valid for >> 0<x,c<1. >> Converting it to radical we lost that and we must consider in more >> detail the range of c. >> >> Is it possible to get a radical expression which is equivalent to the >> Root object? >> > > In general the answer is: no. > > Andrzej Kozlowski I thought I would make it clear what I meant by: "in general". Of course you can express the root object Root[-16 + 16*c + (24 - 16*c) *#1 - 8*#1^2 + #1^3 &,1] in terms of a single radical over some range of values of c, but not over the whole range 0<c<1. In fact, I think you need these two radicals: rads={-((8 - 48*c)/(6*(45*c + 3*Sqrt[3]*Sqrt[-64*c^3 + 107*c^2 - 62*c + 11] - 17)^(1/3))) + (2/3)*(45*c + 3*Sqrt[3]*Sqrt[-64*c^3 + 107*c^2 - 62*c + 11] - 17)^ (1/3) + 8/3, ((1 + I*Sqrt[3])*(8 - 48*c))/(12*(45*c + 3*Sqrt[3]*Sqrt[-64*c^3 + 107*c^2 - 62*c + 11] - 17)^(1/3)) - (1/3)*(1 - I*Sqrt[3])*(45*c + 3*Sqrt[3]*Sqrt[-64*c^3 + 107*c^2 - 62*c + 11] - 17)^(1/3) + 8/3} to represent Root[-16 + 16*c + (24 - 16*c)*#1 - 8*#1^2 + #1^3 &,1] over the entire range 0<c<1. You have to switch from the first representation to the second one at around c = 0.167. Note that the second radical, although it is expressed in terms of I is actually real for c> 0.167 (approximately): Chop[rads[[2]] /. c -> 0.166] 3.556070866052134 + 1.5439514747297536*I Chop[rads[[2]] /. c -> 0.167] 0.887669352994204 the first radical is real for 0<c<0.166 In[35]:= Chop[rads[[1]] /. c -> 0.166] 0.887858267895731 but Chop[rads[[1]] /. c -> 0.167] 3.5561653235028983 - 1.5389250300801027*I Andrzej Kozlowski