表示式的類型
表示式的例子包括:
1.多變元多項式
2.標準函式(三角函式、指數函式等等)
3.特殊函式(Γ函式、Bessel函式等等)
4.由各種表示式合成的函式
5.表示式的導函式、積分、和與積
6.以表示式為係數的級數
7.表示式構成的矩陣
符號運算
以下是幾種典型的符號運算:
1.表示式的簡化
2.對表示式求值
3.表示式的變形:展開、積、冪次、部份分式表法、將三角函式表為指數函式等等。
4.對單變元或多變元的微分。
5.帶條件或不帶條件的整體最佳化。
6.部份或完整的因式分解。
7.求解線性方程組或一些非線性方程式。
8.某類微分方程或差分方程的符號解。
9.求某些函式的極限值。
10.一些函式的定積分或不定積分,包括多變元的情形。
11.泰勒展開式、羅朗展開式與Puiseux展開式
12.某些函式的無窮級數展開式。
13.對某些級數求和。
14.矩陣運算。
15.數學式的顯示,通常借著TeX之類的系統達成。
其它功能
通常計算機代數系統還能進行一些數值運算:
1.函式的確切求值。
2.高精度求值,例如計算到小數點後位。
3.線性代數的數值運算。
4.描繪二維或三維的函式圖形。
在數值運算方面,計算機代數系統的速度通常較Matlab、GNU Octave或C語言中以同等方式實現的程式慢。這是因為計算機系統幾乎總是對符號表示式運算,故不能充分利用CPU的既有指令。
許多計算機代數系統內置高級程式語言,以供用戶擴展,或設定個人的操作模式。
歷史
馬丁紐斯·韋爾特曼(Martinus J. G. Veltman) 是這個領域的先驅,他首先考慮了在高能物理中的套用。他在1963年設計的第一個程式叫Schoonship(荷蘭文,意指“乾淨的船”)。
最早受到歡迎的系統是Reduce、Derive與Macsyma,現在仍然可取得。Macsyma的一個GNU通用公共許可證發布的版本叫作Maxima,現在仍有維護。市場的龍頭為Maple與Mathematica,兩者被數學家、科學家及工程師們廣泛採用,此外還有MuPAD與MathCad。
另有一些系統著眼於特定的套用領域,這些系統通常在學院中被設計、發展及維護,例如交換代數系統Macaulay 2或數論系統PARI/GP。
系統
mathHandbook.com (former symbmath)
Sagemath
Mathematica
Maple
MAGMA
Maxima
GAP
PARI/GP
Meditor
MuPAD
Mathomatic
Xcas / Giac
Yacas
Mate
標誌
計算機代數系統的標誌是能夠以字元串作為運算單位。
不同的字元串代表的含義是不同的,字元串可以被賦值使它具有特殊含義。
例如:
a 作為一個字元串
b 作為另一個字元串
則有
2a 代表 2 乘以 a ,2個a的和。
a*b 代表 a 和 b 相乘。
ab 則代表另一個與 a 或 b 都不相關的字元串。
此時,給 a 賦值:2→a(令 a 等於 2)
則有
2a = 2*2 = 4
a*b = 2*b
ab 仍然是另一個獨立的字元串。
ab * ab = 2*ab
(a*b)*(a*b) = a^2 * b^2 = 2^2 * b^2 = 4* b^2
特點
優點
1.可以進行符號運算,數值計算和圖形顯示,這是通用數學軟體包的三大基本功能.具有高效的可程式功能.
2.多數計算機代數系統都是互動式的,人們通過鍵盤輸入命令,計算機計算後顯示結果.好的系統都有Windows作業系統下的版本,人機界面友好,命令輸入方便靈活,很容易尋求幫助.結果的輸出有多種形式,好的數學軟體都提供了人們習慣的數學符號表達形式.
3.各個系統都在不斷地發展完善,不斷地更新換代,更新的速凍也在逐漸加快.數學軟體在向著智慧型化,自動化方向發展.數學軟體的實質是數學方法及其算法在計算機上的實現,這些方法是千百年來無數數學家的工作與智慧的結晶.
4.參與軟體開發和套用的人員的數量在不斷增加,而且日趨國際化.隨著Internet的普及,軟體用戶可以很方便地與軟體開發者進行溝通,反映軟體中存在的問題,也把新的套用情況和好的程式提供給軟體的開發者.軟體的開發不再只是軟體開發者的事情,也是廣大用戶的事情.
計算機代數系統的優越性主要在於它能夠進行大規模的代數運算.通常我們用筆和紙進行代數運算只能處理符號較少的算式,當算式的符號上升到百位數後,手工計算便成為可能而不可行的事,主要原因是在做大量符號運算時,我們很容易出錯,並且缺乏足夠的耐心.當算式的符號個數上升到四位數後,手工計算便成為不可能的事,這時用計算機代數系統進行運算就可以做到準確,快捷,有效.
缺點
儘管計算機代數系統在代替人進行繁瑣的符號運算上有著無比的優越性,但是,計算機畢竟是機器,它只能執行人們給它的指令.數學軟體都有一定的局限性.首先,多數計算機代數系統對計算機硬體有較高的要求,在進行符號運算時,通常需要很大的記憶體和較長的計算時間,而精確的代數運算以時間和空間為代價的.一些人工計算的簡單問題,計算機代數系統卻做不出來.用數學軟體的第二個問題是計算結果往往很長,人們很難從結果中看到問題的要害.用計算機代數系統進行數值計算,雖然計算精度可以到任意位,但由於計算機代數系統是用軟體本身浮點運算代替硬體算術運算,所以在速度要比用Fortran語言算同樣的問題慢百倍甚至千倍.另外,雖然計算機代數系統包含大量的數學知識,但這僅僅是數學的一小部分,目前有許多數學領域計算機代數系統還未能涉及.