[問題] 精度問題(疑似)

看板Fortran作者 (wait for a new day)時間13年前 (2011/12/29 21:40), 編輯推噓4(404)
留言8則, 3人參與, 最新討論串1/1
小弟開始在做以線性分析逼近非線性(真實)分析結果的練習 (就是有點像有限元素法,切越細越精準 我是將力分段給予,讓每次的變形越小越準) 可是我跑出來的結果,與我按計算機有點小誤差 最誇張的是當我切超過10010次後(也就是code裡的n大於10010) 結果比切10010次的誤差值還大...... 請精通matlab的同學幫我跑同樣的計算式子就沒有此問題 連一開始分段次數少的結果都與我按計算機無誤 不知道是不是我沒有設定精度的問題呢? 以下是我的code: do j=1,10 !decide how many times to loading read(5,*) n pi=acos(-1.) !the angle between BA and AC line b= pi/2 !the length of BC line c=4*(2**(1/2.)) do i=1,n !the angle between BC and AC line ai=(pi-b)/2 !strength on BC line F= (5000./n)*sin(pi-(2*ai))/sin(ai) !variation of BC line s= F/12000 !total length after loading c=c+s !final angle between BA and AC line after loading b=acos((32-c*c)/32) end do !chang b's variation from rad to degree q=(b*180/pi)-90 !Error value z=(14.25-q)/14.25*100 write (7,*) n,q,c,z end do 還請知道的大大幫忙解惑一下 感謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.125.133

12/29 21:53, , 1F
你可以更換精確度以後測試看看 我覺得蠻有可能的
12/29 21:53, 1F

12/30 01:23, , 2F
囧 真的是耶 我想說小數點後面應該沒差的說><
12/30 01:23, 2F

12/30 01:33, , 3F
浮點數運算次數多的時候特別要注意精確度問題
12/30 01:33, 3F

12/30 01:37, , 4F
應該說......你的N大於10010時,浮點數的無效位可能出Y
12/30 01:37, 4F

12/30 01:38, , 5F
現了 所以會越算越不準
12/30 01:38, 5F

12/30 08:38, , 6F
可是我n=5的值就開始有問題了 所以我才會懷疑是否精度
12/30 08:38, 6F

12/30 08:38, , 7F
精度造成的誤差
12/30 08:38, 7F

12/30 14:02, , 8F
很有可能是精確度問題。
12/30 14:02, 8F
文章代碼(AID): #1E_6s-Zn (Fortran)
文章代碼(AID): #1E_6s-Zn (Fortran)