我想弄清楚为什么我在下面的代码中得到了所有的零。
a = 7.0e16;
e = 100000;
r = 8.3140;
t = 253:2:325;
k = a.*exp(-e./t.*r);
k
返回仅包含零的 1x37 数组。
是因为我的数字太大还是太小?
最佳答案
你正在下溢。 exp 中的东西变成零,之后乘以一个大数就太晚了。它看起来像一个物理方程式——在这种情况下你想除以 r,而不是乘法。 尝试
exp(log(a)-e./(t*r))
它应该工作
编辑 - 必须在指数中添加而不是乘以 log(a)...
关于matlab - 为什么这个指数方程返回一个全零数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14447681/