CAS

計算機代數系統

CAS是計算機代數系統,英文全稱是: Computer Algebra System,讀音是C A S(英文字母發音),源自英文全稱(Computer Algebra System)的首字母,是進行符號運算的軟體。這種系統的要件是數學表示式的符號運算。示例:mathics是一個開源、免費、通用、跨平台的計算機代數系統(CAS),語法、函數和Mathematica幾乎 完全一致。它使用Python開發,依賴於Sympy(python的符號計算庫)、mpath、gmpy等,並且可以藉助Sagemath獲得更強的能力。類似於Sage,mathics也有在線版本,可以通過瀏覽器進行各種運算。

表示式的類型


表示式的例子包括:
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,1931年6月27日-2021年1月4日),荷蘭理論物理學家,密歇根大學退休教授。是這個領域的先驅,他首先考慮了在高能物理中的應用。他在1963年設計的第一個程序叫Schoonship(荷蘭文,意指“乾淨的船”)。
最早受到歡迎的系統是Reduce、Derive與Macsyma,現在仍然可取得。Macsyma的一個GNU通用公共許可證發布的版本叫作Maxima,現在仍有維護。市場的龍頭為Maple與Mathematica,兩者被數學家、科學家及工程師們廣泛採用,此外還有MuPAD與MathCad。
另有一些系統著眼於特定的應用領域,這些系統通常在學院中被設計、發展及維護,例如交換代數系統Macaulay 2或數論系統PARI/GP。
人物經歷
1955年,他在阿姆斯特丹的范德華實驗室找到了一份助理工作,主要任務是管理圖書館。不過,他對范德華實驗室的主要研究方向統計力學從未感到絲毫興趣。
1959年,服完兩年兵役以的維爾特曼“年事已高”(27歲),但還是被好心的萊昂·范霍夫(Leon Van Hove)接收為了博士生,開始真正的理論研究。他還是想做當時歐洲鮮少有人問津的粒子物理學。
1959年的春天還有一段歷史的戲劇性插曲,他去了愛丁堡的一所學校,遇到了當時還是學生的格拉肖。
1960年,范霍夫出任歐洲核子中心理論部主任,維爾特曼追隨他去了瑞士日內瓦。在那裡,他完成了關於不穩定粒子的研究論文,老師帶著維爾特曼穿著燕尾服、打著白領結參加了博士畢業慶典。
在歐洲核子中心,維爾特曼的另一關鍵經歷是近距離接觸了中微子實驗。後來,他一直深信實驗對於物理學進步的重要性。
1966年,維爾特曼回到烏德勒支,繼任范霍夫的理論物理教授職位,從零開始建立粒子物理研究團隊。
1968年4月,維爾特曼迎來了學術生涯的轉折點。當時,他正在洛克菲勒大學進行為期一個月的訪問。在那所安靜的校園裡,維爾特曼開啟了後來贏得諾獎的發現之旅。
他在烏德勒支培養出了包括霍夫特在內的幾個優秀學生,團隊的名聲逐漸響亮。當然,維爾特曼有很多一些學生後來是在別的領域做出了成績。這令他相信,理論物理學是一門很好的學科,它的科學方法在現代社會的許多崗位上都有用。
然而,在合作解決了電弱相互作用模型的重正化后,維爾特曼卻與風頭正盛的學生霍夫特日漸疏遠。1980年,維爾特曼受邀前往密歇根大學休假一年,最終因為種種原因選擇了留居美國。
此後,他曾在費米國家實驗室、斯坦福直線加速器中心、布魯克·海文國家實驗室擔任職位。
在退休后,他還是帶著妻子回到了1981年離開的荷蘭比爾托文鎮,與老朋友和親人們團聚。不過,他們的孩子們留在了美國。

系統


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語言算同樣的問題慢百倍甚至千倍。另外,雖然計算機代數系統包含大量的數學知識,但這僅僅是數學的一小部分,目前有許多數學領域計算機代數系統還未能涉及.