0
我正在進行蒙特卡羅(MC)模擬。我有一種方法可以從頭開始計算粒子的能量,也可以只計算舊狀態和新狀態之間的差異。爲了測試對我所做的代碼的修改,我在一步之後通過雙向計算了能量,並得到了不同的結果。這個數字很低(10^-5的規模,而總能量是10^8的規模),但我預計它會更低。有我懷疑這是一個Fortran問題兩個函數,不同的結果。疑似fortran功能
縱觀所有交互三個方面的原因,我沒有看到這兩種方式有什麼區別
值重複自己
許多的值是例如兩個(2^-14)的負冪。
我會很感激你的想法。
上述變量和計算中使用的大多數變量(如果不是全部的話)都是雙精度類型的。編譯器是gnu f95。
相當可能的原因。我會嘗試四倍精度,或gfortran的KIND(10),看看它是否改變。 – 2013-02-21 08:08:46
在一個路由中,有100個計算的順序。在另一條路線上有幾千個。至少10,000。當我輸入f95 -v時,我得到''gcc version 4.1.2 20080704(Red Hat 4.1.2-50)''。 – Yotam 2013-02-21 08:11:46
我不確定gfortran 4.1自2007年以來的版本是什麼;也許是一個RedHat定製版本。 gfortran從4.0開始,早期版本有一些bug。目前的版本是4.7。我會使用的早期版本是4.3。 – 2013-02-21 08:50:19