MathGroup Archive 2008

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

Search the Archive

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


  • Prev by Date: Re: Workbench editing snag
  • Next by Date: Re: Nested Grids
  • Previous by thread: Re: Problems with FindRoot and recursive functions
  • Next by thread: Re: Problems with FindRoot and recursive functions