其實 Maple 除了做整數、有理數、根次符號的真確計算之外, 還會做帶有小數點的計算。 帶有小數點的計算結果,有可能是真確的,但是通常是不真確的。 所以說,在電腦中執行帶有小數點的計算,結果通常不是「真正」的計算結果, 而是帶有誤差的「估計值」。 只要指令中的某數帶有小數點,整個計算就會以帶有小數點的方式來算。 例如
1.0/7;都會得到帶有小數點的估計值。 這種針對帶有小數點的計算,術語稱為 浮點數計算。 因為它的不真確性,可能導致明顯的錯誤。 以下我們舉一個例子。
sqrt(2.0);
假設 Maple 只以十位數字做浮點數計算, 那麼,我們可以想像,Maple 的浮點數計算, 是先得到真正的數值,然後再四捨五入到十位數字。 舉例來說,執行以下計算:
x := 0.001;每個人都知道答案應該是 2x2 + x4, 也就是
(1+x^2)^2 - 1;
讓我們詳細地看看上面的例子,看 Maple 為何產生那樣的答案? 首先,Maple 計算 x2 得到
另一種執行浮點數計算的方法是透過函式 evalf( ) 其中 eval 是 evaluation 求值的意思,f 是浮點數 floating number 的意思。例如
evalf(1/7);經常我們喜歡先以真確的符號計算取得真正的答案,然後再以 evalf( ) 看看它的數值。 例如
evalf(sqrt(2));
sqrt(72) - sqrt(36);
evalf(%);
習題
x := 0.00001;答案是什麼?為什麼?
(1+x^2)^2 - 1;