Possible bug in FindRoot[] in Mathematica 3.0
- To: mathgroup@smc.vnet.net
- Subject: [mg11131] Possible bug in FindRoot[] in Mathematica 3.0
- From: Adrian Cable <megalith@jimc.demon.co.uk>
- Date: Mon, 23 Feb 1998 21:40:49 -0500
- Organization: MeGALiTH Software Ltd
Hi there,
I think I've possibly found a bug in Mathematica 3.0. Consider the
equation:
2^x + 3^x = 5^x
Well, it's obvious that x = 1 is a solution, and you can check with
Plot[] that x = 1 is indeed the only solution. When I try to Solve[]
this with Mathematica, it says:
Solve::"tdep":
"The equations appear to involve transcendental functions of the \
variables in an essentially non-algebraic way."
This is fair enough - I have no idea how to solve this type of equation
without some numerical method either. The problem comes when I try to
use FindRoot:
In[83]:= FindRoot[2^x+3^x==5^x,{x,0}] Out[83]:= {x -> -21.1781}
-21? I'm sorry? Obviously, the iterative formula it has created
(presumably by the Newton-Raphson process) for the equation diverges
when the starting point is taken as x = 0. However, if I do something
like this, it handles it correctly:
In[86]:= FindRoot[2^x+3^x==5^x,{x,-1}] FindRoot::"cvnwt":
"Newton's method failed to converge to the prescribed accuracy after
\
15 iterations."
Out[86]:= {x -> -21.0059}
So, why does Mathematica correctly recognise that the iterative sequence
does not converge in the second case, yet it doesn't recognise this in
the first case and thus returns a totally bogus result without any
error message?
This looks like a bug to me. Or am I just missing something here?
Thanks, cheers,
Adrian Cable.
- Follow-Ups:
- Re: Possible bug in FindRoot[] in Mathematica 3.0
- From: Daniel Lichtblau <danl@wolfram.com>
- Re: Possible bug in FindRoot[] in Mathematica 3.0