MathGroup Archive 2006

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

Search the Archive

Re: Problems with FindRoot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg66269] Re: [mg66235] Problems with FindRoot
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Sat, 6 May 2006 01:54:55 -0400 (EDT)
  • Reply-to: hanlonr at cox.net
  • Sender: owner-wri-mathgroup at wolfram.com

This is very slow but avoids needing a starting value.

V[x_,y_]=123/10/x^3+
      12*Sqrt[2]*Exp[-4*Pi*y]*Pi^2*Sqrt[y]/x-
      10*Exp[-2*Pi*y]*Pi*y/x^2;

eqns1=
    Simplify[Numerator[Together[D[V[x,y],#]]]==0]&/@
      {x,y};

soln1=Reduce[eqns1,{x,y},Reals]//ToRules//N

{x -> 4.455323832084928*^10, y -> 4.17018856320026}

g[x_,y_,z_]=123/10/x^3+
      12*Sqrt[2]*Exp[-4*Pi*y]*Pi^2*Sqrt[y]/x-
      10*Exp[-2*Pi*y]*Pi*y/x^2+z^2;

eqns2=
    Simplify[Numerator[Together[D[g[x,y,z],#]]]==0]&/@
      {x,y,z};

soln2=Reduce[eqns2,{x,y,z},Reals]//ToRules//N

{x -> 4.455323832084928*^10, y -> 4.17018856320026, z -> 0.}


Bob Hanlon

---- kerim.suruliz at gmail.com wrote: 
> Hi all,
> 
> I'm trying to find minima of the function
> 
> V[x, y] = 12.3/x^3 + 12*Sqrt[2]*Exp[-4*Pi*y]*Pi^2*Sqrt[y]/x -
> 10*Exp[-2*Pi*y]*Pi*y/x^2
> 
> using FindRoot. The numerical coefficients are such that there is a
> minimum for exponentially large x, but Mathematica has trouble finding
> it - presumably because the derivatives of V are extremely small in
> that region. I tried playing with MaxAccuracy, WorkingPrecision and
> PrecisionGoal, but without
> any success. Now, I know analytically where the minimum is so I look
> for it near there:
> 
> soln = FindRoot[{D[V[x, y], x] == 0, D[V[x, y], y] == 0}, {x, 3*10^10},
> {y, 4.10}, MaxIterations -> 10000]
> 
> and Mathematica finds it,
> {{x -> 4.4553238320849495`*^10, y -> 4.170188563200261`}.
> Even tiny perturbations about this point result in Mathematica failing
> to give the solution, though. Also, I need to solve a more complicated
> problem with three variables,
> but as soon as I add another one, even trivially, as in
> 
> g[x, y, z] = 12.3/x^3 + 12*Sqrt[2]*Exp[-4*Pi*y]*Pi^2*Sqrt[y]/x -
> 10*Exp[-2*Pi*y]*Pi*y/x^2 + z^2
> 
> (just added z^2 to V[x,y]), minimisation via
> 
> soln = FindRoot[{D[g[x, y, z], x] == 0, D[g[x, y, z], y] == 0, D[g[x,
> y, z], z] == 0}, {x, 3*10^10}, {y, 4.10}, {z, 0.4}, MaxIterations ->
> 10000]
> 
> fails! The output is:
> {x -> 3.`*^10, y -> 4.1`, z -> 0.`}
> 
> Note that the initial condition used for x and y is the same as in the
> 2D case.
> I'm using Mathematica 5. The function FindMinimum didn't seem to
> improve on the situation.
> Any advice on how to solve these equations/find minima of
> V[x,y]/g[x,y,z] reliably would be much
> appreciated.
> 
> Cheers,
> 
> Kerim
> 


  • Prev by Date: Re: When is x^y = != E^(y*Log[x])
  • Next by Date: Re: When is x^y = != E^(y*Log[x])
  • Previous by thread: Problems with FindRoot
  • Next by thread: Re: When is x^y = != E^(y*Log[x])