Loading [MathJax]/jax/output/CommonHTML/jax.js

Una aplicación de los autovectores de Ak es la de resolver una ecuación de recurrencia lineal.

Conejos y Fibonacci

Fibonacci presento en 1202 la solución al siguiente problema:

Cierto hombre tenía una pareja de conejos en un lugar cerrado y deseaba saber cuántos se podrían reproducir en un año a partir de la pareja inicial, teniendo en cuenta que de forma natural tienen una pareja en un mes, y que a partir del segundo se empiezan a reproducir.

La cantidad de parejas de conejos en cada mes, se puede describir por la variable Fn bajo las condiciones: F0=0F1=1Fn+1=Fn+Fn1

Partiendo de las condiciones iniciales, se calcula que F2=F1+F0=1+0=1. Luego, F3=F2+F1=1+1=2. Después F4=F3+F2=2+1=3, F4=F3+F2=3+2=5, etc.

El problema es que para calcular Fk necesito comenzar a calcular F2,F3,,Fk. Queremos hallar de ser posible, una fórmula cerrada para hallar Fk sin necesidad de calcular todas las anteriores.

Planteo Algebráico

La ecuación Fn+1=Fn+Fn1 puede escribirse de forma matricial como:

[Fn+1]=[11][FnFn1]

A fin de obtener un sistema cuadrado, vamos a agregar una segunda ecuación trivial que no modifica al sistema: Fn=Fn.

[Fn+1Fn]=[1110][FnFn1]

Vemos entonces que, dado un vector [FnFn1] que contenga la cantidad actual de conejos, y la cantidad de conejos del mes pasado, es posible calcular el vector [Fn+1Fn] que contiene la cantidad de conejos en el mes próximo, y en el actual.

Vemos que si iniciamos con el vector de las condiciones iniciales: [10]T al multiplicar por la matriz, obtenemos el vector [11]T, y si repetimos, se obtienen los vectores [21]T, [32]T, [52]T, etc.

De esta forma, en la primer componente del vector siempre podemos ver la cantidad de conejos en el “mes actual”, seguido por la cantidad del mes anterior.

Podemos calcular entonces: [F2F1]=[1110][F1F0]

Aún más: [F3F2]=[1110][F2F1]=[1110][1110][F1F0]

Es decir: [F3F2]=[1110]2[F1F0]

Entonces por inducción, podemos decir que:

[Fn+1Fn]=[1110]n[F1F0]

Solución

Tomando A=[1110] tenemos que los autovalores son λ1=1+52 y λ2=152, con v1=[1+521] y v2=[1521]. Lo cual nos permite escribir:

A=[1+5215211][1+5200152][1+5215211]1

Por lo tanto:

An=[1+5215211][1+5200152]n[1+5215211]1

Para simplificar, podemos escribir:

Fn+1=[10][Fn+1Fn]=[10][1110]n[F1F0]=[10][1+5215211][1+5200152]n[1+5215211]1[10]=[1+52152][1+5200152]n(110[2555255+5])[10]=[(1+52)n+1(152)n+1]110[2525]=(1+52)n+1(152)n+15

En conclusión, podemos decir que:

Fk=(1+52)k(152)k5,kN

Caso general

Sea una ecuación de recurrencia lineal de grado n: xn+1=anxn+an1xn1++a1x1

Se procede a armar el vector con los últimos n valores: Xn=[xnxn1x1]

La evolución del vector Xn está dada por el sistema:

[xn+1xnx2]=[anan1a2a110000010][xnxn1x1]

Lo cual se puede escribir abreviadamente como:

Xn+1=[anan1a1a0In0]Xn

Para simplificar la notación, vamos a llamar:

Φ=[anan1a1a0In0]

Mediante inducción, se llega a la expresión: Xn+1=ΦnX1

Donde X1 es el vector con las condiciones iniciales.

Si Φ resulta diagonalizable, llamando Φ=PΛP1 podemos calcular fácilmente:

Φn=PΛnP1

Y para recuperar sólamente el elemento xn+1 del vector, podemos escribir el producto:

xn+1=[100]Xn+1

Finalmente, bajo la condición de Φ diagonalizable llegamos a la expresión:

xn+1=[100]PΦnP1X1

Comentarios Finales

Logramos resolver una ecuación en recurrencia utilizando nuestro bagage de Álgebra Lineal, y es lindo, pero estos problemas también tienen otra solución tal vez más obvia desde el punto de vista de la Matemática Discreta. De todas formas, ambos enfoques se complementan muy bien.