Maple 18和Mathematica 9的比较[百度Maple贴吧网友转发-东京大学某教授观点]

本文主要是介绍Maple 18和Mathematica 9的比较[百度Maple贴吧网友转发-东京大学某教授观点],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

符号计算两大商业化顶级软件;

maple刚刚出了 19 (公开叫2015), mathematica也有了10.x

看了下,感觉网上有很多人视图对比不同软件,这个比较更加贴近实际情况.因此转发下;

百度贴吧Maple吧里面的比较


因为楼主在日本留学,学校和三个公司都签了约。所以电脑里matlabmathematica,Maple都有。matlab是数值计算矩阵计算最好已经不用说了。但·mathematics和Maple到底哪个好,一直有疑点。看了这篇比较后,我的疑点被解开了。
https://sites.google.com/site/yoshihikohasegawa/adversaria
这篇是东京大学的教授写的Maple18和mathematica9的详细比较


上表中的日文可以直接看作繁体汉字的一种; 全是假名的一行指"编程语言"programming language

以上是综合评价, 三角表示"马马虎虎",单圈代表"挺不错的",双圈代表"非常出色";


符号计算
记号计算の主な使用目的は积分,简単化,微分方程式等だと思われます.积分はMathematicaの方が强力な印象があります.例えばx*exp(-x)*exp(-exp(-x))
をxに関して积分する场合,Mathematicaだと解析解が一発で计算されますがMapleだとそのままでは计算できません.Mapleで计算する场合は置换积分を行うと出来ます.
f:=Int(x*exp(-x)*exp(-exp(-x)),x);
g:=IntegrationTools:-Change(f,x=-ln(u));
value(g);
=> -ln(u)*exp(-u)-Ei(1,u)
また,式の简単化に関してもMathematicaの方が强力です.

一方で,微分方程式の解析解はMapleの方がより広い场合で计算が可能なようです.例えば,
y*(x)-y(x)^2-y(x)*sin(2*x)-cos(2*x)=0
をMapleとMathematicaで解いた场合,Mapleでは
y(x)=(2*HeunCPrime(1,1/2,-1/2,-1,7/8,(1/2)*cos(2*x)+1/2)*_C1*cos(2*x)/(sqrt(2*cos(2*x)+2)*(HeunC(1,1/2,-1/2,-1,7/8,(1/2)*cos(2*x)+1/2)*_C1*sqrt(2*cos(2*x)+2)+HeunC(1,-1/2,-1/2,-1,7/8,(1/2)*cos(2*x)+1/2)))+(HeunCPrime(1,-1/2,-1/2,-1,7/8,(1/2)*cos(2*x)+1/2)*sqrt(2*cos(2*x)+2)+2*HeunCPrime(1,1/2,-1/2,-1,7/8,(1/2)*cos(2*x)+1/2)*_C1+2*HeunC(1,1/2,-1/2,-1,7/8,(1/2)*cos(2*x)+1/2)*_C1)/(sqrt(2*cos(2*x)+2)*(HeunC(1,1/2,-1/2,-1,7/8,(1/2)*cos(2*x)+1/2)*_C1*sqrt(2*cos(2*x)+2)+HeunC(1,-1/2,-1/2,-1,7/8,(1/2)*cos(2*x)+1/2))))*sin(2*x);
という解が得られますが,Mathematicaでは解くことが出来ません.文献[数式処理 Bulletin of JSSAC (2012), Vol.18, pp.117-125]によれば,Kamkeの本に载っている微分方程式の97%以上を解くことが出来るそうです.
また积分方程式に関してはMapleの方が强力です.Mapleにはintsolveという専用の関数が用意されており,これによって解析解を计算することが可能です.例えばeq:=f(x)=2*x^2-x+Int(f(t),t=0..2)のf(x)に関する积分方程式をMapleで解くとintsolve(eq,f(x)) => 2*x^2-x-10/3となり,解析的に解を求めることが出来ます.一方,Mathematicaには积分方程式用のコマンドは用意されていないため,直接解くことは出来ません.

总体内容 :积分是mathematica强,化简也是mathematica的强项。有些mathematica可以直接积分的,Maple却要用置换积分。微分方程的解析解是Maple强些,有很多微分方程的解析解Maple能算出,mathematica却不能。根据文献,Maple可以解Kamke书上的97%的微分方程。
另外,积分方程也是Maple强些,因为Maple里内带intsolve函数,因此可以算出解析解。例如eq:=f(x)=2*x^2-x+Int(f(t),t=0..2)的关于f(x)的积分方程,Maple得出intsolve(eq,f(x)) => 2*x^2-x-10/3,而Mathematica解不了。


数値计算
数値计算は全体的にMathematicaの方が処理が高速です.数値计算では,目的関数の最大化最小化を求める问题が非常に多いですが,そのコマンドもMathematicaの方が多いようです.例えば,大域的最适解を求めるためにMathematicaでは,焼きなまし法,Differential evolution,マルチスタートHill climbingが组み込み関数で入っています(NMaximizeまたはNMinimize関数).一方で,Mapleではこれらの手法はアドインとして贩売されており,组み込み関数ではNLPSolveが提供されているだけです.线形计画法はどちらも,记号的に条件を入力できます(行列による入力ももちろん可能).しかし,大规模な问题はどちらのソフトも得意ではなく,GLPKと比べても大きく见劣りする印象です.
数値积分はdefaultの関数を用いる场合Mathematicaの方が高速です.しかし,Mapleで明示的にNAGのライブラリを指定することで,Mathematicaより高速に数値积分をすることもできます.常微分方程式の机能に関しては,MathematicaもMapleも概ね同等の机能を有しています.阳解法と阴解法を有しており,硬い微分方程式も解くことが出来ます.但し,时间遅れのある微分方程式の数値解に関しては,Mathematicaのみが解くことが出来ます.また确率微分方程式に関しても,Mathematicaはバージョン9より数値的に解くための(モンテカルロ法)関数が追加されました.一方で,Mapleには确率微分方程式のパッケージは入っていません.

保存量(エネルギーや运动量)を持つ微分方程式は微分代数方程式(Differential Algebraic Equation)と呼ばれますが,どちらのソフトでも解くことが出来ます.机能はMathematicaの方が揃っている印象です.

总体内容:数值计算是mathematica好,主要差别在于有时间差的微分方程的数值解只有mathematical可以解,再者从mathematica9开始可以解概率微分方程了,Maple还不行。总体来说mathematica在这个方面比Maple强。


プログラミング言语··(Programming language)
Mathematicaは関数型言语である一方,MapleはC言语に似ている一般的な手続き型言语です.言语としてはMathematicaの方が洗练されていて,プログラムを非常に少ない行数でエレガントに记述することが可能です.一方,Mapleは互换性を持たせつつ拡张を重ねているため,复雑になっています(特にデータ构造).Mapleは最近ではObject指向にも対応しています.ただし,论文にある拟コードは手続型であるために,简単にプログラミングする场合はMapleの方がしやすいです.また,C言语やMATLABソースの移植を行う场合も,これらの言语と文法が似ているのでMapleの方が圧倒的に简単に出来ます.中规模以上のプログラミングではモジュール化が重要ですが,これもMapleの方が行いやすいです.MathematicaではContextを指定することで名前空间を指定できますが,コーディングには手间がかかります.また,エラー処理に関してもMapleの方が行いやすく,个人的にはプログラミングはMapleの方が简単に出来る印象です.私自身はMapleの方がMathematicaより频繁に使いますが,その大きな理由の一つがこのプログラミング机能にあります.
总体内容: 由于Maple像C语言,Maple比mathematica简单,matlab移植也是Maple比mathematica强多了。


线性代数

线形代数の机能はMathematicaの方が高机能です.例えば疎行列の固有値を求める场合,最大・最小の固有値のみを计算したい场合がありますが,Mapleでは固有値の一部のみの计算を行うことが出来ません.一方Mathematicaは内部でARPACK使っていて,Eigenvaluesコマンドで行うことが出来ます.大规模な疎行列の计算もMathematicaの方が高速です.特にMathematicaの疎行列はC言语などで书いた场合とそん色なく计算できる场合があります.
总体内容: 线性代数是mathematica强,有些Maple不能做的mathematica能做,再者mathematics比Maple快。


计算代数几何
MapleやMathematicaなどの记号计算ソフトを用いる大きな理由の一つに,代数系の计算が挙げられます.数値计算,プログラミング,大规模线形代数が主であれば,おそらくMATLABなどの数値计算専用のソフトの方が良いでしょう.そのため,代数系の计算は数式処理ソフトにとって非常に重要です.Mapleの开発には计算代数の研究者が参加しているため,计算代数の机能はMathematicaと比较して圧倒的に豊富です.特にイデアルの操作を行うPolynomialIdealsパッケージのコマンドのほとんどはMathematicaにはありません.例えば,イデアルの和,积,共通部分,コロンイデアル,根基イデアルなどの计算はMathematicaでは出来ません.多项式自体の计算もMapleの方が高速です.また微分多元环に関するコマンドもMathematicaにはないです.代数の计算を行うならばMapleの方がだいぶ适している印象です.


总体内容:计算代数是Maple的超强项,强暴于mathematica,特别是PolynomialIdeals操作等,微分多元环操作mathematica是没有的,再者多项式计算也是Maple快于mathematica。所以,代数计算是Maple大大超过mathematica。


GUI·(Graphic Uesr Interface)
GUIは机能ではありませんが,非常に重要です.MathematicaはCourierベースのフォントを用いており,プログラミングと数学的记号の表现を出来るように工夫されています.一方,MapleはTimesベースのフォントが使われており,见た目はLatexのような非常に绮丽な表示が可能です.プログラミングを行うにはMathematicaのGUIの方が向いていますが,记号计算にはMapleのほうが数学的です.ただしMapleにはプログラミングのためのコードエディタを埋め込むことが可能です.
总体内容 Maple的GUI像LATEX一样漂亮,而Mathematica适应于编程GUI


总结下: 仁者见仁智者见智

Maple和mathematica都得用,微分,积分方程基本可以拜托Maple了(概率微分方程拜托mathematica)。
积分拜托给mathematica。 计算代数几何,GUI,Programming拜托给Maple。
线性代数,数值计算拜托给matlab和mathematica。

这篇关于Maple 18和Mathematica 9的比较[百度Maple贴吧网友转发-东京大学某教授观点]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/675967

相关文章

比较学习难度:Adobe Illustrator、Photoshop和新兴在线设计平台

从入门设计开始,几乎没有人不知道 Adobe 公司两大设计软件:Adobe Illustrator和 Photoshop。虽然AI和PS很有名,有一定设计经验的设计师可以在早期探索和使用后大致了解AI和PS的区别,但似乎很少有人会系统地比较AI和PS。目前,设计软件功能多样,轻量级和网页设计软件已成为许多设计师的需求。对于初学者来说,一篇有针对性的AI和PS比较总结文章具有非常重要的指导意义。毕竟

mathematica的使用

因为做实验用到Bloom filter这一技术,Bloom filter里面的数学公式可以用来画图。 那么用什么画图软件比较好呢? 当然是Mathematica啦。 利用代码Plot[{y=x},{x,0,100}] 就可以画出比较好的图 简直nice

百度OCR识别结构结构化处理视频

https://edu.csdn.net/course/detail/10506

Python几种建表方法运行时间的比较

建立一个表[0,1,2,3.......10n],下面几种方法都能实现,但是运行时间却截然不同哦 import time#方法一def test1(n):list=[]for i in range(n*10):list=list+[i]return list#方法二def test2(n):list=[]for i in range(n*10):list.append(i)#方法三d

关于文章“python+百度语音识别+星火大模型+讯飞语音合成的语音助手”报错的修改

前言 关于我的文章:python+百度语音识别+星火大模型+讯飞语音合成的语音助手,运行不起来的问题 文章地址: https://blog.csdn.net/Phillip_xian/article/details/138195725?spm=1001.2014.3001.5501 1.报错问题 如果运行中报错,且报错位置在Xufi_Voice.py文件中的pcm_2_wav,如下图所示

Struts2与struts1与springmvc比较

最近做项目用到了struts2,之前一直是用struts1和springMVC。感觉到了struts2从很大程度上和这两个还是有很大区别的,所以今天搜集了些资料,给他们做一下对比。            Struts1官方已经停止更新,现在用的也比较少,这里主要讲一下struts2和struts1比较都有哪些不同和进步。Struts2可以说不是完全从struts1改进来的,因为

算法8—不通过比较,找出两个数的最大值

问题: 比如:给定两个值 5和10,不通过比较,直接找出最大值。 分析: 一旦涉及到不用比较找最大值,想都不用想,一般只能通过位运算来实现。  max = a - ((a-b)&((a-b)>>31)) 或者 max = ((a+b)+|a-b|)/2 如果找最小值,我们只需把两个值相加,减去max即可。

刷题——比较版本号

比较版本号_牛客题霸_牛客网 int compare(string version1, string version2){int len1 = version1.size();int len2 = version2.size();int i=0,j=0;while(i<len1 || j <len2){long num1 =0 ;while(i <len1 && version1.charAt

Java中的排序比较方式:自然排序和比较器排序

这里所说到的Java中的排序并不是指插入排序、希尔排序、归并排序等具体的排序算法。而是指执行这些排序算法时,比较两个对象“大小”的比较操作。我们很容易理解整型的 i>j 这样的比较方式,但当我们对多个对象进行排序时,如何比较两个对象的“大小”呢?这样的比较 stu1 > stu2 显然是不可能通过编译的。为了解决如何比较两个对象大小的问题,JDK提供了两个接口 java.lang.Comparab

几大最短路径算法比较

July、二零一一年二月十二日。 -----------------------------------    几个最短路径算法的比较: Floyd        求多源、无负权边的最短路。用矩阵记录图。时效性较差,时间复杂度O(V^3)。        Floyd-Warshall算法(Floyd-Warshall algorithm)是解决任意两点间的最短路径的一