2023年2月12日 星期日

Log

http://4rdp.blogspot.com/2023/02/log.html?m=0

在 整理 dB 一文時,想起曾經寫過一篇 對數 (Logarithm) 專文,它是在你沒有數學函式庫時,可以求解對數的方法,不過在組合語言設計程式的年代,八位元處理器的算力不夠強,我沒有使用這種計算法求解,而是採用查表法來求對數值,本文說明查表法可以如何設計。


如上圖所示,

設計 log10 ,就事先將 log10 數值 $n$ 等分,本範例把 log(x) 五等分,每一區間把它們視為線性,可以線性內插求值,例如求 y = log(2),(1.5849 - 2) / (2.5119 -2) = (0.2 - y) / (0.4 - y),y = 0.29

log(x)

x

0.00

1.0000

0.20

1.5849

0.40

2.5119

0.60

3.9811

0.80

6.3096

1.00

10.0000

在當時實作上我是將它 33 等分,這樣計算 log10 可誤差在 ± 0.01 範圍內。

沒有留言:

張貼留言