|
+ j: c8 K2 d% f4 K5 ]* w9 t
其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...% i. `" l: B$ m' ]3 o" z- j1 V
+ h' m h, I) M& H% nX 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍.
% s& n5 @; \' g$ D# v9 f1 [
. {1 a9 Y, X2 P5 g9 q這樣子 X = 2時, a = 1, n = 1
3 O; L; N; _/ c) xX = 6 時, x= 0.75, n = 3
3 c0 E+ e b- ~" f7 [" X3 T* y6 L" D/ \/ y: o; I+ ~
原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).3 B1 b* ~% o5 A% [# F/ t, E
, K k% X' v/ a+ Z' d* u+ v' Y
至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用7 G- i i7 S' F) a$ D
所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic..., j. A# D. ^) f
# k; T9 z% L: T
數學真的很重要! (雖然我都忘光了 haha)) q7 h, c& ]: `
$ ~" H* {5 y" g# a+ T# H3 d2 B
|
|