作者shomingchang ( )
看板MATLAB
標題[討論] 運算結果不同?
時間Thu Apr 26 21:50:32 2012
我要計算 log(20^-20+a+b),但是當 a=-b 的時候會出錯,例如
log(20^-20+1-1)=-Inf
log(20^-20)=-59.914645471079822
請問要怎麼避免這種問題?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.118.79.107
1F:推 diva:我猜錯誤的原因是20^-20比起1和-1小太多了 04/26 23:16
2F:→ diva:20^-20+1時 20^-20就備省略掉了 04/26 23:16
3F:→ diva:於是20^-20+1-1 實際上就是1-1而已 04/26 23:17
4F:推 diva:解決的方法是log(20^-20+(1-1)) 先把後面算完 04/26 23:19
5F:→ diva:避開省略造成的錯誤 04/26 23:19
6F:→ diva:或者是log(1-1+20^-20) 04/26 23:20
7F:→ diva:Matlab好像是從左邊算到右邊 我不太確定C是不是也是這樣 04/26 23:21
8F:→ diva:請會得人幫忙解答一下吧 04/26 23:21
9F:推 okgogogo:log(20^-20+(a+b)) 04/27 00:18