[問題] 數值超過正負300多次方解決辦法?
大家好,目前我使用的是XE2013 with VS2012
目前碰到了一個問題是使用imsl計算bessel function
當回傳數值大於320次方時程式直接shut down
舉例來說
MA(I,J)=DBSI0(LN1(I)*RSD)/(LN1(I)*DBSI1(LN1(I)*RSD))
其中DBSI0與DBSI1是imsl的double precision 的 bessel function指令
當LN1(I)*RSD的值大於700時,會導致DBSI0與DBSI1回傳的值分別都大於320次方
實際上在數學運算時MA(I,J)算出來差不多10的-2到-3之間,但卻會因為分母與分子回傳
的值大於320次方而導致程式終止
有沒有先進能提供方法讓數值超過320次方依然能運算?
或是有甚麼解決方法,先謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.223.116
※ 文章網址: https://www.ptt.cc/bbs/Fortran/M.1470660089.A.81E.html
推
08/09 00:54, , 1F
08/09 00:54, 1F
→
08/09 11:14, , 2F
08/09 11:14, 2F
是指說對分子分母都取對數嗎?
但本身DBSI0與DBSI1回傳的值超過320次方時整個程式就停了
※ 編輯: r1000000 (140.113.223.116), 08/09/2016 13:41:03
→
08/24 14:23, , 3F
08/24 14:23, 3F
推
08/31 17:57, , 4F
08/31 17:57, 4F
推
08/31 18:01, , 5F
08/31 18:01, 5F
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章