看板 Fortran 關於我們 聯絡資訊
先說聲不好意思,因為我問的問題比較general一點 而且我沒辦法po出我的程式。 問題是這樣的,我想要改變角度然後去算相變溫度。 假設用迴圈方法去執行同一段程式,程式裡頭唯一不同的只有角度。 假設做了十圈,也就是執行了十次 我發現當我每一圈都去算一樣角度的時候,第二到第九圈的答案是一樣的, 但是第一圈卻算出不一樣的答案,雖然很接近,差了不到百分之一。 我想過的可能原因是有些實際上為零的變數,我沒先預告為零,當fortran 下去運行的時候是使用了一個很趨近於零的數,導致結果不一樣,而這段程式 的行末有宣告為零,所以二到九圈是正常值。 我現在已經排除了這個可能,想請問大家還有沒有別的可能原因呢? 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 160.94.47.16
perturb:變數如果是real data type要考慮rounding error 10/15 15:34
perturb:沒看見code隻能瞎猜了 10/15 15:34
charlesdc:有效位數的問題嗎? 相差百分之一的地方是指哪裡?? 10/15 19:43