递归累积函数

use*_*464 5 r

我需要在R中写一个累积求和函数,但我一直在打砖墙.该函数具有以下结构:

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
Run Code Online (Sandbox Code Playgroud)

等等.cumsum似乎不适用于此类功能.有什么办法可以在R中实现吗?

Vin*_*ynd 10

因为你的递归是

u[n+1] = a * ( x[n+1] + u[n] )
Run Code Online (Sandbox Code Playgroud)

u[n+1]/a = x[n+1] + a * u[n]/a,
Run Code Online (Sandbox Code Playgroud)

你可以使用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]
Run Code Online (Sandbox Code Playgroud)