Redirected from Fibonacci sequence
In geometry, the Fibonacci numbers form a sequence defined recursively by the following equations:
In words: you start with two ones, and then produce the next Fibonacci number by adding the two previous Fibonacci numbers. The first Fibonacci numbers are

The term Fibonacci sequence is also applied more generally to any function g where g(n + 2) = g(n) + g(n + 1). These functions are precisely those of the form g(n) = aF(n) + bF(n + 1) for some numbers a and b, so the Fibonacci sequences form a vector space with the functions F(n) and F(n + 1) as a basis.
As was pointed out by Johannes Kepler, the growth rate of the Fibonacci numbers, that is, F(n + 1) / F(n), converges to the golden mean, denoted φ. This is the positive root of the quadratic equation x^{2}  x  1 = 0, so φ^{2} = φ + 1. If we multiply both sides by φ^{n}, we get φ^{n+2} = φ^{n+1} + φ^{n}, so the function φ^{n} is a Fibonacci sequence. The negative root of the quadratic, 1  φ, can be shown to have the same properties, so the two functions φ^{n} and (1φ)^{n} form another basis for the space.
By adjusting the coefficients to get the proper initial values F(0) = 0 and F(1) = 1, we obtain
This result can also be derived using the technique of generating functions.
As n goes to infinity, the second term converges to zero, so the Fibonacci numbers approach the exponential φ^{n} / √5, hence their convergent ratios. In fact the second term starts out small enough that the Fibonacci numbers can be obtained from the first term alone, by rounding to the nearest integer.
Computing Fibonacci numbers by computing powers of the golden mean is not very practical except for small values of n, since rounding errors will accrue and floating point numbers usually don't have enough precision.
The straightforward recursive implementation of the Fibonacci sequence definition is also not advisable, since it would compute many values repeatedly (unless the programming language has a feature which allows the storing of previously computed function values). Therefore, one usually computes the Fibonacci numbers "from the bottom up", starting with the two values 0 and 1, and then repeatedly replacing the first number by the second, and the second number by the sum of the two.
For huge arguments and if a bignum system is being used, a faster way to calculate Fibonacci numbers uses the following matrix equation:
\begin{bmatrix} F\left(n+1\right) & F \left(n\right) \\ F\left(n\right) & F \left(n1\right) \end{bmatrix}</math>
and employs exponentiating by squaring.
The Fibonacci numbers are important in the runtime analysis of Euclid's algorithm to determine the greatest common divisor of two integers.
Matiyasevich was able to show that the Fibonacci numbers can be defined by a Diophantine equation, which led to his original solution of Hilbert's tenth problem.
The Fibonacci numbers occur in a formula about the diagonals of Pascal's triangle (see binomial coefficient).
An interesting use of the Fibonacci sequence is for converting miles to kilometers. For instance, if you want to know about how many kilometers 5 miles is, take the Fibonacci number (5) and look at the next one (8). 5 miles is about 8 kilometers. This works because it so happens that the conversion factor between miles and kilometers is roughly equal to φ.
A logarithmic spiral can be approximated as follows: start at the origin of the cartesian coordinate system, move F(1) units to the right, move F(2) units up, move F(3) units to the left, move F(4) units down, move F(5) units to the right etc. This is similar to the construction mentioned in the golden mean article. Fibonacci number s often occur in nature when logarithmic spirals are built from discrete units, such as in sunflowers or in pine cones.
A generalization of the Fibonacci sequence are the Lucas sequences[?]. One kind can be defined thus:
where the normal Fibonacci sequence is the special case of P = Q = 1. Another kind of Lucas Sequence begins with L(0) = 2, L(1) = P. Such sequences have applications in number theory and primality proving.
(define fab (lambda (x) (if (< x 2) x (+ (fab ( x 1)) (fab ( x 2))))))
Search Encyclopedia

Featured Article
