https://www.maplesoft.com/products/maple/php
Maple高級應用和經典實例: http://vdisk.weibo.com/s/dbLrQxb6KthZAhtml
某種程度上這幾個軟件都用過。可是,MathCAD貌似我只用過幾天,而Maple用過幾個月吧,這都是約5年前的事情。如今主要用MATLAB和Mathematica。因此如下我討論一下後二者,簡稱ML和MM吧。前端
首先,ML是一種數值計算程序,而MM(及Maple等)是一種符號計算程序。這樣來講,兩類程序恐怕可比性並不很高。
而後,ML的語言是結構化的、解釋性的,MM的語言有點像lisp(看了MM全書之後感觸挺深)。這應該是兩者的本質區別。相應的優勢、缺點,也幾乎就是結構化語言和函數型語言的優勢、缺點。順帶一提,ML語言爲解釋性的,其計算效率並不高。
最後,從應用領域的角度看,兩者均可謂一應俱全。控制仿真、圖像處理、信號分析等等都是ML的強項。它的優點在於工具包很是全面(這彌補了計算效率上的劣勢)。MM的我研究得不是很深,但我大略掃過它的文檔,感受功能的數量不亞於ML(對了,MM的數據可視化強於ML;我作過MCM,當時特地用MM顯示數據)。java
我如今用ML,主要作些數據處理;用MM,主要推些公式。python
要補充的是,ML也帶有符號計算的功能,可是借用的MuPAD內核(之前貌似是Maple的);而MM也能做數值計算,並且能計算到任意精確的程度。但我認爲這些都不是二者的核心功能。參考linux的觀點,各個軟件將某一方面的能力提高到極致,最後組合起來,能夠很是強大。據我的的使用來講,我用這些軟件都差很少有十來年,有些七八年的樣子.
請相信專業的,頂尖的,本身的深刻體會的.本身的眼光最重要,用事實說話,體會其中的精華,而不是表面
精華要從抽象層面和使用層面,這是軟件生存的本質linux
抽象到極致,實踐到極致,帶點偏見,就是正見web
誰用matlab不是衝着工具箱的話,他只用了1/10
誰用Mathematica和Maple不是用符號計算,那也只用了1/3
誰說Matlab也有符號計算的話,不知道他的符號引擎不是本身的,是第二流的引擎,請繞開算法
工具沒有最好,有時候還有審美方面的需求,好比我就一直糾結在Maple和Mathematica之間
以致於二者都會,事實上我最強的是Matlab,使用最久,到如今估計差很少十年了數據庫
這些要看我的,工業界,科研界的評判
我看上面的解說,都是誰誰怎麼樣,您本身呢,可是體會有些地方感受不怎麼對,如下算做補充:express
首先,Maple和Mathematica是以符號計算著稱,可是近年來Maple和Mathematica在數值計算上也有長足的發展,整體來講Matlab>Mathematica>Maple,差距在縮小;
就符號計算自己來講,若是作過測試的話,Maple>Mathematica>Matlab(如今matlab用mupad的核心,之前用的maple的),因此嚴格來講Matlab是沒有本身的符號計算的.
而從編程範式方面,Mathematica支持的編程範式是最多,什麼函數式,子過程式,遞歸,面向對象,還有不少.甚至很是完美的支持 List等,語法規則比較嚴格
Maple語法規則太靈活,入門快,可是要成爲高手就有點玄乎,相比mathematica要成爲高手容易一些,單從語法上說.
2. 從幫助文檔上說,Maple不太規範.
Mathematica的方式我最喜歡
Matlab還不錯,如今趨向於和Mathematica一樣的寫做方式寫幫助了
3.從公衆交換代碼方面,Matlab的file exchange最強大,東西最多
Mathematica的alpha平臺以及其餘也不錯
Maple在這塊比較弱了
4.從使用上來講,Matlab最強大的是工具箱,他的控制工具箱是一絕,世界上絕無僅有的東西
而其餘工具箱不少也達到top1,2,3的樣子,並且新技術融入很快,當年的小波,小波包,信號處理方面
如今的代碼生成,代碼優化方面,直接生成硬件代碼
和硬件代碼的半硬件調試基本上也是無人能敵了
Mathematica在國外,尤爲美國使用者不少
5.數學的頂尖工具箱方面,能夠推薦一下
Maple的張量工具箱等,那是高深啊,還有其餘一些Mathematica比不上的
有不少ODE,Mathematica解不出來,Maple能夠的
Mathematica的差分方程我是很喜歡的
Mathematica在special function的幫助,分類的幫助,說總共有多少類,多少個公式,一一列出,我淚崩,世界上沒有比這更好的了.
6.可是Mathematica的語法真心喜歡,若是你對functional paradigm,list,rules這些感興趣,你會發現,這真是NB
7.在公衆貢獻放方面
Mathematica貢獻了 wolfram function , math world,以及demo等
Maple軟件自己帶有物理以及數學的不少知識
總的來講:
Matlab適合工程界,尤爲是工具箱,快速代碼,還有和第三方軟件的不少集成,好比優化工具箱
其中最爲明顯的第三方就是comsol
Mathematica語法優秀,優秀到幾乎帶有全部的編程範式
Maple符號計算最強,至少在個人測試下是如此,也出了仿真的Maplesim
三個我都用.惋惜我沒米,買不起
補充:
如今你基本上不用考慮效率方面的問題了
隨着硬件的進步,算法的進步
並行支持,分佈式計算支持,多核支持,甚至GPU的深度支持
計算速度慢慢退居次要了
可視化編程方面,Maple和Mathematica都有大大的進步,已經到了智能判斷不少東西的程度了
推測你的意圖
Matlab根據你的鼠標操做生成代碼,也是太厲害了
因此易用性,三者差距在縮小
有人說Matlab的圖和編碼是分開的,可是他有Notebook模式,不少人沒用過
Mathematica有cdf,天然編程方式
Maple和Mathematica基本上差很少了
補充:ref
首先必定要看features,得讀十來遍吧
Wolfram Research's Product Line of Technical Software, Technologies, and Services
What is Maple: Product Features
Maple Features
而後他們兩家本身互掐,注意Matlab不在掐之列,由於他靠工業工具箱,另外兩家根本無法跟他比
Similarities between Mathematica & Maple Are Only Skin Deep
Compare Mathematica to Maple: Features Make the Difference
Why Mathematica
Why Mathematica? Compare Mathematica to Other Technical Computing Tools
Analysis of Wolfram Research's Comparison of Mathematica® and Maple
Analysis of Wolfram Research's Comparison of Mathematica速 and Maple- Maplesoft
從我之前早期的瀏覽歷史,Mathematica先掐的Maple
先說個人觀點,再給一個比較權威的結論。
我用過Matlab和Mathematica,我以爲Mathematica的表達能力要更強一些,而且能夠把公式文檔和計算過程都很優雅地表達在一個notebook裏面,說白了就是能夠圖文並茂地表達一個複雜的過程。mathematica做爲寫一個算法的快速原型工具,如今能夠很方便地實現任意複雜的算法,也容易生成數據去檢驗。國內講mathematica的書比較少,大部分是關於數學實驗的,專題性質的很少。國外有一些講得比較深刻的,例如wolfrom寫的《mathematica全書》,讀這些書不只能讓你熟練使用 mathematica,更多地是拓展你在計算機科學的視野。
Matlab的工具箱很是強大,搶佔了大部分理工科的陣地,書也不少,能夠說是全部數學軟件中最多的了吧,用戶羣也是最大的,處處均可以見到各種論壇。可是目前你們都是把Matlab做爲一個應用的工具,講的不夠深刻,深刻的是那些背後的數學原理。如今幾乎理工科各個類別的算法(專業很高的算法)均可以找到matlab版本的。好比我要作數據分類,就用了別人寫的matlab版的最小均方SVM,若是是用Mathematica的話,那就得本身寫到崩潰了。
最後一點,我一直以爲Matlab的腳本字體不美觀,並且完成一個東西一次要寫好幾個腳本,因此我更願意用mathematica。
比較權威的比較:
關於幾大數學軟件的比較,國內一直爭論不休,殊不知有個德國人在這方面已經作了很精確的比較。一共60多頁的文檔,從6個大項100多個小項目進行了詳細的比較。幾十個表格,數千行代碼,並且爲了保證一樣的算法的代碼質量,Mathematica的代碼由Wolfram Research的人來寫,Matlab代碼由MathWorks的人來寫。不得不佩服德國人作事的嚴謹,再想一想咱們還在這裏瞎吹,哎。。。。
我這裏專門寫一下Mathematica的軟件引擎(下面所有引自mathematica幫助文檔)。、
Mathematica 是當今最複雜的軟件系統之一. 它由數百萬行 C/C++、Java 和 Mathematica 源代碼寫成. 我正好用過其中的3個軟件,我回答一下:
(我在PTC工做的時候,正好公司收購MATHCAD,公司作過屢次競爭軟件評估)
四大數學軟件:Maple、MATLAB、MathCAD(被PTC收購)和Mathematica。
1)MATHCAD:若是僅僅是要求通常的計算或者是普通用戶平常使用,首選的是MathCAD,它在高等數學方面所具備的能力,足夠通常客戶的要求,並且它的輸入界面也特別友好(相似word界面)。設計院客戶比較多,用於寫計算說明書。
2)若是要求計算精度、符號計算和編程方面的能力,推薦用Mathematica。
3)若是有實時數據流,仿真方面的運算,推薦MATLAB,它的矩陣計算和圖形處理方面則是它的強項。國防/軍工/電子行業客戶比較多。
4)MAPLE我沒有用過。
我說一個 Julia;
優勢:
1. 速度快
2. 有時(實際上是常常)能夠當作 Lisp 寫
3. 能夠方便的部分達到 CPP 的 template-based programming 的效果,加強穩健性(防護式編程)和運行速度(型別已知)
4. 隨意調用 Python 包
5. 有 best (coding) practice 作參考
6. 暫時我尚未玩過,可是能夠用 JuMP 的方法用 macro 寫 DSL
過去本人從事理論物理研究工做,如今則從事生物、計算機科學研究,使用機器學習工具,本人嘗試從我的經驗討論各種軟件的優劣。
Mathematica:
長處:算符運算能力強大,界面美觀,語言簡潔,容易取得真實數據,畫圖精美
短處:運算速度慢,受界面影響,不利處理大量數據
MATLAB / Octave:
長處:向量化語法,大量工具箱
短處:語言易讀性低
Python + NumPy + SciPy:
長處:語言簡潔,可作數值計算之外的工做(如網搜數據),大量工具箱
短處:算符運算能力不強且繁冗
其實數學軟件之間是不太比如較的,由於面向的用戶羣體徹底不一樣,彼此並不太構成競爭。
以 Matlab 爲例,通常來講它被當作是最重要的數學軟件,但是事實上 Matlab 更象是一個編程環境,而不是一個軟件。若是要比較,Matlab 應該和 python 之類作比較更好。和全部其它數學軟件相比,Matlab 在編程方面的功能都遠遠勝出,不在一個水平線上。
Mathematica 纔是一個真正意義上的數學軟件,或者確切來講,是「計算軟件」,是用來算東西的。好比算100的階乘,好比一個多項式的根,好比畫出一條曲線的形狀。這些它能夠作的很是好,可是也僅限於此。要用它開發出一個新算法是幾乎作不到的。因此真正的數學研究或者相關領域的研究反而沒人用 mathematica,就像數學家並不真的須要用計算器同樣。
Mathcad 其實不是一個數學軟件,而是一個「寫數學」的軟件,能夠很方便的輸入,可是長處也僅限於此。不過今天在數學公式輸入方面,latex 已是事實上的標準了,因此 mathcad 的市場實際上是至關有限的。
Maple 在我印象裏是一個沒落中的軟件。曾經在學術界有不少人喜歡,可是今天彷佛已經沒什麼人在用了。做爲計算機數學方向的研究生一枚,Matlab、Maple、Mathematica、MathCAD、maxima、mathμ這些軟件我都用過,當前在學術、工業、教育界上較流行和出名的科學計算軟件分爲兩類,主要包含數值計算軟件(以MATLAB爲表明)和符號計算軟件(好比:Mathematica、Maple、Maxima、MathCAD、Reduce等,更多此類軟件請訪問Computer algebra system - wikipedia)兩大類,還有近幾年來在中國緩慢發展但還沒有推廣使用的符號計算軟件mathμ。
(1)Maxima,是由麻省理工學院在美國能源部的支持下於60年代末創造的Macsyma演變而來,世界上最先的符號計算系統(或稱爲計算機代數系統CAS)。Macsyma後來慢慢走上商業化的道路,自1982年開始,Bill Schelter教授默默地維護基於能源部得到的代碼的Macsyma,他把這個軟件叫作Maxima,開放源碼。由於版權的問題,Maxima一直沒有公開發行,只有少數人知道有這個軟件的存在。1998年,Maxima終於獲得公開發行的許可,這已經是Schelter教授努力了16年以後的事。Schelter教授在2001年去世,不過已經正式成爲合法開放源碼軟件,所以陸續有支持開放源碼的程式設計師,學者投入Maxima的開發工做。Maxima的前身Macsyma在當時是很是創新的軟件。如今流行的商業計算機代數系統軟件Maple及Mathematica,都是受到Macsyma的啓發而設計出來的。
(2)Mathematica是由世界著名物理學家Stephen Wolfram領導的Wolfram Research公司開發的科學計算軟件。它兼具強大的符號計算功能和數值處理功能,被稱爲世界上最強大的通用計算系統。
(3)Maple是由加拿大Waterloo大學開發的科學計算軟件,擁有優秀的符號計算和數值計算能力。而且其符號計算同時是MATLAB和MathCAD等軟件的符號處理的核心。2009年,Maplesoft被日本軟件商Cybernet Systems收購。(About Maplesoft: Maplesoft, a subsidiary of Cybernet Systems Co., Ltd. in Japan, is the leading provider of high-performance software tools for engineering, science, and mathematics. Its product suite reflects the philosophy that given great tools, people can do great things.)
(4)MATLAB是美國MathWorks公司的科學計算軟件,具備超強的數值計算功能。使用MATLAB,能夠分析數據,開發算法,建立模型和應用程序。MATLAB在信號處理和通訊、圖像和視頻處理、控制系統、測試和測量、計算金融學及計算生物學等衆多應用領域已成爲科研工做着和大學生進行科學研究的一種強有力工具。
(5)MathCAD是美國PTC公司旗下MathSoft子公司推出的一個交互式的數學軟件。MathCAD是集科學編輯、數學計算、和仿真於一體的軟件,主要特色是輸入界面比較友好,所見即所得。MathCAD可視做一個功能強大的計算器,沒有複雜的使用規則;同時它和Word、WPS等文字處理軟件配合使用良好。
(6)清華大學的mathμ研發團隊的科技發明製做「計算機代數系統mathμ」是一個符號計算軟件,mathμ研發團隊官方聲稱mathμ具備獨特的符號處理功能,國內領先,但它使用起來依舊須要學習專門的輸入語法和命令,此外也還沒有推廣使用。
從功能上而言,目前科學計算領域的符號計算和數值計算基本已被Mathematica和MATLAB所覆蓋。Maple爲MATLAB和MathCAD等計算軟件的符號計算提供內核,MathCAD主要提供較強的數學表達式編輯的功能。
發現有個地方的回答也還不錯:MAXIMA,Mathematica 和 Maple 的區別
GeoGebra
數學老師那些幾何圖形,什麼多邊形,各類函數其實都不是本身畫的哦
這個軟件提供不少模板,就是數學老師繪圖必備啊
P.S. 這裏的Python指擴展了numpy, scipy庫。
限於對其餘軟件的瞭解有限,因此沒法發佈意見。。。不過這種分類方法仍是能夠考慮的,用來尋找適合本身的數學工具。Plot[sin[x], {x, 0, 2 Pi}]debug 花了一個下午......差點就要對它絕望了…
Matlab實際上是個工程軟件。純數學方面並不強,符號運算更是渣。可是變成方便,適合作模擬和通常計算工做。固然,由於是腳本語言,因此效率比不上通常的編程語言。它主要勝在適用面很是廣,這種庫的支持很是好,還有專門輸出報表的庫。所以,系統模擬,控制系統設計、圖像處理、信號處理等等均可以用。我還用這軟件來排相框。
MathCAD沒有用過,不清楚。Maple感受純數學、推公式更適用些,適用面比較窄。Mathematica聽說也能夠作一些工程應用方面的工做,可是我沒有用過這方面的功能,因此沒法評論。
Maple interface
|
|
Developer(s) | Waterloo Maple (Maplesoft) |
---|---|
Initial release | 1982 |
Stable release |
2016 / March 2, 2016
|
Written in | C, Java, Maple |
Platform | Microsoft Windows (7, 8 and 10), Apple OS X, Linux |
Available in | English, Japanese, and limited support in additional languages[1] |
Type | Computer algebra system, Numeric computation |
License | Proprietary commercial software |
Website | www.maplesoft.com/products/maple/ |
Maple is a symbolic and numeric computing environment, and is also a multi-paradigm programming language.
Developed by Maplesoft, Maple also covers other aspects of technical computing, including visualization, data analysis, matrix computation, and connectivity.
A toolbox, MapleSim, adds functionality for multidomain physical modeling and code generation.
Users can enter mathematics in traditional mathematical notation. Custom user interfaces can also be created. There is support for numeric computations, to arbitrary precision, as well as symbolic computation and visualization. Examples of symbolic computations are given below.
Maple incorporates a dynamically typed imperative-style programming language which resembles Pascal.[2] The language permits variables of lexical scope. There are also interfaces to other languages (C, C#, Fortran, Java, MATLAB, and Visual Basic). There is also an interface to Excel.
Maple supports MathML 2.0, a W3C format for representing and interpreting mathematical expressions, including their display in Web pages.[3]
Maple is based on a small kernel, written in C, which provides the Maple language. Most functionality is provided by libraries, which come from a variety of sources. Most of the libraries are written in the Maple language; these have viewable source code. Many numerical computations are performed by the NAG Numerical Libraries, ATLAS libraries, or GMP libraries.
Different functionality in Maple requires numerical data in different formats. Symbolic expressions are stored in memory as directed acyclic graphs. The standard interface and calculator interface are written in Java.
The first concept of Maple arose from a meeting in November 1980 at the University of Waterloo. Researchers at the university wished to purchase a computer powerful enough to run Macsyma. Instead, it was decided that they would develop their own computer algebra system that would be able to run on lower cost computers. The first limited version appearing in December 1980 with Maple demonstrated first at conferences beginning in 1982. The name is a reference to Maple's Canadian heritage. By the end of 1983, over 50 universities had copies of Maple installed on their machines.
In 1984, the research group arranged with Watcom Products Inc to license and distribute the first commercially available version, Maple 3.3.[4] In 1988 Waterloo Maple Inc. was founded. The company’s original goal was to manage the distribution of the software. Eventually, the company evolved to have an R&D department where most of Maple's development is done today with the rest done at university research labs worldwide including: the Symbolic Computation Laboratory at the University of Waterloo and the Ontario Research Centre for Computer Algebra at the University of Western Ontario[who?].
In 1989, the first graphical user interface for Maple was developed and included with version 4.3 for the Macintosh. X11 and Windows versions of the new interface followed in 1990 with Maple V. In 1992, Maple V Release 2 introduced the Maple "worksheet" that combined text, graphics, and input and typeset output.[5] In 1994 a special issue of a newsletter created by Maple developers called MapleTech was published.[6]
In 1999, with the release of Maple 6, Maple included some of the NAG Numerical Libraries.[7] In 2003, the current "standard" interface was introduced with Maple 9. This interface is primarily written in Java (although portions, such as the rules for typesetting mathematical formulae, are written in the Maple language). The Java interface was criticized for being slow;[8] improvements have been made in later versions, although the Maple 11 documentation[9] recommends the previous (「classic」) interface for users with less than 500 MB of physical memory.
Between the mid 1995 and 2005 Maple lost significant market share to competitors due to a weaker user interface.[10] In 2005, Maple 10 introduced a new 「document mode」, as part of the standard interface that it has been further developed over the following years.
In September 2009 Maple and Maplesoft were acquired by the Japanese software retailer Cybernet Systems.
Features of Maple include:[11]
Sample imperative programming constructs:
myfac := proc(n::nonnegint) local out, i; out := 1; for i from 2 to n do out := out * i end do; out end proc;
Simple functions can also be defined using the "maps to" arrow notation:
myfac := n -> product( i, i=1..n );
Find
int(cos(x/a), x);
Answer:
Compute the determinant of a matrix.
M:= Matrix([[1,2,3], [a,b,c], [x,y,z]]); # example Matrix
LinearAlgebra:-Determinant(M);
series(tanh(x),x=0,15)
High order polynomial equation
f := x^53-88*x^5-3*x-5 = 0 fsolve(f) -1.097486315, -.5226535640, 1.099074017
f := (cos(x+y))^2 + exp(x)*y+cot(x-y)+cosh(z+x) = 0: g := x^5 - 8*y = 2: h := x+3*y-77*z=55; fsolve( {f,g,h} ); {x = -1.543352313, y = -1.344549481, z = -.7867142955}
plot(x*sin(x),x=-10..10);
plot3d(2-x-(y^2-x^2)^0.5), x=0..1, y=0..1);
plots:-animate(subs(k = .5, f), x=-30..30, t=-10..10, numpoints=200, frames=50, color=red, thickness=3);
plots:-animate3d(cos(t*x)*sin(3*t*y), x=-Pi..Pi, y=-Pi..Pi, t=1..2);
M := Matrix([[400,400,200], [100,100,-400], [1,1,1]], datatype=float[8]): plot3d(1, x=0..2*Pi, y=0..Pi, axes=none, coords=spherical, viewpoint=[path=M]);
f := (1+A*t+B*t^2)*exp(c*t);
inttrans:-laplace(f, t, s);
inttrans:-invlaplace(1/(s-a),s,x)
inttrans:-fourier(sin(x),x,w)
Find functions {\displaystyle f} that satisfy the integral equation
eqn:= f(x)-3*Int((x*y+x^2*y^2)*f(y), y=-1..1) = h(x): intsolve(eqn,f(x));
The Maple engine is used within several other products from Maplesoft:
Listed below are third-party commercial products that no longer use the Maple engine: