MATLAB: Power Log Zero Returns as Zero

log functionpower function

Can someone solve this maths mystery in Matlab? why log(0) returns as -Inf, but 5^log(0) returns as zero?
log(0)
ans =
-Inf
5^log(0)
ans =
0

Best Answer

Um, basic math?
1. The log function is singular at zero. Log(x) approaches -inf, as x approaches zero. So this seems clear.
2. What is 5 raised to some large positive power? A big number.
3. What is 5 raised to some large negative number? It is the inverse of the answer to #2. So a TINY number.
4. What is the smallest number you can represent in double precision without an underflow to zero?
5^-462
ans =
9.8813e-324
5^-463
ans =
0
realmin
ans =
2.2251e-308
Realmin for a double is 2.2251e-308, but since you can have what are called denormalized numbers, you can go just a bit further before doubles just give up.
5. Is infinity larger than 463? Last time I checked, yes, it was.