Professional Documents
Culture Documents
El primer elemento es 0, el segundo es 1 y cada elemento restante es la suma de los dos anteriores:
A cada elemento de esta sucesin se le llama nmero de Fibonacci. Esta sucesin fue descrita en Europa por Leonardo de Pisa, matemtico italiano del siglo XIII tambin conocido como Fibonacci. Tiene numerosas aplicaciones en ciencias de la computacin, matemticas y teora de juegos.
Representaciones alternativas
Para analizar la sucesin de Fibonacci (y, en general, cualquier sucesin) es conveniente obtener otras maneras de representarla matemticamente.
Funcin generadora
Una funcin generadora para una sucesin cualquiera funcin es la , es decir, una serie de
potencias donde cada coeficiente es un elemento de la sucesin. Los nmeros de Fibonacci tienen la funcin generadora
(4) Cuando esta funcin se expande en potencias de Fibonacci: , los coeficientes resultan ser la sucesin de
Frmula explcita
La definicin de la sucesin de Fibonacci es recurrente; es decir que se necesitan calcular varios trminos anteriores para poder calcular un trmino especfico. Se puede obtener una frmula explcita de la sucesin de Fibonacci (que no requiere calcular trminos anteriores) notando que las ecuaciones (1), (2) y (3) definen la relacin de recurrencia
con las condiciones iniciales y El polinomio caracterstico de esta relacin de recurrencia es t2 t 1 = 0, y sus races son
Si se toman en cuenta las condiciones iniciales, entonces las constantes b y d satisfacen la ecuacin anterior cuando n = 0 y n = 1, es decir que satisfacen el sistema de ecuaciones
Por lo tanto, cada nmero de la sucesin de Fibonacci puede ser expresado como (5)
(6) Esta frmula se le atribuye a douard Lucas, y es fcilmente demostrable por induccin matemtica. A pesar de que la sucesin de Fibonacci consta nicamente de nmeros naturales, su frmula explcita incluye al nmero irracional con este nmero es estrecha. . De hecho, la relacin
Forma matricial
Otra manera de obtener la sucesin de Fibonacci es considerando el sistema lineal de ecuaciones
(7) y ms an
Algoritmos de clculo
Para calcular el n-simo elemento de la sucesin de Fibonacci existen varios algoritmos (mtodos). La definicin misma puede emplearse como uno, aqu expresado en pseudocdigo:
Usando tcnicas de anlisis de algoritmos es posible demostrar que, a pesar de su simplicidad, el algoritmo 1 requiere efectuar fn + 1 1 sumas para poder encontrar el resultado. Dado que la sucesin fncrece tan rpido como , entonces el algoritmo est en el orden de . Es decir, que
este algoritmo es muy lento. Por ejemplo, para calcular f50 este algoritmo requiere efectuar 20365011073 sumas. Para evitar hacer tantas cuentas, es comn recurrir a una calculadora y utilizar la ecuacin (6), sin embargo, dado que es un nmero irracional, la nica manera de utilizar esta frmula es y obteniendo en consecuencia un resultado aproximado pero
incorrecto. Por ejemplo, si se usa una calculadora de 10 dgitos, entonces la frmula anterior arroja como resultado aun cuando el resultado correcto es f50 =
12586269025. Este error se hace cada vez ms grande conforme crece n. Un mtodo ms prctico evitara calcular las mismas sumas ms de una vez. Considerando un par es de nmeros consecutivos de la sucesin de Fibonacci, el siguiente par de la sucesin , de esta manera se divisa un algoritmo donde slo se requiere considerar dos
nmeros consecutivos de la sucesin de Fibonacci en cada paso. Este mtodo es el que usaramos normalmente para hacer el clculo a lpiz y papel. El algoritmo se expresa en pseudocdigo como:
funcin
para
desde
hasta
haga
devuelva
Esta versin requiere efectuar slo n sumas para calcular fn, lo cual significa que este mtodo es considerablemente ms rpido que el algoritmo 1. Por ejemplo, el algoritmo 2 slo se requiere efectuar 50 sumas para calcular f50.
Un algoritmo todava ms rpido se sigue partiendo de la ecuacin (8). Utilizando leyes de exponentes es posible calcular xn como
De esta manera se divisa el algoritmo de tipo Divide y Vencers donde slo se requerira hacer, aproximadamente, log2(n) multiplicaciones matriciales. Sin embargo, no es necesario almacenar los cuatro valores de cada matriz dado que cada una tiene la forma
De esta manera, cada matriz queda completamente representada por los valores a y b, y su cuadrado se puede calcular como
mientras si
haga
es impar entonces
devuelva
A pesar de lo engorroso que parezca, este algoritmo permite reducir enormemente el nmero de operaciones que se necesitan para calcular nmeros de Fibonacci muy grandes. Por ejemplo, para calcular f100, en vez de hacer las 573147844013817084100 sumas del algoritmo 1 o las 100 sumas con el algoritmo 2, el clculo se reduce a tan slo 9 multiplicaciones matriciales.