MathGroup Archive 2011

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

Search the Archive

Re: Parculiarities of FindRoot

You define Func such that it only works for numeric input (try giving
it a symbolic input and see what happens).

One of the first steps  of FindRoot involves the symbolic evaluation
of the function to find the derivative, which in this case is
unsuccessful. Changing the definition of Func slightly, so that it
tests for its arguments being numeric helps:

In[24]:= ClearAll[Func];
Func[y_?NumericQ] := x^2 /. FindRoot[x + y == 0, {x, 0.}]
FindRoot[Func[z] == 0, {z, 0.}]

Out[26]= 0.04

Out[27]= {z -> 0.}

Cheers -- Sjoerd

On Jan 31, 9:24 am, Tianhui Li <tianh... at> wrote:
> Here's a question for the group: in the following function, Func seems
> to evaluate numerical arguments correctly and *works* when you throw
> it into a FindRoot.  But the second command generates a lot of warning
> messages.  Does anyone understand why?
> Func[y_] := x^2 /. FindRoot[x + y == 0, {x, 0.}]
> Func[.2]
> FindRoot[Func[z], {z, 0.}]
> Warm Regards,
> Michael Li
> Bendheim Center for Finance
> Princeton University
> Princeton, NJ 08544

  • Prev by Date: Re: Mathematica 8 Integration Bug
  • Next by Date: Re: FindFit bug
  • Previous by thread: Re: Parculiarities of FindRoot
  • Next by thread: Syntax question