2015-02-10 120 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

所以這取決於你所需要的,前者會更快,後者更精確。