|
: ?) X# g( m v" \( X# ?4 |+ s4 Q" I其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...
- e' s/ ?% T% g" V2 ]% M0 h, b5 _: j: x; L( X/ W# V! ~+ Y
X 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍. ' @6 @ U' |% ~2 O- d8 x
0 c7 z7 j+ u& P) W5 _
這樣子 X = 2時, a = 1, n = 1
9 R3 \; p$ h% bX = 6 時, x= 0.75, n = 3
3 E% Z5 K" n( A6 P* y* H0 r
: g# c* k% i. P& z原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).0 ~) s( Y* T" o0 ?/ f
" z$ W$ y f" c
至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用# U6 M+ ^8 a! x+ K( w' B G
所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...; K J0 k, _9 `8 t$ E" n/ H# F
* U& [( r* @6 y8 c: f, v" \數學真的很重要! (雖然我都忘光了 haha)
7 N) L" M9 b2 q$ V7 I. g% A7 b3 q+ B F+ T8 {! n( A
|
|