跳至內容

計算機代數系統

出自计算器百科
於 2016年2月20日 (六) 15:23 由 春上冰月對話 | 貢獻 所作的修訂
請注意,本條目正在施工中
  • 本條目的編輯將持續最多兩小時。在此期間請不要編輯這個條目,以免發生編輯衝突。
  • 本條目的最後編輯時間距現在為3634日14時17分50秒(刷新)。如果這個時間已逾兩小時,你可以自行移除此模板
  • 如果你對此有什麼疑問,可以與本條目的最後編輯者春上冰月討論 | 貢獻 | 封禁)取得聯繫。
  • 你也可以在本頁的歷史中查看所有的編輯版本。如果你認為有必要,可以到相應版本編輯者的討論頁留言。

計算機代數系統(Computer Algebra System, 簡稱 CAS),是以字符串為運算單位的計算軟件,可以進行數學表達式的符號運算。

代數功能

計算機代數系統能計算代數式,與傳統的數值運算不同的是,計算機代數系統把一個字符串(比如 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

其他功能

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

高精度求值

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

228=115792089237316195423570985008687907853269984665640564039457584007913129639936

精確數值運算

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

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

需要注意的是,很多函數計算器,比如 CASIO fx-82CN XTI-36X等,都支持像上面這樣計算算式,但是計算的實質是近似看待,不屬於計算機代數系統的範疇。這種方法有一個 BUG 就是對於某些十分近似的式子產生錯誤的結果:

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

96663=3465026231680π

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

966633465026231680π5.21540641785×108

大數求和求積

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

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

反函數的抵消

如果數值運算之前,互為反函數的函數會抵消,從而得出精確解,這也屬於計算機代數系統的範疇。

sin1(cos1(tan1(tan(cos(sin(9))))))=9

參考文獻

  1. 給函數機們出道數學題 - cnCalc論壇