MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

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



  • Prev by Date: Re: Match exactly zero or one
  • Next by Date: Re: Differences between recursions and limit
  • Previous by thread: Differences between recursions and limit
  • Next by thread: Re: Differences between recursions and limit