Problems with FindRoot
- To: mathgroup at smc.vnet.net
- Subject: [mg66235] Problems with FindRoot
- From: kerim.suruliz at gmail.com
- Date: Fri, 5 May 2006 05:02:14 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
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