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: