Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2000
*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 2000

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

Search the Archive

Re: Differentiating Functions and Root objects [ was Re: ArcCos[]]

  • To: mathgroup at smc.vnet.net
  • Subject: [mg24847] Re: [mg24833] Differentiating Functions and Root objects [ was Re: ArcCos[]]
  • From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
  • Date: Wed, 16 Aug 2000 03:24:11 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

I just noticed a very easy way to find complete solution of Gianluca's
problem. My previous mesage found only the real roots of the equation, but
the original question asked for all solutions, real and complex.  (That is
one difference between using Solve and
Experimental`CylindricalAlgebraicDecomposition.) However, we can actually
prove that there are no solutions except the real ones. To do so let's
consider the problem again:

In[1]:=
f[t_] := Root[-t + 2*#1 + 2*t^2*#1 + #1^3 &, 1]
In[2]:=
Numerator[D[f[t], t]]
Out[2]=
                            2        3
1 - 4 t Root[-t + 2 #1 + 2 t  #1 + #1  & , 1]


For this expression to be zero the following would have to hold:

1 / (4 t)==Root[-t + 2 #1 + 2 t  #1 + #1  & , 1]

But that means that 1/(4t) would have to be a root of the equation


In[3]:=
(t + 2*#1 + 2*t^2*#1 + #1^3 & )[x] == 0
Out[3]=
             2      3
t + 2 x + 2 t  x + x  == 0

So let's substitute 1/(4t) for x and solve:

In[4]:=
sols=Solve[(-t + 2*#1 + 2*t^2*#1 + #1^3 & )[1/(4*t)] == 0, t]
Out[4]=
                 1        3                       1        3
{{t -> -I Sqrt[-(-) + ---------]}, {t -> I Sqrt[-(-) + ---------]},
                 2    4 Sqrt[2]                   2    4 Sqrt[2]
 
              1       3                   1       3
  {t -> -Sqrt[- + ---------]}, {t -> Sqrt[- + ---------]}}
              2   4 Sqrt[2]               2   4 Sqrt[2]
In[5]:=
sols // N
Out[5]=
{{t -> 0. - 0.174155 I}, {t -> 0. + 0.174155 I}, {t -> -1.01505}, {t ->
1.01505}}

We see that the real roots are just the ones we got earlier. We can also
check that the imaginary roots do not satisfy the original equation:


In[6]:=
Numerator[f[t]] /. sols // FullSimplify
Out[6]=
 3 + Sqrt[3 (-45 + 32 Sqrt[2])]  3 + Sqrt[3 (-45 + 32 Sqrt[2])]
{------------------------------, ------------------------------, 0, 0}
               2                               2





on 8/15/00 2:18 PM, Andrzej Kozlowski at andrzej at tuins.ac.jp wrote:

> Allan:
> 
> 1. I am afraid that you allowed yourself to be tricked by FindRoot :)
> 
> The root you found {t -> -818.986} is a pure illusion. The only roots are the
> ones given in my earlier message on the same topic: -1.01505 and 1.01505. You
> can see this simply by plotting the function:
> 
> In[44]:=
> Plot[Evaluate[D[Root[-t + 2*#1 + 2*t^2*#1 + #1^3 &, 1],t]],{t,-10,10}]
> 
> But actually Mathematica can prove it algebraicalluy and very fast too using
> Experimental`CylindricalAlgebraicDecomposition.
> 
> In[5]:=
> f[t_]:=D[Root[-t + 2*#1 + 2*t^2*#1 + #1^3 &, 1],t]
> In[6]:=
> Experimental`CylindricalAlgebraicDecomposition[f[t]==0,t]
> Out[6]=
> 2        4
> t == Root[-1 - 32 #1  + 32 #1  & , 1] ||
> 
> 2        4
> t == Root[-1 - 32 #1  + 32 #1  & , 2]
> In[7]:=
> N[%]
> Out[7]=
> t == -1.01505 || t == 1.01505
> 
> 
> 2.  In general, a Root object depending on parameters has a complicated
> branching structure with respect to these parameters and at certain points
> will not be continuous, and hence certainly not differentiable (as a complex
> function). Other than that (and barring bugs) differentiation of root objects
> wiht respect to parameters is valid. However note one pitfall.  The case
> considered here is rather special: we are looking at a cubic f[t_]:= Root[-t +
> 2*#1 + 2*t^2*#1 + #1^3 & with real coefficients, and Root[f[t],1]--its real
> root. The function can be viewed either as a real function or a complex
> function. In the first case case, the derivative D[f[t],t] exists at 0 and  we
> get:
> 
> In[8]:=
> D[f[t],t]/.t->0
> Out[8]=
> 1
> -
> 2
> 
> 
> However both 
> 
> In[9]:=
> Limit[(f[t]-f[0])/t,t->0]
> 
> and 
> 
> In[10]:=
> f[t]+O[t]^2
> 
> fail, since the complex derivative of f at 0 does not exist. 



  • Prev by Date: RE: Confusing Behavior of LogPlot vs. Plot
  • Next by Date: Re: A simple problem
  • Previous by thread: Re: Differentiating Functions and Root objects [ was Re: ArcCos[]]
  • Next by thread: Re: Differentiating Functions and Root objects [ was Re: ArcCos[]]