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"
--------------------------------------------------------