計算機代數系統

計算機代數系統

計算機代數系統(Computer Algebra System),簡稱CAS。計算機代數系統的標誌是能夠以字元串作為運算單位。

基本信息

基本介紹

科學計算可分為兩類:一類是純數值的計算,例如求函式的值,方程的數值解。另一類計算是符號計算,又稱代數運算,這是一種智慧型化的計算,處理的是符號。符號可以代表整數,有理數,實數和複數,也可以代表多項式,函式,還可以代表數學結構如集合,群的表示等等。人們在數學的教學和研究中用筆和紙進行的數學運算多為符號運算。

眾所周知,從計算機發明到現在的50多年時間裡,用計算機進行的科學計算主要是數值計算,如天氣預報,油藏模擬,航天等領域的大規模數值計算。長期以來,人們一直盼望有一個可以進行符號計算的計算機系統。早在50年代末,人們就開始了研究。進入80年代後,隨著計算機的普及和人工智慧的發展,用計算機進行代數運算的研究在國外發展非常迅速,涉及的數學領域也在不斷地擴大,相繼出現了多種功能齊全的計算機代數系統,這些系統可以分為專用系統和通用系統,專用系統主要是為解決物理,數學和其他科學分支的某些計算問題而設計的,專用系統在符號和數據結構上都適用於相應的領域,而且多數是用低級語言寫成的,使用方便,計算速度快,在專業問題的研究中起著重要的作用。通用系統具有多種數據結構和豐富的數學函式,套用領域廣泛。其中,REDUCE,RERIVE,Mathematica和Maple是用戶教為廣泛的通用數學軟體。最近的計算機代數系統都是用C語言寫成的,這種語言為軟體開發者提供了編寫有效的可移植的電腦程式的平台,所以這種計算機代數系統可以在絕大多數計算機上使用。Mathematica和Maple就是這樣的系統。Mathematica是第一個將符號運算,數值計算和圖形顯示很好地結合在一起的數學軟體,用戶能夠方便地用它進行多種形式的數學處理。Maple是80年代初就開始研製的計算機代數系統,起初並不為人們所注意,但這個軟體發展很快。自從1992年MapleVR2出版後,更多的用戶就發現它是一個功能強大而且界面友好的計算機代數系統

計算機代數系統計算機代數系統

儘管不同的數學軟體之間有較大的差別,但也有一些共同的特點:
1。可以進行符號運算,數值計算和圖形顯示,這是通用數學軟體包的三大基本功能。具有高效的可程式功能。
2。多數計算機代數系統都是互動式的,人們通過鍵盤輸入命令,計算機計算後顯示結果。好的系統都有Windows作業系統下的版本,人機界面友好,命令輸入方便靈活,很容易尋求幫助。結果的輸出有多種形式,好的數學軟體都提供了人們習慣的數學符號表達形式。
3。各個系統都在不斷地發展完善,不斷地更新換代,更新的速凍也在逐漸加快。數學軟體在向著智慧型化,自動化方向發展。數學軟體的實質是數學方法及其算法在計算機上的實現,這些方法是千百年來無數數學家的工作與智慧的結晶。
4。參與軟體開發和套用的人員的數量在不斷增加,而且日趨國際化。隨著Internet的普及,軟體用戶可以很方便地與軟體開發者進行溝通,反映軟體中存在的問題,也把新的套用情況和好的程式提供給軟體的開發者。軟體的開發不再只是軟體開發者的事情,也是廣大用戶的事情。
計算機代數系統的優越性主要在於它能夠進行大規模的代數運算。通常我們用筆和紙進行代數運算只能處理符號較少的算式,當算式的符號上升到百位數後,手工計算便成為可能而不可行的事,主要原因是在做大量符號運算時,我們很容易出錯,並且缺乏足夠的耐心。當算式的符號個數上升到四位數後,手工計算便成為不可能的事,這時用計算機代數系統進行運算就可以做到準確,快捷,有效。
儘管計算機代數系統在代替人進行繁瑣的符號運算上有著無比的優越性,但是,計算機畢竟是機器,它只能執行人們給它的指令。數學軟體都有一定的局限性。首先,多數計算機代數系統對計算機硬體有較高的要求,在進行符號運算時,通常需要很大的記憶體和較長的計算時間,而精確的代數運算以時間和空間為代價的。一些人工計算的簡單問題,計算機代數系統卻做不出來。用數學軟體的第二個問題是計算結果往往很長,人們很難從結果中看到問題的要害。用計算機代數系統進行數值計算,雖然計算精度可以到任意位,但由於計算機代數系統是用軟體本身浮點運算代替硬體算術運算,所以在速度要比用Fortran語言算同樣的問題慢百倍甚至千倍。另外,雖然計算機代數系統包含大量的數學知識,但這僅僅是數學的一小部分,目前有許多數學領域計算機代數系統還未能涉及。

表示式的類別

表示式的例子包括:
多變元多項式
標準函式(三角函式、指數函式等等)
特殊函式(Γ函式、Bessel函式等等)
由各種表示式合成的函式
表示式的導函式、積分、和與積
以表示式為係數的級數
表示式構成的矩陣

符號運算

以下是幾種典型的符號運算:
表示式的簡化
對表示式求值
表示式的變形:展開、積、冪次、部份分式表法、將三角函式表為指數函式等等。
對單變元或多變元的微分。
帶條件或不帶條件的整體最佳化。
部份或完整的因式分解。
求解線性方程組或一些非線性方程式。
某類微分方程或差分方程的符號解。
求某些函式的極限值。
一些函式的定積分或不定基分,包括多變元的情形。
泰勒展開式、羅朗展開式與Puiseux展開式
某些函式的無窮級數展開式。
對某些級數求和。
矩陣運算。
數學式的顯示,通常借著TeX之類的系統達成。

其它功能

通常計算機代數系統還能進行一些數值運算:
函式的確切求值。
高精度求值,例如計算21/3到小數點後10000位。
線性代數的數值運算。
描繪二維或三維的函式圖形。
在數值運算方面,計算機代數系統的速度通常較Matlab、GNUOctave或C語言中以同等方式實作的程式慢。這是因為計算機系統幾乎總是對符號表示式運算,故不能充分利用CPU的既有指令。
許多計算機代數系統內建高階程式語言,以供使用者擴充功能,或設定個人的操作模式。

歷史

馬丁紐斯·韋爾特曼(MartinusJ.G.Veltman)是這個領域的先驅,他首先考慮了在高能物理中的套用。他在1963年設計的第一個程式叫Schoonship(荷蘭文,意指“乾淨的船”)。
最早受到歡迎的系統是Reduce、Derive與Macsyma,現在仍然可取得。Macsyma的一個GNU通用公共許可證發行的版本叫作Maxima,現在仍有維護。市場的龍頭為Maple與Mathematica,兩者被數學家、科學家及工程師們廣泛採用,此外還有MuPAD與MathCad。
另有一些系統著眼於特定的套用領域,這些系統通常在學院中被設計、發展及維護,例如交換代數系統Macaulay2或數論系統PARI/GP。

幾種計算機代數系統

Mathematica
Maple
Maxima
Meditor
MuPAD
Mathomatic
MAGMA
Xcas/GIAC
Yacas
Mate

相關詞條

相關搜尋

熱門詞條

聯絡我們