我正在尋找一種算法來計算LN(1-X)。 x通常很小(< 0.01),但偶爾可能會更大。算法需要準確,不要太慢。我寧願不使用ln(x)庫,因爲我可能會失去準確性。用於計算小(有時大)LN(1-X)良好的算法X
回答
根據你想要的精確度,-x
是一個很好的近似小ln(1-x)
。從here。
編輯:如果需要算法的原因是獲得最佳精度,則有許多是專門爲log(1+x)
庫。例如,在Python中使用log1p。同上C和C++。
您提供的鏈接不包含算法。我發現一個使用log1p作爲搜索詞:http://golang.org/src/pkg/math/log1p.go做,但有浮動精度 – willem 2010-09-24 07:26:15
他們不包括算法,但每一個編程語言,我知道的可以以某種方式使用C庫。另外,你發現的例子有'float64'精度,這是IEEE雙精度。你能告訴我們你可接受的錯誤是什麼,以及爲什麼你不想使用可用的庫?根據你的需要,這裏有人可能會提供幫助。 – 2010-09-24 07:48:28
啊,我知道float64是相似/相等於double的。那麼算法可能就足夠了。我的允許誤差是10^{ - 9}的相對誤差。 – willem 2010-10-08 07:57:15
如果使用MATLAB的log1p()函數是專門爲對於x的小值來計算LN(1 + x)的設計。
問題中沒有什麼說他們使用MATLAB,所以你的答案是沒有用的。 – Tony 2014-09-27 22:41:35
- 1. HTTP 1.1塊大小計算算法
- 2. 計算X小時後的時間?
- 3. 小於和大於awk中的計算
- 4. 估計/計算內存中對象大小的好方法
- 5. 適用於現代Fortran解算器的良好OOP設計
- 6. 使用FPU彙編計算對數ln(x)
- 7. Appwidget大小計算
- 8. C++計算大小
- 9. Android計算器應用程序的良好做法?
- 10. 大小算法
- 11. 無法計算總小時
- 12. 用於(內存)地址列表的良好哈希算法
- 13. 良好的情感分析算法
- 14. 良好的圖形算法庫
- 15. 良好的圖遍歷算法
- 16. 良好的算法給出AZ
- 17. 查找小於x的最大素數的算法
- 18. 計算4 ^在x mod2π爲大的x
- 19. 如何使用datejs計算大於24h的小時數
- 20. 計算位圖大小的方法?
- 21. 計算數組的大小
- 22. 計算元組的大小
- 23. 計算數組的大小
- 24. 計算陣列的大小
- 25. 計算的iOS SDK大小
- 26. 計算內容的大小
- 27. MySQL的計算領域的良好做法
- 28. 用於PQDIF中CRC計算的算法
- 29. Jqplot - 用於計算刻度的算法
- 30. 時間大於24小時之間的PHP計算差值
錯誤的程度是多少? 「x」有多大? – 2010-09-23 09:12:32
準確性非常重要,這是我不想使用庫的原因,因爲通過log(1.0-x)我立即失去了準確性。但算法不應該比使用log(1.0-x)慢幾個數量級。最後,在某些情況下,x可能接近於1.0,但我當然可以在單獨的算法中處理它們。 – willem 2010-09-23 09:18:38
許多圖書館都有專門的功能,請參閱我編輯的答案。 – 2010-09-23 09:42:44