|
- I w* E4 l: w" g4 `4 ^5 W
其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...
2 i. f+ H+ k, {* Z& }) B! W/ v& K
+ H$ p, l4 s& oX 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍.
& ?, s3 R4 H* t( k! N' B) Q t
9 B. a7 i# x" R5 \) ~1 \7 F6 f; K這樣子 X = 2時, a = 1, n = 10 p# M: s' b( \
X = 6 時, x= 0.75, n = 3
" g# H$ O6 D, x' a# f2 P) T2 N6 p0 ]4 D8 x% Y
原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).4 E$ C! s3 |8 m. A9 }
9 U: r% m2 Q/ Y7 n+ R- q( \* P: _
至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用
4 f4 b7 V7 L9 A所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...
4 `: L. y# M" ^ p: ^+ A5 f, e
7 m. s& O0 i# K數學真的很重要! (雖然我都忘光了 haha)# n3 n4 b4 P! Z m& R
2 C& I: [* S6 y/ [/ ^
|
|