|
. I' d& Z4 l- F
其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...
+ \6 S2 l- l7 Y! P6 G3 q u1 p# w: L- ?6 d; [5 h2 F" K: V' F
X 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍.
$ a5 R7 Q3 E) }2 {/ J0 Y. f( Y, f. V, l: C
這樣子 X = 2時, a = 1, n = 1
7 @. P1 F) N- B& L7 yX = 6 時, x= 0.75, n = 36 l8 A* S! _/ o5 h& d
2 o, y- c9 J) l; J1 ?5 O" D原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).
) Y }/ L) [* f1 x- e+ I! b* q3 |4 v! |# N5 |0 H3 B
至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用
! ]2 P5 a( N, L. ? [3 {' A所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...
2 a1 P0 o3 d% T3 E' F2 e' r8 j& M$ `3 Y4 u
數學真的很重要! (雖然我都忘光了 haha)
0 V h! B' U! \2 U' ^0 [! y$ Z& W1 ]# ^5 [! m
|
|