user1536464
user1536464

Reputation: 55

Recursive cumulative function

I need to write a cumulative summation function in R but I've been hitting a brick wall. The function has the following structure:

a*x1
a*x2 + a^2*x1
a*x3 + a^2*x2 + a^3*x1
a*x4 + a^2*x3 + a^3*x2 + a^4*x1

And so on. cumsum doesn't seem to work for this type of function. Is there any way this could be implemented in R?

Upvotes: 5

Views: 1865

Answers (1)

Vincent Zoonekynd
Vincent Zoonekynd

Reputation: 32351

Since your recursion is

u[n+1] = a * ( x[n+1] + u[n] )

i.e.,

u[n+1]/a = x[n+1] + a * u[n]/a,

you can use filter:

x <- 1:5
a <- 2
a*filter(1:5, a, method="recursive")

# Compare with the expected values
a*x[1]
a*x[2] + a^2*x[1]
a*x[3] + a^2*x[2] + a^3*x[1]
a*x[4] + a^2*x[3] + a^3*x[2] + a^4*x[1]

Upvotes: 10

Related Questions