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>
- Differences between recursions and limit