NetLogo:如何将随机伽玛和除法用于相同的计算公式而不会出现任何错误?
NetLogo: How do I use random-gamma and division for the same calculation formula without any error?
我在 NetLogo 中使用随机伽玛。当我在 random-gamma 的语法中添加除法时,NetLogo 得到一个错误。以下是使用随机伽玛的计算语法示例。 (此外,这些变量 "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'
我认为问题与 random-gamma
无关。 S
、T
或 number-dead
都可能为 0。
如果 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
也就是说,您将 random-gamma
的结果乘以 number-dead
,然后立即将其结果除以 number-dead
,这只会让您得到以下结果random-gamma
。所以我认为您可能放错了一些括号或其他东西。
我在 NetLogo 中使用随机伽玛。当我在 random-gamma 的语法中添加除法时,NetLogo 得到一个错误。以下是使用随机伽玛的计算语法示例。 (此外,这些变量 "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'
我认为问题与 random-gamma
无关。 S
、T
或 number-dead
都可能为 0。
如果 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
也就是说,您将 random-gamma
的结果乘以 number-dead
,然后立即将其结果除以 number-dead
,这只会让您得到以下结果random-gamma
。所以我认为您可能放错了一些括号或其他东西。