作者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