Re: Iterating List
- To: mathgroup at smc.vnet.net
- Subject: [mg77046] Re: Iterating List
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Fri, 1 Jun 2007 02:48:28 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <f3ltcf$5df$1@smc.vnet.net>
Gobiithasan wrote:
> Hi, it would be a great help if Mathsgroup members can
> show me how to code the following problem in
> mathematica:
>
> Say I have a function defined as:
> f[a_, b_] = Integrate[Sin[x] + 3, {x, a, b}]
>
> I can find b with given constant=2 and initial
> value=0:
> In[1]:=
> Initialvalue = 0;
> s1 = FindRoot[f[0, unknown] == 2, {unknown,
> Initialvalue}];
> x1 = Part[s1, 1, 2]
>
> Now, using the x1 value obtained from FindRoot, I can
> find x2:
> s2 = FindRoot[f[x1, unknown] == 2, {unknown,
> Initialvalue}];
> x2 = Part[s2, 1, 2]
>
> How can i do it for n times (to get xn in a list form)
> with given initial value as:
> initialvalue= {initialvalue1,initialvalue2,
> ....,initialvalue3}
>
> whereby each xi will get initialvalue[[i]].
>
> Thanking you in advance
>
> ~gobiithasan
One possible way of doing what you are looking for is the use a
functional construct such as NestList and a pure function (that why you
can see #1 and &). For instance,
In[1]:= f[a_, b_] = Integrate[Sin[x] + 3, {x, a, b}];
With[{Initialvalue = 0, n = 5},
Rest[NestList[FindRoot[f[#1, unknown] == 2,
{unknown, Initialvalue}][[1, 2]] & , 0, n]]]
Out[1]= {0.607102, 1.13938, 1.64271, 2.15069, 2.69881}
Regards,
Jean-Marc