2015-02-10 126 views
1

数学,log(x/(y*z))log(x)-log(y)-log(z)are equivalent。在电脑上,他们会给出不同的答案。哪个更适合计算?计算log(x /(y * z))或log(x)-log(y)-log(z)会更好吗?

+0

我在VB.NET中使用Double类型尝试了很多种数字,并得到了15 S.F.的相同答案。双向。你用什么语言来获得不同的结果,以及你使用的数字的大小是多少? – 2015-02-10 19:02:19

+1

“更好”是主观的。 – 2015-02-10 19:06:27

回答

3

Log是数值稳定的,但师并非如此。想象一下yz非常接近0。然后y * z很有可能被评估为0x/(y * z)溢出。但log(y)即使非常小y给出了准确的结果。所以log(x)-log(y)-log(z)预计会更精确。

1

所以这取决于你所需要的,前者会更快,后者更精确。