|
發表於 2015-4-9 16:15:30
|
顯示全部樓層
+ J0 X) D9 @& A8 v) V# ?! a
其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...
6 M+ K& W& _0 |0 j2 ^* [, i- i# Z* w9 V g) R8 o, E/ W
X 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍. ) T2 n% ]( E/ q
5 p9 x% z& M9 @. ?( j這樣子 X = 2時, a = 1, n = 1! {# g9 t/ U+ n% d
X = 6 時, x= 0.75, n = 3
7 g; K$ N5 r7 Q, E M! m0 f; v) w4 |( ]- N+ Q4 o7 y
原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).4 P0 k4 Z$ V7 R8 U
* s# t i( \$ q( ?至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用- B$ k8 o5 U/ z6 C
所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...
. g. W6 c) c% ^
+ |" u! o4 o8 Q; O5 ?數學真的很重要! (雖然我都忘光了 haha) n6 q P+ K$ S
" \ B1 \( g! n3 z |
|