RE: Creating List of Sequence Iterates
- To: mathgroup at smc.vnet.net
- Subject: [mg33390] RE: [mg33385] Creating List of Sequence Iterates
- From: David.Annetts at csiro.au
- Date: Wed, 20 Mar 2002 01:52:50 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Hi Bob, > I'm trying to figure out how, with a single expression, I can > create a list > of iterates of some sequence. > > For example, suppose I have defined F[x_] := 3x+2 and I want > to get a list > that contains F[1], F[F[1]], F[F[F[1]]], etc. It seems like > I could do > something like > > iterates = Table [F[ iterates[[n-1]] ] , {n,1,20}] > > to get a list of the first 20 iterations of this function > (assuming I had > some way to define interates[[1]]). > > Anyone know how I can do that, short of writing the following > function? > > Iterate[func_ , first_ , iterations_] := Module[ {v, ix}, > v = Table[0, {n, 1, iterations}]; > v[[1]] = first; > > For[ix=2, ix<=iterations, ix++, v[[ix]] = func[v[[ix-1]]] ]; > > v > ] > > Any help would be appreciated. I'm mostly interested in > being pointed in > the right direction. Possibly, what you want is NestList .... In[92]:= f[x_] := 3 x + 2 In[93]:= NestList[f, x, 3] Out[93]= {x,2+3 x,2+3 (2+3 x),2+3 (2+3 (2+3 x))} In[94]:= % /. x->1 Out[94]= {1,5,17,53} In[97]:= NestList[f, x, 20]; In[96]:= % /. x->1 Out[96]= {1,5,17,53,161,485,1457,4373,13121,39365,118097,354293,1062881,3188645,\ 9565937,28697813,86093441,258280325,774840977,2324522933,6973568801} Regards, Dave. -------------------------------------------------------- Dr. David Annetts EM Modelling Analyst Tel: (+612) 9490 5416 CSIRO DEM, North Ryde Fax: (+612) 9490 5467 David.Annetts at csiro.au Include "usual_disclaimers" --------------------------------------------------------