2012-10-28 40 views
0

我有這樣的:R和無窮級數循環的和?

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和時間= 1:200

我已經嘗試了許多不同環的,並且不能使其棒。我甚至有在這裏表達這種麻煩....

回答

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)) 
    } 
} 

的循環應重複式20萬次,一次和mtime每個組合。最後,sum應該是所有這些方程式的總和。但是,我不知道kappaz1是什麼,所以我的腳本可能需要一些調整。

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的值。

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)))