R和无限级数循环?

时间:2012-10-28 04:52:50

标签: r loops sum

我有这个:

time=1:200
m=1:1000

sum[i]= sum(1/(1+2*m)^2)*exp( (-kappa*(1+2*m)^2 * pi^2 * time[i])/(z1^2))

我需要找到m = 1:1000和time = 1:200

的上述表达式的总和

我尝试了很多种循环而且不能让它坚持下去。我甚至无法在这里表达这个......

3 个答案:

答案 0 :(得分:1)

此命令将返回矩阵:

time <- 1:200
m <- 1:1000

sapply(time,
       function(time) sum(1/(1+2*m)^2)*exp((-kappa*(1+2*m)^2*pi^2*time)/(z1^2)))

在矩阵中,您将找到所有组合的结果。行指示m的值,列指示time的值。

答案 1 :(得分:0)

也许这会奏效:

sum<-0    
time<-0

for(i in 1:200){
  time<-time+1
  m<-0

  for(j in 1:1000){
    m<-m+1
    sum<-sum+(1/(1+2*m)^2)*exp((-kappa*(1+2*m)^2*pi^2*time)/(z1^2))
    }
}

循环应该重复方程200,000次,每次mtime的组合重复一次。最后,sum应该是所有这些方程的总和。但是,我不知道kappaz1是什么,因此我的脚本可能需要进行一些调整。

答案 2 :(得分:0)

另一种方法:

output <- expand.grid(time = 1:200, m =1:1000)
output[,"sum"] <- with(output, sum(1/(1+2*m)^2)*exp( (-kappa*(1+2*m)^2 * pi^2 * time)/(z1^2)))