作者SYlin (喔)
看板Fortran
標題[問題] 數值太大導致run time error
時間Wed Jan 27 17:11:13 2010
我有個問題
b=10E5 w=0.5
在跑到這一行的時候
s=((b*w)**2.0*exp(b*w))/(1+exp(b*w))**2.0
就會出現 run time error
請問有什麼辦法可以解決嗎?
希望各位高手幫幫忙
感恩~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.91.131
1F:推 egggg:改寫成s=((b*w)**2.0*exp(-b*w))/(1+exp(-b*w))**2.0 01/27 18:38
2F:推 sjgau:使用 REAL*8 01/27 18:40
3F:推 egggg:改成real*8還是有危險,不過這數根本上是個0... 01/27 19:02
4F:→ SYlin:已經是REAL*8了 01/27 20:53
5F:→ SYlin:感謝樓上兩位 我後來取LOG算 再用EXP 就可以算了 01/27 20:57
6F:→ SYlin:不過不知道這樣精確度會不會比較差 01/27 20:59
7F:推 Gwaewluin:應該是醫定變差吧,又是log又是exp的 01/28 07:18
8F:→ Gwaewluin: 一 01/28 07:18