Re: Differences between recursions and limit

*To*: mathgroup at smc.vnet.net*Subject*: [mg60546] Re: [mg60509] Differences between recursions and limit*From*: <bsyehuda at gmail.com>*Date*: Tue, 20 Sep 2005 05:19:00 -0400 (EDT)*References*: <200509190845.EAA23449@smc.vnet.net>*Reply-to*: bsyehuda at gmail.com*Sender*: owner-wri-mathgroup at wolfram.com

Hi, With the first programming style you recalculate each value right from the begining, so to calculate x[3] in terms of x[2], x[2] is calculated in terms of x[1] which is calculated from x[0], etc. The same happens for x[4], x[5], etc. The second programming style use a temporaty storage (your recursion is only one step back, so for this case it is sufficient), so calculation are replaced by looking at the storage, instead of re-computing as in the first exaample (one note, replace a:=b with a=b) You can achieve that automatically by using x[0]=0; x[k_]:=x[k]= .25 *(1 + x[k-1] + (x[k-1])^2 + (x[k-1])^3); This works for any degree of recursion. However you need to be aware that it consums memory. yehuda On 9/19/05, anbra1 <xyxanbra1 at tiscalixxxyxxx.it> wrote: > > Please, > I want to know > why these two recursions,doing the same thing, > are the first one much more slow than the second > > ------------------------- > > x[0]=0; > x[k_] := .25 *(1 + x[k-1] + (x[k-1])^2 + (x[k-1])^3); > > For[k=1,k<12,Print[k," ",SetPrecision[x[k],30]];k++] > > ------------------------- > > a=0; > > For[k=1,k<12,k++, > > b= .25 (1 + a + a^2 + a^3);a:=b;Print[k," ",SetPrecision[b,30]]] > > ------------------------- > Another question > How can I calculate > the limit of this recursion for k->Infinite ? > Thank you all > > >

**References**:**Differences between recursions and limit***From:*"anbra1" <xyxanbra1@tiscalixxxyxxx.it>