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