You are on page 1of 6

Secuencia Fibonacci

En matemticas, la sucesin de Fibonacci es la siguiente sucesin infinita de nmeros naturales:

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

De esta manera, la frmula explcita de la sucesin de Fibonacci tiene la forma

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

Al resolver este sistema de ecuaciones se obtiene

Por lo tanto, cada nmero de la sucesin de Fibonacci puede ser expresado como (5)

Para simplificar an ms es necesario considerar el nmero ureo

de manera que la ecuacin (5) se reduce a

(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

Este sistema se puede representar mediante su notacin matricial como

Conociendo a f0 = 0 y f1 = 1, al aplicar la frmula anterior n veces se obtiene

(7) y ms an

(8) Estas igualdades pueden probarse mediante induccin matemtica.

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:

Calculando f7 usando el algoritmo1

Algoritmo 1 Versin recursiva (Complejidad

funcin si devuelva si no devuelva entonces

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

utilizando una aproximacin de

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:

Algoritmo 2 Versin iterativa (Complejidad

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.

Calculando f100 usando el algoritmo 3

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

Por lo tanto el algoritmo queda como sigue:

Algoritmo 3 Versin Divide y Vencers (Complejidad

funcin si devuelva entonces

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.

You might also like