2017-06-04 55 views
0

我使用NetLogo的隨機伽馬。當我將除法添加到random-gamma語法時,NetLogo會得到一個錯誤。以下是使用隨機伽馬的計算語法的示例。 (另外,這些變量「number-dead,S,T」被註冊在全局變量中。)在我的模擬中,需要在隨機伽馬計算結果之後添加除法。我該怎麼辦?請給一些建議。我們感謝您的合作。NetLogo:如何在沒有任何錯誤的情況下對同樣的計算公式使用隨機伽馬和除法?

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'

回答

3

我不認爲這個問題有什麼關係random-gamma。任一ST,或number-dead很可能是0。

如果S爲0,那麼這兩個(1/(S * S))(1/(T * (S * S)))將導致除以0

如果T爲0,則(1/(T * (S * S)))將導致除法0.

如果number-dead爲0,則將導致除以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 

也就是說,你被number-dead乘以random-gamma的結果,然後立刻將結果除以number-dead,剛剛給你留下的random-gamma結果。所以我認爲你可能放錯了一些括號或其他東西。

+0

感謝您的快速建議。稍後我會用代碼對它進行測試。可能沒關係。如果我不明白,我可能再問你一次。非常感謝你。 – goodgest

+0

你好,我用推薦的代碼測試了它,但是出現了同樣的錯誤。 「它除以0」。我會多思考一下。 – goodgest

+0

我沒有推薦任何代碼......我展示了你寫的代碼可能是錯誤的。 –

相關問題