[問題] 迴圈出來的值不同?

看板Fortran作者 (台灣)時間14年前 (2010/10/15 07:05), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/1
先說聲不好意思,因為我問的問題比較general一點 而且我沒辦法po出我的程式。 問題是這樣的,我想要改變角度然後去算相變溫度。 假設用迴圈方法去執行同一段程式,程式裡頭唯一不同的只有角度。 假設做了十圈,也就是執行了十次 我發現當我每一圈都去算一樣角度的時候,第二到第九圈的答案是一樣的, 但是第一圈卻算出不一樣的答案,雖然很接近,差了不到百分之一。 我想過的可能原因是有些實際上為零的變數,我沒先預告為零,當fortran 下去運行的時候是使用了一個很趨近於零的數,導致結果不一樣,而這段程式 的行末有宣告為零,所以二到九圈是正常值。 我現在已經排除了這個可能,想請問大家還有沒有別的可能原因呢? 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 160.94.47.16

10/15 15:34, , 1F
變數如果是real data type要考慮rounding error
10/15 15:34, 1F

10/15 15:34, , 2F
沒看見code隻能瞎猜了
10/15 15:34, 2F

10/15 19:43, , 3F
有效位數的問題嗎? 相差百分之一的地方是指哪裡??
10/15 19:43, 3F
文章代碼(AID): #1Cjuot0X (Fortran)
文章代碼(AID): #1Cjuot0X (Fortran)