3

我试图弄清楚为什么我在下面的代码中得到全零。

a = 7.0e16;
e = 100000;
r = 8.3140;
t = 253:2:325;

k = a.*exp(-e./t.*r);

k返回为仅由零组成的 1x37 数组。

是因为我的数字太大还是太小?

4

1 回答 1

4

你得到了下溢。事情在 exp 中变为零,之后乘以一个大数字为时已晚。它看起来像一个物理方程——在这种情况下,你想除以 r,而不是相乘。尝试

exp(log(a)-e./(t*r))

它应该工作

编辑 - 必须在指数中添加而不是相乘 log(a) ...

于 2013-01-21T21:43:56.257 回答