Maple 教材:函式庫

Maple 有三千多個函式。 如果把這些函式全部放在核心程式檔案裡面, 那個檔案會非常大。 核心檔案非常大的意思就是說,每當您要打開 Maple 軟體的時候, 就有非常多的資料要從磁碟機複製到記憶體裡面。 這樣就會佔據系統資源,使得您的 PC 執行得更慢、更容易當機, 而且它又不必要:因為絕大多數的函式,可能是您一輩子都用不到的。 不必要的佔據系統資源,就是浪費資源了。 為了避免浪費資源,Maple 將它認為大部分使用者普遍需要的函式, 放在核心程式檔案內,當您打開 Maple 的時候, 就只有這些核心函式被複製到記憶體裡面; 換句話說,就只有這些核心函式是直接可以使用的。 它們包括了 sqrt( )、isprime( ) 等等。

Maple 把它認為不是經常需要的函式,按照性質集合成「函式庫」。 這些函式庫,術語稱為 Maple 套件 (package)。 每個套件有一個名字,而套件裡面存放了若干個性質類似的函式。 如果您知道套件的名字是 pkg,則用指令

with(pkg);
將這個套件讀進來,術語是說「載入」(load)。 讀進來之後,您就會多了一些函式可用。例如關於線性代數的套件名稱是 linalg (linear algebra 的縮寫)。您說
with(linalg);
之後,Maple 回應

Warning, the protected names norm and trace have been redefined and unprotected

  [BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp,
        Wronskian, addcol, addrow, adj, adjoint, angle, augment,
        backsub, band, basis, bezout, blockmatrix, charmat, charpoly,
        cholesky, col, coldim, colspace, colspan, companion, concat,
        cond, copyinto, crossprod, curl, definite, delcols, delrows,
        det, diag, diverge, dotprod, eigenvals, eigenvalues,
        eigenvectors, eigenvects, entermatrix, equal, exponential,
        ...
        vectdim, vector, wronskian]

以上的第一列 Warning ... 意思是說,linalg 套件裡面有兩個函式, 名字分別是 norm( ) 和 tract( ),這兩個函式的名字原來在 Maple 中已經有了,而新的函式(linalg 裡面的)將會蓋掉舊的函式。 此後的 BlockDiagonal, GramSchmidt ... 則是提示您, linalg 套件中,提供了哪些函式。

如果您不想要 Maple 囉哩八說地回應那麼多字, 可以叫它不要回應。只要把分號 ; 改成冒號 : 就行了。例如

with(pkg):

在您關掉 Maple 之前, 每個套件只要載入一次就夠了,它內部的函式就可以用了。 不小心呼叫了許多次,也無傷。並不會浪費系統資源。 如果執行了 restart; (重新開始),則前面載入的套件就被清除掉, 如果需要,必須重新載入。

習題

  1. 看 help(matrix); 學習怎樣在 Maple 中製造一個矩陣。
  2. Maple 計算行列式的函式是什麼?
  3. 計算以下方陣的行列式。
              3  4+a   -a
             2a    1   -1
              9    a  1-a
    
[BCC16-B]
單維彰 (2001/10/25) ---
[Prev] [Next] [Up]