|
) D3 O! B0 U2 ?9 `2 C I. e+ |其實是原作者一時手快, 原文應該寫成下面這樣比較好懂..., W! D9 i8 W T
" D8 z* r1 R5 f, X' t
X 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍.
2 p9 z! K# h7 g' l" G! C% ]8 ? f7 r* ~9 Y Q9 q
這樣子 X = 2時, a = 1, n = 1
6 x; w `7 T0 ^# m# v: gX = 6 時, x= 0.75, n = 3
" J% b4 H8 N' }( K/ q7 }9 Y$ b8 F9 i% j! e! K
原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).9 G: M" ^4 n5 c4 L
4 w4 f4 T$ b9 K8 K- H至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用. K5 e) t/ A: c5 W. b5 q6 B A
所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...: U. W5 @, B5 |( S
. i/ G6 ^; E. k" b# J
數學真的很重要! (雖然我都忘光了 haha)
' E' g3 Q$ r8 Y: e
, o- p5 |2 k9 o! Z! j |
|