Fibonacci
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
- The
satisfy the recurrence relation
with
. - For any complex value of n, the
are given by the general formula
, where
is the golden ratio. - The Fibonacci polynomial
is the coefficient of
in the expansion of
. - The Fibonacci polynomials satisfy the recurrence relation
. - FullSimplify and FunctionExpand include transformation rules for combinations of Fibonacci numbers with symbolic arguments when the arguments are specified to be integers using n∈Integers.
- Fibonacci can be evaluated to arbitrary numerical precision.
- Fibonacci automatically threads over lists.
- Fibonacci can be used with Interval and CenteredInterval objects. »
Examples
open all close allBasic Examples (6)
Table[Fibonacci[n], {n, 20}]Plot over a subset of the reals:
Plot[Fibonacci[1 / 2, x], {x, -10, 10}]Plot over a subset of the complexes:
ComplexPlot3D[Fibonacci[5 / 3, z], {z, -2 - 2I, 2 + 2I}, PlotLegends -> Automatic]Series expansion at the origin:
Series[Fibonacci[1 / 2, x], {x, 0, 5}]Series expansion at Infinity:
Series[Fibonacci[1 / 2, x], {x, ∞, 5}]//FullSimplifySeries expansion at a singular point:
Series[Fibonacci[1 / 2, x], {x, -2I, 3}, Assumptions -> x > 1]//Normal//FullSimplifyScope (43)
Numerical Evaluation (6)
Fibonacci[5.8, 3]Fibonacci[8]N[Fibonacci[15 / 17], 50]The precision of the output tracks the precision of the input:
Fibonacci[0.2114411444411100011, 5]N[Fibonacci[5, 8 - I]]Evaluate efficiently at high precision:
Fibonacci[4750, 5`100]//TimingFibonacci[71.56, 5`100000];//TimingCompute worst-case guaranteed intervals using Interval and CenteredInterval objects:
Fibonacci[0.4, Interval[{0.5, 0.6}]]Fibonacci[1 / 3, CenteredInterval[1 / 2, 1 / 100]]Or compute average-case statistical intervals using Around:
Fibonacci[ Around[.2, 0.01]]Compute the elementwise values of an array:
Fibonacci[3, {{-1, 0}, {0, 5}}]Or compute the matrix Fibonacci function using MatrixFunction:
MatrixFunction[Fibonacci[3, #]&, {{-1, 0}, {0, 5}}]Specific Values (6)
Values of Fibonacci at fixed points:
Table[Fibonacci[3, x ], {x, 1, 5}]Fibonacci polynomial for symbolic n and x:
Fibonacci[n, x]//FunctionExpandFibonacci[1, 0]Fibonacci[0, 0]xval = x /. FindRoot[Fibonacci[3, x ] == 5, {x, 3}]Plot[Fibonacci[3, x ], {x, 0, 5}, Epilog -> Style[Point[{xval, Fibonacci[3, xval ]}], PointSize[Large], Red]]Compute the Fibonacci[7,x] polynomial:
Fibonacci[7, x]Compute Fibonacci[1/2,x]:
Fibonacci[1 / 2, x]//FunctionExpandVisualization (5)
Plot the Fibonacci function:
Plot[Fibonacci[x], {x, -2, 2}]Plot the Fibonacci polynomial for various orders:
Plot[{Fibonacci[1, x], Fibonacci[2, x], Fibonacci[3, x], Fibonacci[4, x]}, {x, -2, 2}]ComplexContourPlot[Re[Fibonacci[3, z]], {z, -1 - I, 1 + I}, Contours -> 24]ComplexContourPlot[Im[Fibonacci[3, z]], {z, -1 - I, 1 + I}, Contours -> 24]Plot as real parts of two parameters vary:
Plot3D[Re[Fibonacci[n, z]], {n, 0, 5}, {z, -1, 1}, PlotRange -> All]Types 2 and 3 of Fibonacci polynomial have different branch cut structures:
Plot3D[Im[Fibonacci[3, x + I y]], {x, -3, 3}, {y, -0.5, 0.5}, Exclusions -> {{y == 0, Abs[x] > 1}}]Plot3D[Im[Fibonacci[3, x + I y]], {x, -3, 3}, {y, -0.5, 0.5}, Exclusions -> {{y == 0, -1 < x < 1}}]Function Properties (14)
Fibonacci is defined for all real values:
FunctionDomain[Fibonacci[n, z], z]Approximate function range of Fibonacci:
FunctionRange[Fibonacci[2, x], x, y]FunctionRange[Fibonacci[2, z], z, y, Complexes]Fibonacci polynomial of an even order is odd:
Fibonacci[2, -x] == -Fibonacci[2, x]Fibonacci polynomial of an odd order is even:
Fibonacci[1, -x] == Fibonacci[1, x]Fibonacci has the mirror property
:
Fibonacci[1, Conjugate[z]] == Conjugate[Fibonacci[1, z]]Fibonacci threads elementwise over lists:
Fibonacci[{1, 2, 3, 4, 5}]Fibonacci is an analytic function of x:
FunctionAnalytic[Fibonacci[n, x], x, Assumptions -> n∈ℝ]Fibonacci is neither non-decreasing nor non-increasingfor odd values:
FunctionMonotonicity[Fibonacci[5, x], x]Fibonacci is non-decreasing for even values:
FunctionMonotonicity[Fibonacci[2, x], x]Fibonacci is not injective for odd values:
Table[FunctionInjective[Fibonacci[n, x], x], {n, 4}]Plot[{Fibonacci[3, x], Fibonacci[4, x], 5}, {x, -3, 3}]Fibonacci is not surjective for odd values:
Table[FunctionSurjective[Fibonacci[n, x], x], {n, 4}]Plot[{Fibonacci[3, x], Fibonacci[4, x], -2}, {x, -3, 3}]Fibonacci is non-negative for odd values:
Table[FunctionSign[Fibonacci[n, x], x], {n, 4}]Fibonacci has no singularities or discontinuities:
FunctionSingularities[Fibonacci[n, x], x]FunctionDiscontinuities[Fibonacci[n, x], x]Fibonacci is convex for odd values:
Table[FunctionConvexity[Fibonacci[n, x], x], {n, 7}]TraditionalForm formatting:
Fibonacci[n]//TraditionalFormDifferentiation (3)
First derivatives with respect to n:
D[Fibonacci[n], n]D[Fibonacci[n, x], n]First derivative with respect to x:
D[Fibonacci[n, x], x]Higher derivatives with respect to n:
Table[D[Fibonacci[n], {n, k}], {k, 1, 3}]//FullSimplifyPlot the higher derivatives with respect to n:
Plot[%, {n, -5, 5}, PlotLegends -> {"First Derivative", "Second Derivative", "Third Derivative"}]Formula for the ![]()
derivative with respect to n:
D[Fibonacci[n], {n, k}]//FullSimplifyIntegration (3)
Compute the indefinite integral using Integrate:
Integrate[Fibonacci[x], x]// FullSimplifyIntegrate[Fibonacci[x], {x, 3, 15}]Integrate[Fibonacci[x]Fibonacci[5 - x], x]//FullSimplifyIntegrate[E ^ (-t)Fibonacci[t], {t, 0, Infinity}]Series Expansions (4)
Find the Taylor expansion using Series:
Series[Fibonacci[x], {x, 0, 2}]Plots of the first three approximations around
:
terms = Normal@Table[Series[Fibonacci[x], {x, 0, m}], {m, 1, 5, 2}];
Plot[{Fibonacci[x], terms}, {x, -5, 5}]General term in the series expansion using SeriesCoefficient:
SeriesCoefficient[Fibonacci[x], {x, 0, n}]Find the series expansion at Infinity:
Series[Fibonacci[x], {x, Infinity, 1}]//NormalTaylor expansion at a generic point:
Series[Fibonacci[x], {x, x0, 2}]//FullSimplifyFunction Identities and Simplifications (2)
The ordinary generating function of Fibonacci:
GeneratingFunction[Fibonacci[n], n, x]Fibonacci[n + 1, x] == x Fibonacci[n, x] + Fibonacci[n - 1, x]//FullSimplifyGeneralizations & Extensions (2)
Applications (13)
Solve the Fibonacci recurrence equation:
RSolve[{f[n] == f[n - 1] + f[n - 2], f[2] == f[1] == 1}, f[n], n]FullSimplify[Table[First[f[n] /. %], {n, 10}]]Solve another Fibonacci recurrence equation:
RSolve[{f[n] == f[n - 1] + f[n - 2], f[1] == a, f[2] == b}, f[n], n]FullSimplify[Table[First[f[n] /. %], {n, 10}]]Find ratios of successive Fibonacci numbers:
Table[Fibonacci[n + 1] / Fibonacci[n], {n, 15}]Compare with continued fractions:
Table[FromContinuedFraction[Table[1, {n}]], {n, 15}]Convergence to the golden ratio:
N[%]Fibonacci substitution system:
NestList[StringReplace[#, {"A" -> "AB", "B" -> "A"}]&, "A", 6]StringCount[%, "A"]Fibonomial[n_, k_] := Product[Fibonacci[n + j - k] / Fibonacci[j], {j, k}]Array[Fibonomial, {7, 7}]//GridCalculate the number of ways to write an integer as a sum of Fibonacci numbers
:
fibonacciSumCount[n_] := SeriesCoefficient[Series[Product[1 + z ^ Fibonacci[k], {k, Ceiling[Log[GoldenRatio, n]] + 2}], {z, 0, n}], n]Plot the counts for the first hundred integers:
ListPlot[Table[fibonacciSumCount[n], {n, 100}]]Lamé's theorem bounds the number of steps of the Euclidean algorithm for calculating
:
𝒻[n_] := NestWhile[(# + 1)&, 1, Fibonacci[#] < n&] - 1maxEuclideanAlgorithmSteps[a_, b_] := Min[𝒻[Min[a, b]] - 1, 𝒻[Max[a, b]] - 2]Plot the maximal number of steps:
ListPlot3D[Table[maxEuclideanAlgorithmSteps[a, b], {a, 100}, {b, 100}]]Find the first Fibonacci number above 1000000:
NestWhile[(# + 1)&, 1, Fibonacci[#] <= 10 ^ 6&]Fibonacci[%]Plot the discrete inverse of Fibonacci numbers:
ListLinePlot[Table[NestWhile[(# + 1)&, 1, Fibonacci[#] <= n&], {n, 200}]]Plot of the absolute value of Fibonacci over the complex plane:
Plot3D[Abs[Fibonacci[x + I y]], {x, -5, 5}, {y, -1, 1}]Find the number of factors of Fibonacci polynomials:
ListPlot[Table[Length[FactorList[Fibonacci[n, x]]], {n, 50}]]fm = Fibonacci[30]ffm = Fibonacci[fm];And@@Table[Divisible[ffm, Fibonacci[n]], {n, Divisors[fm]}]This is a particular case of a more general identity
:
{Table[GCD[Fibonacci[n], Fibonacci[k]], {n, 5}, {k, 5}]//MatrixForm,
Table[Fibonacci[GCD[n, k]], {n, 5}, {k, 5}]//MatrixForm}The sequence of
is periodic with respect to
for a fixed natural number
:
DiscretePlot[Mod[Fibonacci[n], 7], {n, 0, 35}]Table[Mod[Fibonacci[n + 16] - Fibonacci[n], 7], {n, 0, 15}]Build Zeckendorf's representation of a positive integer [MathWorld]:
ZeckendorfRepresentation[n_Integer ? Positive] := Reap[Module[{m = n, f = Fibonacci},
While[m > 0, m -= f@Sow[NestWhile[# + 1&, 1, f[#] ≤ m&] - 1]]]][[2, -1]]ZeckendorfRepresentation[2011]Total[Fibonacci[%]]Define Fibonacci multiplication for positive integers:
FibonacciTimes[n_, m_] := Total[Fibonacci[Outer[Plus, ZeckendorfRepresentation[n], ZeckendorfRepresentation[m]]], Infinity]Fibonacci multiplication table:
Outer[FibonacciTimes, Range[6], Range[6]]//GridVerify that the Fibonacci multiplication is associative:
Table[FibonacciTimes[FibonacciTimes[n, m], k] == FibonacciTimes[n, FibonacciTimes[m, k]], {n, 1, 6}, {m, 1, 6}, {k, 1, 6}]//Flatten//UnionProperties & Relations (15)
Fibonacci Numbers (13)
Expand in terms of elementary functions:
FunctionExpand[Fibonacci[n]]FullSimplify[Table[%, {n, 10}]]Limit[Fibonacci[n] / Fibonacci[n - 1], n -> Infinity]Explicit recursive definition:
f[n_] := f[n] = f[n - 1] + f[n - 2]f[1] = f[2] = 1;Table[f[n], {n, 20}]Explicit state‐space recursive definition:
g[0] = {1, 1};g[n_Integer ? Positive] := g[n] = {{1, 1}, {1, 0}}.g[n - 1]f[n_] := Last[g[n]]Table[f[n], {n, 0, 10}]Closed‐form solution using MatrixPower:
Table[Last[MatrixPower[{{1, 1}, {1, 0}}, n].{1, 1}], {n, 0, 10}]Simplify expressions involving Fibonacci numbers:
FullSimplify[Fibonacci[n + 1]Fibonacci[n - 1] - Fibonacci[n]^2, n > 0 && n∈Integers]Underoverscript[∑, k = 0, n]Fibonacci[k]Fibonacci[n - k]Underoverscript[∑, k = 0, ∞]Fibonacci[k]x^k//FullSimplifyFibonacci numbers as coefficients:
Series[%, {x, 0, 10}]Express a fractional Fibonacci number as an algebraic number:
Fibonacci[1 / 3]//FunctionExpand//RootReduceFibonacci can be represented as a DifferenceRoot:
DifferenceRootReduce[Fibonacci[k], k]DifferenceRootReduce[Fibonacci[k, x], k]General term in the series expansion of Fibonacci:
SeriesCoefficient[Fibonacci[x], {x, 0, n}]The generating function for Fibonacci:
GeneratingFunction[Fibonacci[n], n, x]Series[%, {x, 0, 10}]FindSequenceFunction can recognize the Fibonacci sequence:
Table[Fibonacci[n], {n, 10}]FindSequenceFunction[%, n]The exponential generating function for Fibonacci:
ExponentialGeneratingFunction[Fibonacci[n], n, x]Fibonacci Polynomials (2)
Expand in terms of elementary functions:
FunctionExpand[Fibonacci[n, x]]Explicitly construct Fibonacci polynomials:
Table[Underoverscript[∑, m = 0, Floor[(n - 1/2)]]Binomial[n - m - 1, m]x^n - 2 m - 1, {n, 5}]Table[Fibonacci[n, x], {n, 5}]Possible Issues (3)
Large arguments can give results too large to be computed explicitly:
Fibonacci[10 ^ 16.]Results for integer arguments may not hold for non-integers:
FullSimplify[Fibonacci[2n] == Fibonacci[n + 1]^2 - Fibonacci[n - 1]^2, n∈Integers]Fibonacci[2n] == Fibonacci[n + 1]^2 - Fibonacci[n - 1]^2 /. n -> 2.5Matrix power representation is valid only for integers:
MatrixPower[{{1, 1}, {1, 0}}, 2.5]Fibonacci[{{n + 1, n}, {n, n - 1}}] /. n -> 2.5Neat Examples (8)
Mod[Array[Fibonacci, 100], 10]ListLinePlot[Mod[Array[Fibonacci, 200], 10]]Fibonacci modulo n [more info]:
ListLinePlot[Table[Mod[Fibonacci[n], n], {n, 200}]]Count the number of 1, 2, ..., 9, 0 digits in the 1,000,000
Fibonacci number:
DigitCount[Fibonacci[10 ^ 6]]Contours of vanishing real and imaginary parts of Fibonacci:
ContourPlot[{Re[Fibonacci[x + I y]] == 0, Im[Fibonacci[x + I y]] == 0}, {x, -8, 8}, {y, -8, 8}]LogPlot of positive and negative Fibonacci numbers:
LogPlot[Abs[Fibonacci[x]] + 1, {x, -10, 10}]While the Fibonacci numbers are nondecreasing for non-negative arguments, the Fibonacci function possesses a single local minimum:
Plot[Fibonacci[n], {n, 0, 4}, Prolog -> {PointSize[0.02], Point[Table[{k, Fibonacci[k]}, {k, 0, 4}]]}]Since the generating function is rational, these sums come out as rational numbers:
Underoverscript[∑, k = 1, ∞]2^-kFibonacci[k]Underoverscript[∑, k = 1, ∞]10^-kFibonacci[k]The parities of Fibonacci polynomial coefficients give a slanted Sierpiński gasket:
ArrayPlot[Mod[Table[CoefficientList[Fibonacci[n, x], x], {n, 60}], 2]]See Also
GoldenRatio LucasL RSolve LinearRecurrence RecurrenceTable DifferenceRoot GoldenAngle
Function Repository: InverseFibonacci BinetFibonacci ZeckendorfRepresentation FibonacciEncode
Related Guides
History
Introduced in 1996 (3.0) | Updated in 1999 (4.0) ▪ 2000 (4.1) ▪ 2002 (4.2)
Text
Wolfram Research (1996), Fibonacci, Wolfram Language function, https://reference.wolfram.com/language/ref/Fibonacci.html (updated 2002).
CMS
Wolfram Language. 1996. "Fibonacci." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2002. https://reference.wolfram.com/language/ref/Fibonacci.html.
APA
Wolfram Language. (1996). Fibonacci. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Fibonacci.html
BibTeX
@misc{reference.wolfram_2026_fibonacci, author="Wolfram Research", title="{Fibonacci}", year="2002", howpublished="\url{https://reference.wolfram.com/language/ref/Fibonacci.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_fibonacci, organization={Wolfram Research}, title={Fibonacci}, year={2002}, url={https://reference.wolfram.com/language/ref/Fibonacci.html}, note=[Accessed: 13-June-2026]}