草稿:計算機代數系統
本草稿目前為「計算機代數系統」的草稿。 如有任何疑問,請至討論頁發起討論。 |
計算機代數系統( 英語:computer algebra system,縮寫作:CAS ) 或符號代數系統( symbolic algebra system,縮寫作SAS ) 是能夠以類似於數學家和科學家傳統手動計算的方式操作數學表達式的數學軟體。這種系統的要件是數學表達式的符號運算。 20世紀下半葉計算機代數系統的發展是「計算機代數」或「符號計算」學科的一部分,它刺激了多項式等數學對象的算法工作。
計算機代數系統按用途可分為兩大類別:專用的、通用的。
專用的計算機代數系統致力於數學的特定部分,例如數論、群論,亦或是初等數學的教學。
通用的計算機代數系統致力於任何需要操作數學表達式的科學領域。為了發揮其作用,通用計算機代數系統必須包含各種功能,例如:
- 允許用戶輸入和顯示數學公式的用戶界面,通常通過鍵盤、菜單選擇、滑鼠或觸筆。
- 一個程式語言和與之配套的解釋器(計算結果通常具有不可預測的形式和大小,因此經常需要用戶通過其干預),
- 簡化器,一個用於簡化數學公式的重寫系統,
- 內存管理器,包括垃圾收集器,用於處理可能在計算過程中出現的龐大中間數據。
- 高精度計算算法,用於處理可能出現的巨大整數。
- 大型的數學算法庫、特殊函數庫。
數學算法庫、特殊函數庫不僅要滿足用戶的需求,還要滿足簡化器的需求。例如,多項式最大公約數的計算被系統地用於簡化涉及分數的表達式。
這些繁雜的功能要求解釋了通用計算機代數系統的數量為何如此之少。一些重要的系統包括Axiom_計算機代數系統 、 Maxima 、 MAGMA 、 Maple 、 Mathematica和SageMath 。
發展歷史
[編輯]計算機代數系統出現於 20 世紀 60 年代,並源自兩個截然不同的領域——理論物理學家的要求和人工智慧的研究。
第一個領域的一個典型例子是後來的諾貝爾物理學獎獲得者馬丁紐斯·韋爾特曼(Martinus J. G. Veltman)在1963年設計的用於高能物理的符號數學程序,名為Schoonschip(荷蘭語,意指「乾淨的船」)。另一個早期的系統是FORMAC 。
在第二個人工智慧領域中, Carl Engelman使用Lisp作為編程基礎,於 1964 年在MITRE的人工智慧研究所中創建了MATHLAB 。後來 MATHLAB 可供大學中運行 TOPS-10 或 TENEX 的 PDP-6 和 PDP-10 系統上的用戶使用。如今,它仍然可以在 PDP-10 的SIMH仿真環境中運行。 注意,MATHLAB("mathematical laboratory")不是MATLAB("matrix laboratory"),後者是新墨西哥大學在 15 年後建立的數值計算系統。
1987 年,惠普推出了第一台帶有 CAS 的手持計算器——HP-28系列。首次在計算器中實現了整理代數表達式,求導,有限符號積分,泰勒級數構建的功能,以及一個代數方程的求解器。[1] 1999年,為HP 48系列自主研發的Erable CAS 正式成為新興的HP 49/50系列固件中的一個集成部分,並在一年後也集成到了HP 40系列中,而在2013年,HP Prime則採用了Xcas系統。
1995年,德州儀器發布了[[TI-92|TI-92]]計算器,該計算器搭載了基於[[TI-92|Derive]]軟體開發的CAS;[[TI-92|TI-Nspire]]於 2007 年取代了 Derive。 1998 年首次發布的TI-89 系列也包含 CAS。
Casio在1999年推出了他們的第一款帶有CAS的計算器———CFX-9970G。並在 1999-2003 年推出了替代CFX-9970G的Algebra FX 系列,直到現在的ClassPad 系列。[來源請求]
第一個流行的計算機代數系統是muMATH 、 Reduce 、 Derive (基於 muMATH)和Macsyma ; Macsyma 的一個流行的Copyleft版本是Maxima,目前正在積極維護。 Reduce於 2008 年成為自由軟體[2]。截至今日[何時?],最流行的商業系統是Mathematica [3]和Maple ,它們通常被研究數學家、科學家和工程師使用。免費提供的替代方案包括SageMath (它可以充當其他幾個免費和非自由 CAS 的前端)。其他重要的系統包括Axiom 、 Maxima 、 Magma和SageMath 。
2000 年代初期,向基於 Web 的應用程式的轉變的趨勢促使了WolframAlpha的發布,它由一個 在線搜尋引擎 和 一個包含Mathematica的功能的CAS 組成。 [4]
最近,計算機代數系統開始使用人工神經網絡來實現,但截至 2020 年,它們尚未商用[5]。
符號運算(需改進)
[編輯]以下是幾種典型的符號運算:
- 表達式的簡化:簡化為較小的表達式或某種標準形式,包括帶假設的自動簡化和帶約束的簡化
- 對表達式求值:用符號或數值替換某些表達式
- 表達式的變換:乘積和冪展開、部分和全部因式分解、重寫為部分分數、約束滿足、將三角函數變換為指數函數、變換邏輯表達式等。
- 部分微分和全微分
- 一些不定積分和定積分(參見符號積分),包括多維積分
- 符號約束和無約束全局優化
- 不同領域的線性和一些非線性方程的解
- 一些微分方程和差分方程的解
- 極限計算
- 積分變換
- 展開、求和、乘積等系列運算
- 矩陣運算包括乘積、逆矩陣等。
- 統計計算
- 定理證明和驗證在實驗數學領域非常有用
- 生成優化的代碼
其它功能
[編輯]很多CAS還包括:
- 一種程式語言,允許用戶實現自己的算法,將自定義的數學方法和操作集成到系統中。
- 任意精度數值運算
- 精確整數算術和數論功能
- 二維形式的數學表達式編輯
- 畫2D、3D函數圖,並對其進行動畫處理
- 繪製圖表和圖示
- 用於將其連結到外部程序(例如資料庫)或在程式語言中使用計算機代數系統的 API
- 字符串操作,例如匹配和搜索
- 用於物理、生物信息學、計算化學等應用數學的附加組件以及物理計算包[來源請求]
- 微分方程求解器[6] [7] [8] [9]
其中一些CAS包括:
一些計算機代數系統專注於特定學科領域;這些系統通常由學術界開發,並且是免費的。與數值系統相比,它們在數值運算方面可能效率較低。
表達式的類別
[編輯]CAS 操作的表達式通常包括:
支持的數字域通常包括實數的浮點表示、(無限大小的)整數、(浮點表示的)複數、實數的區間表示、有理數(精確表示)和代數。
教育方面
[編輯]近年來,有許多倡導者呼籲在中小學課堂中增加計算機代數系統的使用。這種倡導的主要原因是計算機代數系統比基於紙筆或手持計算器的數學更能代表現實世界的數學。 [10]一些教育委員會支持增加數學課堂中計算機的使用。它甚至被納入一些地區的課程中。 [11]
計算機代數系統已廣泛應用於高等教育。 [12] [13]許多大學要麼提供有關開發其用途的特定課程,要麼隱含地期望學生在課程作業中使用它們。開發計算機代數系統的公司已努力提高其在大學和學院課程中的普及率。 [14] [15]
[原文說的是美國的測試,這裡可以請了解相關知識的人改成中國的考試]配備 CAS 的計算器在ACT 、 PLAN等考試中[16]不允許使用,儘管在所有允許使用計算器的美國大學理事會考試中可能是允許的,包括SAT、一些SAT科目考試以及AP微積分、化學、物理和統計學考試中可能允許使用。
計算機代數系統中使用的數學(或許需要改進)
[編輯]- Knuth-Bendix 完成算法
- 求根算法
- 符號整合算法,例如Risch 算法或Risch-Norman 算法
- Wilf Zeilberger pair 算法,例如高斯珀算法
- 計算極限的算法,例如格倫茨算法
- 通過有限域上的多項式因式分解, 由Berlekamp 算法或Cantor–Zassenhaus 算法實現。
- 最大公約數算法,例如歐幾里得算法
- 高斯消去法
- Gröbner基,例如Buchberger算法;這是歐幾里德算法和高斯消去法的推廣。
- 帕德近似
- Schwartz–Zippel引理和多項式恆等式測試
- 中國剩餘定理
- 丟番圖方程
- 通過例如對實數進行量詞消除Tarski 方法/圓柱代數分解
- 朗道算法(嵌套根式算法)
- 初等函數和特殊函數的導數。 (例如請參閱不完全伽瑪函數的導數。 )
- 圓柱代數分解
參見
[編輯]參考
[編輯]- ^ Nelson, Richard. Hewlett-Packard Calculator Firsts. Hewlett-Packard. (原始內容存檔於2010-07-03).
- ^ REDUCE Computer Algebra System at SourceForge. reduce-algebra.sourceforge.net. [2015-09-28].
- ^ Interview with Gaston Gonnet, co-creator of Maple 網際網路檔案館的存檔,存檔日期2007-12-29., SIAM History of Numerical Analysis and Computing, March 16, 2005.
- ^ Bhattacharya, Jyotirmoy. Wolfram|Alpha: a free online computer algebra system. The Hindu. 2022-05-12 [2023-04-26]. ISSN 0971-751X (印度英語).
- ^ Ornes, Stephen. Symbolic Mathematics Finally Yields to Neural Networks. Quanta Magazine. [2020-11-04] (英語).
- ^ dsolve - Maple Programming Help. www.maplesoft.com. [2020-05-09].
- ^ DSolve - Wolfram Language Documentation. www.wolfram.com. [2020-06-28].
- ^ Basic Algebra and Calculus — Sage Tutorial v9.0. doc.sagemath.org. [2020-05-09].
- ^ Symbolic algebra and Mathematics with Xcas (PDF).
- ^ Teaching kids real math with computers. Ted.com. [12 August 2017].
- ^ Mathematics - Manitoba Education. Edu.gov.mb.ca. [12 August 2017].
- ^ Mathematica for Faculty, Staff, and Students : Information Technology - Northwestern University. It.northwestern.edu. [12 August 2017].
- ^ Mathematica for Students - Columbia University Information Technology. cuit.columbia.edu. [12 August 2017].
- ^ Mathematica for Higher Education: Uses for University & College Courses. Wolfram.com. [12 August 2017].
- ^ MathWorks - Academia - MATLAB & Simulink. Mathworks.com. [12 August 2017].
- ^ ACT's CAAP Tests: Use of Calculators on the CAAP Mathematics Test 網際網路檔案館的存檔,存檔日期August 31, 2009,.
外部連結
[編輯]- Richard J. Fateman. Essays in algebraic simplification. Technical report MIT-LCS-TR-095, 1972.
- Curriculum and Assessment in an Age of Computer Algebra Systems - From the教育資源信息中心 Clearinghouse for Science, Mathematics, and Environmental Education, Columbus, Ohio.