跳至內容

計算機代數系統

出自计算器百科
於 2016年3月4日 (五) 17:51 由 春上冰月對話 | 貢獻 所作的修訂 (根据晴明对本词条提出的意见进行的修改)

計算機代數系統(Computer Algebra System, 簡稱 CAS),計算機代數(Computer Algebra)在很多時候又被廣義地理解為「符號計算」(Symbolic Computation), 成為與所謂「數值計算」(Numerical Computation)相對的概念。「符號」的運算在這裏代替了「數」的運算。符號可以代表整數, 有理數, 實數和複數, 也可以代表多項式, 函數, 還可以代表數學結構如集合, 群, 環, 代數等等。我們在學習和研究中用筆和紙進行的數學運算多為符號運算。

代數功能

計算機代數系統能計算代數式,與傳統的數值運算不同的是,計算機代數系統把一個字符串(比如 x)視作一個「符號」而不是一個「值」。對於計算機來說,下列的算式都屬於代數運算的範疇,都需要計算機代數系統才能計算:

代數式的化簡

最簡單的計算機代數系統示例就是代數式的化簡,好比是數值運算里的 1+1=2

a+a=2a
x2=|x|

代數式的微積分、極限、三角函數、指數函數

sin(ln(x))dx=xsin(ln(x))2xcos(ln(x))2
dydxxx=xx(ln(x)+1)
limx0xsin(x)=1
+1cos(x)x2dx=π

代數式的求和與求積

k=1n1k(k+1)=1n

多項式的因式分解和展開

factor(x515x4+85x3225x2+274x120)=(x1)(x2)(x3)(x4)(x5)
expand((x+1)(x+2)(x+3)(x+4)(x+5))=x5+15x4+85x3+225x2+274x+120

使用特徵方程法求解數列通項公式

rSolve(an+2=an+1+an,an,[a1=1,a2=1])=55(1+52)n55(152)n

矩陣的超越函數

(1463)=(27+33i52723i53733i537+23i5)

其他功能

有些算式看起來屬於數值運算的範疇,但是它們也需要計算機代數系統才能計算,或者才能得到正確結果。

高精度求值

有時所需要的精度已經遠遠超出了二進制直接處理所能容納的精度,必須把數值作為「符號」看待時,也屬於計算機代數系統的範疇

228=115792089237316195423570985008687907853269984665640564039457584007913129639936

精確數值運算

有時候需要把一些類似於 πe 的常數代入算式中求值,並將其視作一個特殊的「符號」而不是它的值,或者希望輸出時可以獲取帶有這些常數的結果,如 3π2 時,也屬於計算機代數系統的範疇。

sin(2π)=0
sin1(1)=π2

需要注意的是,很多函數計算器,比如 CASIO fx-82CN XCASIO fx-82ESTI-36X等,都支持像上面這樣計算算式,但是計算的實質是近似看待,不屬於計算機代數系統的範疇。例如,這些計算器在計算的時候,只能顯示帶一重根號或帶有 π 的結果,而不能顯示帶多重根號的結果:

sin(π4)=22
sin1(222)=18π
sin(π8)=0.3826834324

另一個表現就是對於某些十分近似的式子可能會產生錯誤的結果:[1]

例如,在 CASIO 的 ES 或者 ClassWiz 系列函數機中,計算下面這個式子,會得到一個含有 π 的答案:

96663=3465026231680π

然而這個答案是錯誤的,或者說是不精確的,經過計算可得:

966633465026231680π5.21540641785×108

大數求和求積

如果數值求和求積並不會以傳統方式進行循環,而是先計算代數結果再代入計算以提高速度,這也屬於計算機代數系統的範疇,例如,在TI-Nspire CAS計算器中,默認設置的情況下:

這個式子將會被視作數值運算並以數值運算方式進行:x=110000x=50005000
這個式子將會被視作代數運算並使用計算機代數系統:x=1100000000x=5000000050000000

擁有計算機代數系統的計算器

請勿大量羅列
此處僅列舉同類事物的典型事例。您可以繼續添加,但是添加的事例必須具有代表性


此處僅列舉自帶計算機代數系統的計算器,通過安裝軟件(如 CASIO fx-CG20 可以通過安裝 Eigenmath 來實現計算機代數系統)則不會被列入此列表中。

卡西歐

德州儀器

惠普

請參考分類:擁有計算機代數系統的計算器以獲取更多相關信息。

支持計算機代數系統的計算軟件

開源軟件

商業軟件

參考