DifferenceRootReduce[expr,n]
attempts to reduce expr to a single DifferenceRoot object as a function of n.
DifferenceRootReduce
DifferenceRootReduce[expr,n]
attempts to reduce expr to a single DifferenceRoot object as a function of n.
Details and Options
- DifferenceRootReduce will attempt to represent any expression as a DifferenceRoot object.
- DifferenceRootReduce[expr,n] always gives exactly 0 when the DifferenceRoot object for expr is equivalent to the zero sequence.
- DifferenceRootReduce automatically threads over lists, as well as equations and inequalities.
- DifferenceRootReduce[f] operates on a pure function or pure DifferenceRoot object.
- DifferenceRootReduce takes the following options:
-
Assumptions $Assumptions assumptions to make about parameters Method Automatic method to use
Examples
open all close allBasic Examples (2)
Reduce the Fibonacci sequence to a DifferenceRoot object:
DifferenceRootReduce[Fibonacci[k], k]Table[%, {k, 0, 10}]Table[Fibonacci[k], {k, 0, 10}]DifferenceRootReduce[Fibonacci[k + 1]Fibonacci[k - 1] - Fibonacci[k] ^ 2 == (-1) ^ k, k]Scope (9)
DifferenceRootReduce[n ^ 2 + 1, n]DifferenceRootReduce[(n + 1) / (n - 1), n]DifferenceRootReduce[Binomial[2n, n], n]Reduction of a sequence expressed as a pure function:
DifferenceRootReduce[2 ^ #&]Verify the DifferenceRoot object:
Table[DifferentialRoot[Function[{, }, {(-[])*Log[2] + Derivative[1][][] == 0,
[0] == 1}]][n], {n, 10}]DifferenceRootReduce[Fibonacci[n] + Exp[n], n]DifferenceRootReduce[Binomial[2n, n]Exp[n], n]DifferenceRootReduce[Fibonacci[2n + 1], n]DifferenceRootReduce[Fibonacci[n] - (-1) ^ n LucasL[2n + 1], n]DifferenceRootReduce threads automatically over lists:
DifferenceRootReduce[{LucasL[n], n}, n]Options (2)
Assumptions (1)
DifferenceRootReduce can produce different recurrence structures depending on assumptions about the variable:
expr = (-1)^Sqrt[n^2];DifferenceRootReduce leaves the expression unevaluated in the generic case:
DifferenceRootReduce[expr, n]While under the assumption
, DifferenceRootReduce generates a second-order difference equation for this expression:
DifferenceRootReduce[expr, n, Assumptions -> n ≥ 0]Method (1)
DifferenceRootReduce can give non-homogeneous equations:
DifferenceRootReduce[Fibonacci[n] + 1, n]Use the option Method->"Homogeneous" to get a homogeneous equation:
DifferenceRootReduce[Fibonacci[n] + 1, n, Method -> "Homogeneous"]Applications (3)
Verify the negation formula for Fibonacci:
DifferenceRootReduce[Fibonacci[-n] == (-1) ^ (n + 1) * Fibonacci[n], n]DifferenceRootReduce[Fibonacci[m + n] == 1 / 2(Fibonacci[m]LucasL[n] + LucasL[m]Fibonacci[n]), n]DifferenceRootReduce[Fibonacci[2n] == Fibonacci[n]LucasL[n], n]DifferenceRootReduce[Fibonacci[n + 1] == 1 / 2(Fibonacci[n] + LucasL[n]), n]DifferenceRootReduce[Fibonacci[n] == 1 / 5(LucasL[n - 1] + LucasL[n + 1]), n]HoldForm[Sum[Binomial[2m + 1, 2k]3 ^ k / (5 2 ^ m), {k, 0, m}]]The difference equation shows that all the values at
are odd:
DifferenceRootReduce[Sum[Binomial[2m + 1, 2k]3 ^ k / (5 2 ^ m), {k, 0, m}] /. m -> 3n + 1, n]Table[%, {n, 0, 10}]//SimplifyPadovanNumber = DifferenceRoot[Function[{y, n}, {-y[n] - y[1 + n] + y[3 + n] == 0, y[0] == 1, y[1] == 1, y[2] == 1}]]Table[PadovanNumber[n], {n, 0, 10}]DifferenceRootReduce[PadovanNumber[n] == PadovanNumber[n - 2] + PadovanNumber[n - 3], n]DifferenceRootReduce[PadovanNumber[n] == PadovanNumber[n - 4] + PadovanNumber[n - 5] + PadovanNumber[n - 6] + PadovanNumber[n - 7] + PadovanNumber[n - 8], n]DifferenceRootReduce[Sum[PadovanNumber[3k + 2], {k, 0, n}] == PadovanNumber[3n + 4] - 1, n]Related Guides
History
Introduced in 2008 (7.0) | Updated in 2020 (12.2)
Text
Wolfram Research (2008), DifferenceRootReduce, Wolfram Language function, https://reference.wolfram.com/language/ref/DifferenceRootReduce.html (updated 2020).
CMS
Wolfram Language. 2008. "DifferenceRootReduce." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/DifferenceRootReduce.html.
APA
Wolfram Language. (2008). DifferenceRootReduce. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DifferenceRootReduce.html
BibTeX
@misc{reference.wolfram_2026_differencerootreduce, author="Wolfram Research", title="{DifferenceRootReduce}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/DifferenceRootReduce.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_differencerootreduce, organization={Wolfram Research}, title={DifferenceRootReduce}, year={2020}, url={https://reference.wolfram.com/language/ref/DifferenceRootReduce.html}, note=[Accessed: 13-June-2026]}