|
) q: T' H0 @6 L5 i' q
其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...9 R$ D/ l7 U+ i7 m2 u4 M k; R
4 h+ q" }* J* p5 g. Y2 k
X 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍. # ?2 s$ ]5 g5 T3 N1 f6 d+ j
! Y) a2 h* b* s* x, b3 `$ N
這樣子 X = 2時, a = 1, n = 1& s' N C% p% t: I# S9 `
X = 6 時, x= 0.75, n = 3
$ T6 D# j! t1 I
. @9 `+ a1 j/ c$ \2 ]) M原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).! o2 B! u: Q6 S5 h
% Q, n9 D, i% K4 T8 I
至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用) C' T# z O; f9 I# K. K4 x0 ^! E
所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic.../ Q4 z1 E) V. i9 n7 x$ R
. o' S: C' c A+ u7 a
數學真的很重要! (雖然我都忘光了 haha)
3 u b* U% o3 Z* S% ^7 o3 U1 Q0 n, ^1 @: D2 e
|
|