Generate numeric sequences applying a linear recursion nr.it times.
iterate.lin.recursion(x, coeff, delta =0, nr.it)
Arguments
x: numeric vector with initial values, i.e., specifying the beginning of the resulting sequence; must be of length (larger or) equal to length(coeff).
coeff: coefficient vector of the linear recursion.
delta: numeric scalar added to each term; defaults to 0. If not zero, determines the linear drift component.
nr.it: integer, number of iterations.
Returns
numeric vector, say r, of length n + nr.it, where n = length(x). Initialized as r[1:n] = x, the recursion is r[k+1] = sum(coeff * r[(k-m+1):k]), where m = length(coeff).
Note
Depending on the zeroes of the characteristic polynomial of coeff, there are three cases, of convergence, oszillation and divergence.
Author(s)
Martin Maechler
See Also
seq can be regarded as a trivial special case.
Examples
## The Fibonacci sequence:iterate.lin.recursion(0:1, c(1,1), nr =12)## 0 1 1 2 3 5 8 13 21 34 55 89 144 233## seq() as a special case:stopifnot(iterate.lin.recursion(4,1, d=2, nr=20)== seq(4, by=2, length=1+20))## ''Deterministic AR(2)'' :round(iterate.lin.recursion(1:4, c(-0.7,0.9), d =2, nr=15), dig=3)## slowly decaying :plot(ts(iterate.lin.recursion(1:4, c(-0.9,0.95), nr=150)))