计算 log(x/(y*z)) 还是 log(x)-log(y)-log(z) 更好?
Is it better to compute log(x/(y*z)) or log(x)-log(y)-log(z)?
在数学上,log(x/(y*z))
和 log(x)-log(y)-log(z)
are equivalent。在电脑上,他们会给出不同的答案。哪个更适合计算?
前者会更快,后者会更精确,所以这取决于你的需要。
Log
是数值稳定的,但除法不是。想象一下 y
和 z
非常接近 0
。那么y * z
有很大概率会被评估为0
而x / (y * z)
溢出。但是 log(y)
即使对于非常小的 y
也会给出准确的结果。所以log(x)-log(y)-log(z)
预计会更精确。
在数学上,log(x/(y*z))
和 log(x)-log(y)-log(z)
are equivalent。在电脑上,他们会给出不同的答案。哪个更适合计算?
前者会更快,后者会更精确,所以这取决于你的需要。
Log
是数值稳定的,但除法不是。想象一下 y
和 z
非常接近 0
。那么y * z
有很大概率会被评估为0
而x / (y * z)
溢出。但是 log(y)
即使对于非常小的 y
也会给出准确的结果。所以log(x)-log(y)-log(z)
预计会更精确。