|
0 o. Y# h% L* T
其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...7 d- o8 L, D$ E' R, k
2 Y& D* J: @" w6 n0 xX 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍. p; o" x, H0 R# G- j, D
( ^% V/ e$ D% I: ]9 H
這樣子 X = 2時, a = 1, n = 1
/ ~) \+ }0 O" D8 Z1 iX = 6 時, x= 0.75, n = 34 v" ^; ~, g% s% r
7 K2 E( ~1 \; l. ?
原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).1 w' D: R0 |& \+ \; ~' ]5 B5 @
4 ]0 N* X& q/ L* I! @5 J" m7 s, I3 F至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用" {; ~0 F! O4 O7 L( J
所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...
2 ], p$ p* }" |8 a0 ~5 y% _8 J4 c/ K1 S/ i5 L( O
數學真的很重要! (雖然我都忘光了 haha)
+ ~) E7 C, p6 d) m. ~2 f% P
8 d6 X5 p9 R2 I3 t/ p. Q+ i |
|