MathGroup Archive 1998

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

Search the Archive

Possible bug in FindRoot[] in Mathematica 3.0



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.



  • Prev by Date: Re: Computing my own function efficiently
  • Next by Date: Re: Help
  • Prev by thread: Re: Bug in SQRT function
  • Next by thread: Re: Possible bug in FindRoot[] in Mathematica 3.0