Vuelta al índice
Vuelta a la página principal


Sucesiones recursivas


Además de definir las sucesiones a partir de su término general, \(a_n\), en ocasiones se nos presentan situaciones en las que los términos se definen de forma recursiva. El método consiste en declarar el valor del primer término de la sucesión, \(a_1\), junto con una regla que nos pemite obtener el término \(a_n\) a partir del anterior, \(a_{n-1}\).

Veamos, por ejemplo, la sucesión definida de la forma

\[ \left\{ \begin{array}{ll} a_1 & = & 2 \\ a_n & = & n + \frac{1}{a_{n-1}} \end{array} \right. \]

Para generar los sucesivos términos de esta sucesión trabajaremos con arrays. Usaremos las variables globales numer y fpprintprec para forzar que los cálculos sean todos numéricos y que los números decimales se muestren con pocos dígitos; así ganamos en rapidez y claridad. Una vez definida la función, calculamos sus 20 primeros términos, los cuales representamos gráficamente,


numer: true $
fpprintprec: 4 $

/* definimos recursivamente */
a[1]: 2 $
a[n]:= n + 1/a[n-1] $

/* generamos el grafico */
s: makelist(a[i],i,1,20) ;
draw2d(
    point_type = circle,
    background_color = green,
    points(s) ) $

No hay ningún problema en trabajar con términos individuales; por ejemplo, podemos calcular el valor de la expresión \(a_ 5 \cdot \sqrt{a_{10}}\),


a[1]: 2 $
a[n]:= n + 1/a[n-1] $

/* calculamos expresión */
expr: a[5] * sqrt (a[10]);

/* en formato decimal */
float(expr);

Un caso bien conocido de sucesión recursiva es la de Fibonacci, en la que los dos primeros términos son iguales a la unidad y los siguientes se calculan sumando los dos anteriores, esto es,

\[ \left\{ \begin{array}{ll} a_1 & = & 1 \\ a_2 & = & 1 \\ a_n & = & a_{n-1} + a_{n-2} \end{array} \right. \]

Calculamos y representamos gráficamente sus primeros sesenta términos,


a[1]: 1 $
a[2]: 1 $
a[n]:= a[n-1] + a[n-1] $

/* calculamos expresión */
expr: a[5] * sqrt (a[10]);

/* generamos el grafico */
s: makelist(a[i],i,1,60) ;
draw2d(
    point_type = circle,
    background_color = green,
    points(s) ) $


Vuelta al índice
Vuelta a la página principal