我有这个:
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 的上述表达式的总和
我尝试了多种循环并且无法使其粘住。我什至无法在这里表达这个......
此命令将返回一个矩阵:
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
。
也许这会起作用:
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 次,每次m
和的组合一次time
。最后,sum
应该是所有这些方程的总和。但是,我不知道是什么kappa
,z1
所以我的脚本可能需要一些调整。
另一种方法:
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)))