【问题标题】:Recursive cumulative function递归累积函数
【发布时间】:2012-07-18 03:45:06
【问题描述】:

我需要在 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

等等。 cumsum 似乎不适用于这种类型的功能。有什么方法可以在 R 中实现吗?

【问题讨论】:

  • 您能否提供一些示例输入和预期结果?
  • 我正在寻找类似 1) .5*1=.5 (2) .5*2+.25*1=1.25 (3) .5*3+.25*2+ .125*1 = 2.125,以此类推。
  • 您应该将其添加到问题中,而不是将其作为评论。

标签: r


【解决方案1】:

因为你的递归是

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

即,

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

你可以使用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]

【讨论】:

    猜你喜欢
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 2018-05-13
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多