Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

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



  • Prev by Date: (Revisited) Intercepting and Controlling Mathematica Exceptions.
  • Next by Date: Re: Re: Finding the periphery of a region
  • Previous by thread: Re: radical equation once more!
  • Next by thread: Using Mathematica to explore basic genealogical concepts