Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

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

Search the Archive

Re: Recursive function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg115935] Re: Recursive function
  • From: StatsMath <stats.math8 at gmail.com>
  • Date: Wed, 26 Jan 2011 05:06:29 -0500 (EST)
  • References: <ihm4kn$kec$1@smc.vnet.net> <ihmcbq$n9v$1@smc.vnet.net>

On Jan 25, 3:32 am, "Sjoerd C. de Vries" <sjoerd.c.devr... at gmail.com>
wrote:
> You need to make x explicitely depend on a and b as well:
>
> ClearAll[x];
> x[t_, a_, b_] := a*x[t - 1, a, b] + b*x[t - 2, a, b]
> x[0, a_, b_] = 1;
> x[1, a_, b_] = 1;
> Manipulate[
>  Map[x[#, a, b] &, Range[0, 3]], {a, -1, 1, 0.5}, {b, -1, 1, .5}]
>
> Cheers -- Sjoerd
>
> On Jan 25, 10:20 am, StatsMath <stats.ma... at gmail.com> wrote:
>
>
>
> > I am trying to compute the following function:
>
> > x[t] = a * x[t-1] + b * x[t-2]
> > x[0] = 1
> > x[1] = 1
>
> > For different values of a & b.
>
> > Would like to use Manipulate[] so that I can change the values of a &
> > b dynamically and observe what the resulting x[t] values are.
>
> > So wrote the following piece of code:
>
> > Clear["Global`*"]
> > x[t_Integer] := x[t] = a x[t - 1] + b x[t - 2]
> > x[0] = 1;
> > x[1] = 1;
> > Manipulate[Map[x[#] &, Range[0, 3]], {a, -1, 1, 0.5}, {b, -1, 1, .5}]
>
> > Got the following results:
> > {1, 1, a + b, b + a (a + b)}
>
> > The a & b values are not being propagated so tried the following:
>
> > Clear["Global`*"]
> > x[t_Integer] := x[t] = a x[t - 1] + b x[t - 2] /; t > 2
> > x[0] = 1;
> > x[1] = 1;
> > Manipulate[
> >  Map[(If[# == 0 || # == 1, 1, a x[# - 1] + b x[# - 2]]) &,
> >   Range[0, 3]], {a, -1, 1, 0.5}, {b, -1, 1, .5}]
>
> > Got the following result:
> > {1, 1, -2, -1 - a - b}
>
> > Finally got it working with the following code:
>
> > Clear["Global`*"]
> > Manipulate[
> >  Map[(If[# == 0 || # == 1, x[#] = 1,
> >      x[#] = a x[# - 1] + b x[# - 2]]) &, Range[0, 20]], {a, -1,=
 1=
> ,
> >   0.5}, {b, -1, 1, .5}]
>
> > The above code looks ugly, so wondering if there is a different way to
> > handle recursive functions.
>
> > Thanks!- Hide quoted text -
>
> - Show quoted text -

Thanks for the above soln.

Is there a way to use Nest[] or NestList[] for computing the recursive
fn and still be able to dynamically change 'a' & 'b' values with
Manipulate[]?

Want to make sure I am not missing some technique in using Nest[] or
NestList[] to accomodate the above scenario.

Thanks!


  • Prev by Date: Re: Recursive function
  • Next by Date: Re: Time series minima and maxima
  • Previous by thread: Re: Recursive function
  • Next by thread: Re: Recursive function