Re: Problems with FindRoot and recursive functions

*To*: mathgroup at smc.vnet.net*Subject*: [mg89669] Re: [mg89641] Problems with FindRoot and recursive functions*From*: DrMajorBob <drmajorbob at att.net>*Date*: Tue, 17 Jun 2008 00:38:10 -0400 (EDT)*References*: <12499848.1213630356935.JavaMail.root@m08>*Reply-to*: drmajorbob at longhorns.com

The error message details remain mysterious, but here's a solution: Clear[x1] x1[t_?NumericQ] := If[t < 0, {t, 1}, 0.5 + x1[t - 1]] FindRoot[First@x1[t] == 0, {t, 0.5}] {t -> 0.} Bobby On Mon, 16 Jun 2008 05:39:03 -0500, Daniel Kuang Chen Liu <dkliu1 at student.monash.edu.au> wrote: > Hello, > > I have a recursive function of the form > >>> x1[t_] := If[t < 0, {t, 1}, 0.5 + x1[t - 1]] > > which returns a list of length 2, and the first element has a root at > t=0.5 >>> In[3]:= x1[0.5] >>> Out[3]= {0., 1.5} > > I want to use FindRoot to determine t0 such that x1[t0][[1]] == 0, so I > use > the following code > >>> FindRoot[x1[t][[1]] == 0, {t, 0.5}] > > to which Mathematica complains > > During evaluation of In[6]:= FindRoot::nlnum: The function value > {False} is not a list of numbers with dimensions {1} at {t} = {0.5}. > > It would much appreciated if someone could tell me what is wrong with the > code. > > Daniel Liu > > > -- DrMajorBob at longhorns.com