Re: How to instruct Math to take a certain (e.g. real)
- To: mathgroup at smc.vnet.net
- Subject: [mg105062] Re: [mg105018] How to instruct Math to take a certain (e.g. real)
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Thu, 19 Nov 2009 05:25:24 -0500 (EST)
- References: <200911181157.GAA04186@smc.vnet.net>
Alexei Boulbitch wrote: > Dear Community, > > I came to a problem, that I cannot check the solution y=0 of equation > > In[345]:= eq = (-8 + y)^(1/3) + (8 + y)^(1/3) == y^(1/3); > eq /. y -> 0 > > Out[346]= False > > just because the expression > > In[347]:= eq[[1]] /. y -> 0 > > Out[347]= 2 + 2 (-1)^(1/3) > > Mathematica does not interpret as zero. And if I ask it to give a > numerical answer > In[348]:= 2 + 2 (-1.)^(1/3) > > Out[348]= 3.+ 1.73205 \[ImaginaryI] > It returns the complex root out of the three possible. > > My question is the following: > > 1) How should I instruct Mathematica to take a certain root that I want > of say, (-1)^(1/3)? > > 2) I think there is a general possibility instruct Mathematica that all > calculations should be done on reals only. Is it right? > > Thank you, Alexei Fractional exponents in Mathematica follow the convention of principal roots of unity. So a negative raised to the 1/3 power will have a positive imaginary part (and a positive real part, that is, it lies in the first quadrant). To achieve your goal you might set up explicit polynomial equations, and use Reduce to find solutions over the reals. Here is how this might be done with your example. p1 = r + s - t; p2 = r^3 - (y-8); p3 = s^3 - (y+8); p4 = t^3 - y; InputForm[Reduce[{p1,p2,p3,p4}==0, y, {r,s,t}, Reals]] Out[31]//InputForm= y == 0 || y == -12*Sqrt[3/7] || y == 12*Sqrt[3/7] Daniel Lichtblau Wolfram Research
- References:
- How to instruct Math to take a certain (e.g. real) type of results
- From: Alexei Boulbitch <Alexei.Boulbitch@iee.lu>
- How to instruct Math to take a certain (e.g. real) type of results