UNIX 工作站上的數學工具

UNIX 工作站上的數學工具

數學是科學之王

developerWorks
文檔選項
將此頁作爲電子郵件發送

將此頁作爲電子郵件發送


拓展 Tomcat 應用

下載 IBM 開源 J2EE 應用服務器 WAS CE 新版本 V1.1


級別: 中級

William B. Zimmerly ([email protected]), 自由撰稿人和知識工程師, Author

2007 年 5 月 08 日

UNIX® 有許多工具可供使用,它們可以滿足您的數學啓蒙要求。其中有些工具是內置的;大多數則是下載保存的。本文將向您展示 UNIX 工作站上通往數學殿堂之路。

談到數學,並不缺乏相關的計算機軟件包。數學是程序員和分析人員的流行主題,從而導致了大量不同的工具可供選擇。

數學是科學之王。數學工作站的商業使用羣體非常龐大:從基礎工程到設計創意,從基因治療到天體導航,數學統治着整個世界。幫助人們解決他們所選領域的數學問題的計算機程序並不缺乏。本文的剩餘部分將描述幾個商業和開放源代碼系統,它們在您所從事的領域可能證明是有價值的。所描述的所有系統都有專用於它們的網頁,幷包括在本文的參考資料部分。

數字計算器

UNIX 工作站中存在的最常用數學工具以計算器和更高級的電子表格程序(如 GNU Calc)的形式出現。算術規則非常簡單,所有這些工具都忠實地遵守它們。幾乎每個全功能的窗口管理工具包都至少突出體現了一個計算器,有時還有多個版本的計算器。

GNU 項目還提供了可供下載的計算工具。其中包括 GNU Calc、GNU Plot、ATLAS、Choose 和 4,000 多個其他面向數學的程序。請參見參考資料部分以獲得指向完整列表的鏈接。

符號數學

正如您在學校中級課程中所學習到的,數學所涉及的遠不只是對數字的簡單運算。數字佔位符的符號表示形式——諸如 x、y 和 z 等變量、笛卡兒座標、因素分解原理以及積分和微分世界——是一個豐富和多樣性領域的一部分,該領域要求提供同樣豐富和多樣性的計算機資源。爲這些任務而設計的程序領域的最常用名稱是“計算機代數系統”(Computer Algebraic Systems,CAS)。同時存在商業和開放源代碼 CAS 程序可供使用,下面將描述其中一些最常用程序。

但是,能夠操作符號在大多數情況下還不足夠。與原始座標點值清單所能提供的信息相比,圖形可以告訴我們更多信息。可用於計算機代數的大多數系統還突出體現了某種繪圖機制,允許您可視化所標繪的數據。

教育資源

可以使用許多計算機程序來幫助您解決數字和符號數學問題,但是還有些程序可以幫助您學習數學。MetaMath 系列程序就是一個理想的起點(請參見參考資料部分)。對於初學者或通常認爲自己無意從事該領域的讀者,本文描述的數學和程序也是引人入勝的。只需下載和試驗其中一些程序就可能會激發您成爲某方面的專家,從而比任何計算機遊戲都更能充實您的生活。

商業軟件包

下面是一些最常用商業 CAS 系統的簡要概述。如果您對其中任何系統感興趣,可以通過瀏覽它們的網站來找到更多信息,參考資料部分列出了所有這些網站。

Derive。Software Warehouse 是創建旨在運行於早期工作站計算機上的數學軟件的最早先行者之一。該公司設立於 1979,當時 PC 革命剛起步,計算機代數系統還僅在使用分時終端的大型計算機系統上可用,該公司設計了一款名爲 muMATH 的程序,以便 PC 用戶能夠超越簡單的計算器,從而在有限的小型計算機硬件上處理符號數學問題。後來 muMATH 系統停止了使用,並被遠遠更高級的 Derive 系統所取代。Derive 是使用 Lisp 語言編寫的,Lisp 是一種公共編程語言,尤其適合基於規則的處理,該處理是將一個抽象數學表達式變換爲另一個表達式所必需的。

Fermat。這個專有共享軟件計算機代數系統是爲紀念已故最著名數學家之一 Pierre de Fermat 而命名的。它在各種各樣的計算機系統上運行,尤其擅長於涉及任意長度整數和小數、圖、矩陣和多項式代數的算術。Fermat 運行得非常快。據該公司的廣告宣稱,如果您需要計算 Q 上的 400 x 400 矩陣的特徵多項式,那麼您就需要 Fermat。

Maple。 Maple 數學軟件包由 Waterloo Maple Inc. (Maplesoft) 開發並銷售,最初由加拿大安大略省沃特盧的沃特盧大學的 Symbolic Computation Group 於 1981 年創建。Maple 是一款給人印象深刻的軟件包,尤其擅長於三維繪圖和以課本形式顯示數學公式。它在一個動態工具中組合了界面和編程語言,可同時用於數字和符號問題的解答。許多大學已將 Maple 作爲教授數學概念的標準工具;該公司提供此軟件的學生版和專業版。

MathCAD。 PTC 是一家工程設施公司,於 2006 年收購了 MathCAD 的股權。MathCAD 在簡單性方面與 Maple 類似,具有允許工程師在屏幕上輸入和顯示各種公式以及圖形和文本的界面。MathCAD 組合了一個龐大的功能庫,包括微積分、拉普拉斯變換、貝塞爾函數、統計和財務函數。

Mathematica。 Stephen Wolfram 的公司 Wolfram Research 於 20 世紀 80 年代晚期開發了 Mathematica,並重點強調了該工具的編程方面。它提供了過程式和函數式編程的靈活組合,並引入了自動重新編寫公式的非確定性方法。它是一個強大的軟件包,帶有一個大型的多樣性功能庫,並提供瞭解決問題的獨特多範例方法。

Reduce。 Reduce 是另一個通用計算機代數系統,是由許多科學家以協作方式開發完成的。該系統於 20 世紀 60 年代由 Anthony Hearn 創建。Reduce 現已成爲科學界許多人的最愛。它以收取成本回收費用的方式進行分發,並且分發版中通常包括源代碼。

開放源代碼軟件包

本部分研究開放源代碼的世界。下面是一些最常用的開放源代碼 CAS 系統的簡要概述,這些系統的源代碼在常用開放源代碼許可證之一下授予許可。如果您對其中任何系統感興趣,可以通過瀏覽它們的網站來找到更多信息,參考資料部分列出了所有這些網站。

Axiom。這個稱爲 Axiom 的開放源代碼計算機代數系統是在修改後的 Berkeley Software Distribution (BSD) 許可證下發布的,它對於探索不同的數學算法非常有用。其突出特性是強類型的數學對象層次結構和對對象進行分組和控制的常用編程數據結構。Axiom 是使用自定義 A# 編程語言來編寫的,對於有意探索算法設計的人來說是值得的工具。

CoCoA。 Computations in Commutative Algebra (CoCoA) 是另一個免費計算機代數系統,用於處理超大型整數、有理數和多項式。它爲自定義 C++ 程序提供了有用的數學功能庫。

Dcas。計算機代數領域幾乎爲數學研究的每個方面提供了豐富多彩的方法。存在許多在程序中表示數學對象的方法,而 Martin Johansen 的 Dcas 系統則證明了這些方法可以如何的千差萬別。Dcas 突出體現了一種使用標識作爲規則來操作代數表達式的方法。Dcas 非常值得一試;您可能會發現它是處理您所在領域問題的理想方法。

DoCon。 稱作 Haskell 的函數式編程語言展示了一個用於符號數學的程序,名爲 DoCon。按照該公司網站(請參見參考資料部分)上的文檔,DoCon 實現了線性代數、多項式最大公約數、因素分解、Grobner 基,並支持域上的結構(constructions on domains)——分數、多項式、留數環,等等。它是開放源代碼的,可能就是用於您正打算要編寫的應用程序的恰當工具。

Eigenmath。Eigenmath 是由 George 使用 C 語言來編寫的,是一個簡單易用的計算機代數系統。由於有源代碼可用,它成了剛開始探索計算機代數系統的學生的有用工具。

GiNaC。 GiNaC 與大多數其他計算機代數系統不同,它沒有提供用於輸入表達式的圖形用戶界面 (GUI),而是選擇讓用戶以本機 C++(其實現語言)來輸入表達式。它使用運算符重載這種本機 C++ 面向對象技術來實現代數語法。在這個由許多陌生名稱所主宰的領域,它還具有一個比較陌生的名稱!

Jscience。Jscience 軟件包是一個強大的基於 Java™ 的物理和數學函數庫,它通過提供單個用於所有開發的體系結構,旨在幫助跨不同科學領域構建協同作用。至少可以這樣說,這是個非常崇高的目標,但是也不排除該公司能夠實現該目標。

Macaulay。Macaulay 計算機代數系統對於多項式計算非常有用,並重點強調 Grobner 基計算。它旨在解決具有簡單語法並且已描述爲代數機器語言 (algebraic machine language) 的問題。

Magma. Magma 在成本回收許可證下進行分發,是一個旨在解決代數問題的高性能系統。它突出體現了用於羣論的功能以及羣數據庫、用於整數和多項式算術的漸近快速算法和幾個用於高級運算的前沿庫。

Mathomatic。此程序沒有內置的編程功能,旨在用作簡單的符號數學計算器。它可以在任何系統上使用 C 編譯器、標準 C 庫和 UNIX make 實用程序進行編譯。

Maxima。與大多數計算機代數系統一樣,Maxima 是使用 Lisp 語言編寫的。Maxima 基於商業軟件包 Macsyma,幷包括一種完整的 ALGOL 風格的編程語言,對於教授計算機代數方面的編程概念最有用。它提供了任意精度的算術,使得整數和有理數的大小僅受到系統可用內存的限制。

PARI/GP。PARI 是快速運行的符號函數 C 語言庫,用於因素分解、代數數論、橢圓曲線、矩陣和超越函數。GP 是交互式的 Shell,用於提供對 PARI 函數的訪問。通過使用 gp2c 編譯器,可以爲問題域創建快速運行的程序。

SAGE。Software for Algebra and Geometry Experimentation (SAGE) 是使用 Python 語言編寫的,並使用交互式的 Python Shell 作爲其用戶界面。SAGE 的獨特之處在於,它能夠用作其他各種計算機代數系統的集成器,從而允許用戶利用不同軟件包的各自強項。

SINGULAR。對於交換代數、代數幾何和奇點理論,SINGULAR 計算機代數系統在軟件包內核以及共享庫中提供了大量的算法。它還包括詳盡的文檔。SINGULAR 是個值得一試的系統,如果您對奇點理論感興趣則尤其如此。

Yacas。Yet Another Computer Algebra System (Yacas) 具有漂亮的用戶界面和開放源代碼軟件的所有其他強項。該系統的輸入可以是 ASCII 或 OpenMath;該程序還具有批處理模式。

結束語

數學是科學之王,幫助解決您在特定領域所面對的數學問題的工具並不缺乏。無論您是處理保險單定價的保險精算師,還是確定飛向冥王星的宇宙飛船最優路線的天體導航員,都有相關程序可幫助回答您的問題。



參考資料

學習
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章