0

私はこれを持っています:

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 の上記の式の合計を見つける必要があります

いろいろなループを試しましたが、くっつきません。ここで表現するのも難しい……。

4

3 に答える 3

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

于 2012-10-28T07:11:43.957 に答える
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))
    }
}

ループは、 と の組み合わせごとに 1 回、方程式を 200,000 回繰り返す必要がmありtimeます。最後に、sumこれらすべての方程式の合計になるはずです。kappaただし、とが何であるかわからないz1ため、スクリプトを微調整する必要があるかもしれません。

于 2012-10-28T05:16:42.110 に答える
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)))
于 2014-01-30T03:11:56.510 に答える