MathGroup Archive 2007

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

Search the Archive

Re: Recursive FindRoot with initial values as a list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg77048] Re: [mg77023] Recursive FindRoot with initial values as a list
  • From: Sseziwa Mukasa <mukasa at jeol.com>
  • Date: Fri, 1 Jun 2007 02:49:30 -0400 (EDT)
  • References: <200705310932.FAA15745@smc.vnet.net>

On May 31, 2007, at 5:32 AM, R.G wrote:

> Greetings...
> Say I have a function defined as:
> f[a_, b_]:= Integrate[Sin[x] + 3, {x, a, b}]
>
> I can find b with given f[a,b]=2 and initial value=0:
> In[1]:= Initialvalue = 0;
>      s1 = FindRoot[f[0, unknown] == 2, {unknown,Initialvalue}];
>      x1 = s1[[ 1, 2]]
>
> Now, using the x1 value obtained from FindRoot, I can find x2:
>      s2 = FindRoot[f[x1, unknown] == 2, {unknown,Initialvalue}];
>      x2 = s2[[ 1, 2]]
>
> If I have initialvalue in a list form:
> InitialValues={initialvalue1,initialvalue2,...,initialvalueN}
>
> in which each si should get InitialValues[[i]], in general form:
>
> \!\(s\_i =
>     FindRoot[{f[x\_\(i - 1\), unknown] \[Equal] 2}, {unknown,
>         InitialValues[\([i]\)]}]\)
>
> where
>
> \!\(x\_i = s\_i[\([1, 2]\)]\)
>
> How do I code it in Mathematica please? Thanking in advance...

You have not defined x0 but from your example I assume it's 0.  The  
rest is just an application of FoldList

Rest[FoldList[FindRoot[f[#,unknown]==2,{unknown,#2}][[1,2]]&,0(*This  
is x0*),InitialValues]]

This also works and avoids the awkward use of Part

Rest[FoldList[unknown/.FindRoot[f[#,unknown]==2,{unknown,#2}]&,0 
(*This is x0*),InitialValues]]

Regards,

Ssezi


  • Prev by Date: Re: Re: Famous Mathematica 5.0 not working with Mathematica
  • Next by Date: Re: Recursive FindRoot with initial values as a list
  • Previous by thread: Re: Re: Famous Mathematica 5.0 not working with Mathematica
  • Next by thread: Re: Recursive FindRoot with initial values as a list