作者ilovenets (wait for a new day)
看板Fortran
標題[問題] 精度問題(疑似)
時間Thu Dec 29 21:40:10 2011
小弟開始在做以線性分析逼近非線性(真實)分析結果的練習
(就是有點像有限元素法,切越細越精準
我是將力分段給予,讓每次的變形越小越準)
可是我跑出來的結果,與我按計算機有點小誤差
最誇張的是當我切超過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
1F:推 target8917:你可以更換精確度以後測試看看 我覺得蠻有可能的 12/29 21:53
2F:→ ilovenets:囧 真的是耶 我想說小數點後面應該沒差的說>< 12/30 01:23
3F:推 target8917:浮點數運算次數多的時候特別要注意精確度問題 12/30 01:33
4F:推 target8917:應該說......你的N大於10010時,浮點數的無效位可能出Y 12/30 01:37
5F:→ target8917:現了 所以會越算越不準 12/30 01:38
6F:→ ilovenets:可是我n=5的值就開始有問題了 所以我才會懷疑是否精度 12/30 08:38
7F:→ ilovenets:精度造成的誤差 12/30 08:38
8F:推 YCTzeng:很有可能是精確度問題。 12/30 14:02