What do all of the examples of the previous section have in common? The end result that we were able to achieve is a linear recurrence, which tells us how we can compute the \(n^\text{th}\) term of a sequence given some number of previous values (and perhaps also depending nonrecursively on \(n\) as well, as in the last example). More precisely a recurrence equation is said to be linear when it has the following form
where \(k\ge1\) is an integer, \(c_0,c_1,\dots,c_k\) are constants with \(c_0,c_k\neq0\text{,}\) and \(g:\ints\rightarrow\reals\) is a function. (What we have just defined may more properly be called a linear recurrence equation with constant coefficients, since we require the \(c_i\) to be constants and prohibit them from depending on \(n\text{.}\) We will avoid this additional descriptor, instead choosing to speak of linear recurrence equations with nonconstant coefficients in case we allow the \(c_i\) to be functions of \(n\text{.}\)) A linear equation is homogeneous if the function \(g(n)\) on the right hand side is the zero function. For example, the Fibonacci sequence satisfies the homogeneous linear recurrence equation
Our immediate goal is to develop techniques for solving linear recurrence equations of both homogeneous and nonhomogeneous types. We will be able to fully resolve the question of solving homogeneous linear recurrence equations and discuss a sort of “guess-and-test” method that can be used to tackle the more tricky nonhomogeneous type.