# LinearRecurrence

LinearRecurrence[ker,init,n]

gives the sequence of length n obtained by iterating the linear recurrence with kernel ker starting with initial values init.

LinearRecurrence[ker,init,{n}]

gives the n term .

LinearRecurrence[ker,init,{nmin,nmax}]

yields terms nmin through nmax.

# Details • The ker and init can involve arbitrary symbolic expressions, as well as arrays.
• The initial list init must be at least as long as the kernel list ker.
• If init is longer than ker, only the last Length[ker] elements are used.
• LinearRecurrence[{a1,,ad},{y1,,yd},n] iterates the recurrence equation with initial conditions , , .
• When coefficients ai and initial values yj are arrays, then the iterated recurrence is interpreted as with dot products of values and the reversed coefficients.
• If the initial values yj have dimensions {m1,,ms} then the coefficients ai must either be scalar or must have dimensions {m1,m1}.

# Examples

open allclose all

## Basic Examples(3)

Solve an initial-value problem for a first-order difference equation with kernel {-3, 1}:

Find the first few Fibonacci numbers:

## Scope(2)

LinearRecurrence works with symbolic kernels and initial values:

LinearRecurrence works with arrays:

## Generalizations & Extensions(2)

Generate a subset of values from a given range:

Get only the last value from an iteration:

## Applications(2)

Generate recursive sequences, including a Padovan sequence:

Pell numbers:

PellLucas numbers:

Perrin sequence:

Efficiently compute the n term of a linear recurrence for large n:

## Properties & Relations(1)

RSolve finds a symbolic solution for difference equations:

LinearRecurrence generates a procedural solution:

Obtain the same result using RSolveValue:

## Possible Issues(1)

Initial values are longer than the kernel:

Only the last terms are used: