0

我在 NetLogo 中使用随机伽玛。当我在 random-gamma 的语法中添加除法时,NetLogo 出现错误。以下是使用 random-gamma 的计算语法示例。(此外,这些变量“number-dead, S, T”注册在全局变量中。)在我的模拟中,需要在随机伽马计算结果之后添加除法。我该怎么办?请对此提出一些建议。我们感谢您的合作。

set sim precision((number-dead * random-gamma(1 / (S * S))(1 / (T * (S * S)))) / number-dead)3

以下是发生错误时的弹出消息。

It is divided by 0. error while observer running / called by procedure GOPARALLEL called by button 'goparallel'

4

1 回答 1

3

我不认为这个问题与random-gamma. ,或可能为 0 STnumber-dead

如果S为 0,则两者(1 / (S * S))(1 / (T * (S * S)))都将导致除以 0。

如果T为 0,那么(1 / (T * (S * S)))将导致除以 0。

如果number-dead为 0,那么(number-dead * random-gamma (1 / (S * S)) (1 / (T * (S * S)))) / number-dead)将导致除以 0。

另外,我认为代码是错误的。它本质上是在做:

let rand random-gamma (1 / (S * S)) (1 / (T * (S * S)))
let raw-num number-dead * rand / number-dead
set sim precision raw-num 3

也就是说,您将乘以 by 的结果random-gammanumber-dead然后立即将该结果除以number-dead,这只会留下您的结果random-gamma。所以我认为你可能放错了一些括号之类的东西。

于 2017-06-04T14:08:35.957 回答