|
6 { c! K/ M1 m其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...
d3 e/ f2 }( }$ t/ N9 c4 M- k! D
3 Z5 R6 P8 U+ T; [; K+ j! e; {- rX 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍.
" a% R. f! j. i$ K. H2 {; v, ~- F
W& e, m" g& v# s8 n+ f這樣子 X = 2時, a = 1, n = 1
+ E" W: O7 H4 x) R) k; \X = 6 時, x= 0.75, n = 36 q0 w, U8 y3 Z" W- R% z
) Z, }1 J7 h0 F$ \原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit)." Q9 Z) g$ s7 ]: E+ a! _- W
5 b. ^; b; K$ y8 C至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用4 |9 I" I7 a4 D# v. Y& E
所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...
7 }2 i y' q: i- c' C! N k0 e0 ~, d2 g' n4 x
數學真的很重要! (雖然我都忘光了 haha)9 o: s2 F( @/ g) q# U
' W: Y. K8 y9 U
|
|