四大数学软件Maple、MATLAB、MathCAD和Ma..( 二 )

四大数学软件Maple、MATLAB、MathCAD和Ma..
MathCAD是美国Mathsoft公司推出的一个交互式的数学系统软件 。 从早期的DOS下的1.0和Windows下的4.0版本 , 到今日的8.0版本 , 功能也从简单的数值计算 , 直至引用Maple强大的符号计算能力 , 使得它发生了一个质的飞跃 。MathCAD是集文本编辑、数学计算、程序编辑和仿真于一体的软件 。 MathCAD7.0 Professional(专业版)运行在Win9X/NT下 , 它的主要特点是输入格式与人们习惯的数学书写格式很近似 , 采用WYSWYG(所见所得)界面 , 特别适合一般无须进行复杂编程或要求比较特殊的计算 。 MathCAD 7.0 Professional 还带有一个程序编辑器 , 对于一般比较短小 , 或者要求计算速度比较低时 , 采用它也是可以的 。 这个程序编辑器的优点是语法特别简单 。MathCAD可以看作是一个功能强大的计算器 , 没有很复杂的规则;同时它也可以和Word、Lotus、WPS2000等字处理软件很好地配合使用 , 可以把它当作一个出色的全屏幕数学公式编辑器 。MathCAD是美国Mathsoft公司推出的一个交互式的数学系统软件 。 从早期的DOS下的1.0和Windows下的4.0版本 , 到今日的8.0版本 , 功能也从简单的数值计算 , 直至引用Maple强大的符号计算能力 , 使得它发生了一个质的飞跃 。Mathematica 系统四大数学软件Maple、MATLAB、MathCAD和Ma..
Mathematica是由美国物理学家Stephen Wolfram领导的Wolfram Research开发的数学系统软件 。 它拥有强大的数值计算和符号计算能力 , 在这一方面与Maple类似 , 但它的符号计算不是基于Maple上的 , 而是自己开发的 。Mathematica的基本系统主要是用C语言开发的 , 因而可以比较容易地移植到各种平台上 , Mathematica是一个交互式的计算系统 , 计算是在用户和Mathematica互相交换、传递信息数据的过程中完成的 。 Mathematica系统所接受的命令都被称作表达式 , 系统在接受了一个表达式之后就对它进行处理 , 然后再把计算结果返回 。 Mathematica对于输入形式有比较严格的规定 , 用户必须按照系统规定的数学格式输入 , 系统才能正确地处理 , 不过由于3.0版本引入输入面板 , 并且可以修改、重组输入面板 , 因此以前版本输入指令时需要不断切换大小写字符的繁琐方式得到很好的改善 。 3.0版本可以用各种格式保存文件和剪贴内容 , 包括RTF、HTML、BMP等格式 。Mathematica的符号功能是最强的 , 其运行构架也是最优的 。 它的构架由核心系统与前端系统构成 。 两个系统既合作又独立 , 这比Matlab的构架要合理 。 Mathematica是专为研究人员开发的 。 横向比较的话 , Mathematica的符号能力比Maple强很多 , Maple基本上是为中学生与大学生之学习研发的 , 不适合进行物理学与技术科学的运演;而Mathematica是最好的物理学科研的工具 , Matlab是最好的技术科学数值求解的工具 。4个星的“数学”软件 , 在数学二字上加引号是因为他已经超越了纯粹数学的范畴 , 这主要表现在他不断开发的面向于不同学科的工具包 。 就做数学和应用数学的能力来说Mathematica不如Maple(并不是说其做不了 , 不怕麻烦编程序也能做 , 但是话说回来基本的东西都编程序的话 , 那么和Fortran之类的语言没什么区别了) 。 另一个问题是Mathematica的内核不如Maple稳定(计算速度较Maple慢 , 我是说纯粹的计算时间 , 不是输入命令的时间 , 目前的Maple的Java界面比较失败 , 让人感觉算Maple算得慢 , 其实不是这样的) 。 Mathematica的诱人之处是与其它数值软件相比可以做符号运算 , 与Maple相比二次开发性好 , 工具包比Maple做的好 。 此外 , 其自带的语言是面向对象的 , 很厉害 , 很灵活 。优势:符号计算非常强大 , 可解的方程类型最广泛非常强大和灵活的语言 , 完成相同的工作 , 和同类语言相比代码量往往最少语言高度统一 , 支持相当多的编程范式 , 过程式、函数式、元编程 , 逻辑编程、基于规则...循环比较慢 , 可以用Compile加速 , 或使用Map、Table、Nest等代替循环许多内置函数具备AAS机制(AutomaticAlgorithmSelection)擅长高精度和大数计算 , 图形方面的函数很丰富 , 默认画图比Matlab和Maple更好看界面美观 , 输入公式很方便帮助文档很友好缺点:价格较高 , 比matlab更贵(Matlab的价格取决于你要哪些工具箱)向量化的操作比Matlab稍慢 , 有时比Matlab更耗内存代码调试不是很方便 , 但可以用Wolfram Workbench(基于Eclipse的IDE)改善程序语言学习曲线陡峭 , 排除熟悉Scheme、Haskell等函数式语言或者作为高级计算器使用的人(Mathematica的语法和常见的过程式程序语言有较大不同 , 虽然也可以作为过程式语言来用 , 但代码的和速度和优雅程度就大打折扣了)四种软件的比较 , 选用何种数学软件?如果仅仅是要求一般的计算或者是普通用户日常使用 , 首选的是MathCAD , 它在高等数学方面所具有的能力 , 足够一般客户的要求 , 而且它的输入界面也特别友好 。如果要求计算精度、符号计算和编程方面的话 , 最好同时使用Maple和Mathematica , 它们在符号处理方面各具特色 , 有些Maple不能处理的 , Mathematica却能处理 , 诸如某些积分、求极限等方面 , 这些都是比较特殊的 。如果要求进行矩阵方面或图形方面的处理 , 则选择MATLAB , 它的矩阵计算和图形处理方面则是它的强项 , 同时利用MATLAB的NoteBook功能 , 结合Word6.0/7.0的编辑功能 , 可以很方便地处理科技文章 。mathematica 值得信赖 , 国外很多著名的大学都在用它作解析计算和公式的推导 , 证明 , 算法的研究 , 非常好的数学研究软件 , 我个人认为是No.1 。 它的数学分析可视化无与伦比 。 综合性能和另一个著名的软件Maple相比 , 有过之而无不及 , 要知道世界上绝大部分的量子物理 , 天体物理论文中的公式推导都由它完成 , 绝对高端但又易用 , 是数学 , 力学 , 物理研究人员的好帮手 , 甚至它的数值计算也完全可以应付学术研究 。 mathematica 和Maple 的最新版本在用户公式的输入上都有很大改进 , 更加方便 , 随意 。北美不少Top大学的弹性力学 , 板壳理论 , 有限元等数学力学理论课的作业和Project都要求用它来完成 。 我个人认为 , 作为计算力学的工作者 , 从掌握语言的角度来讲 , 只要掌握3种计算语言足够了 , mathematica用来作解析法和数学模型的研究 , Matlab用来实现数值算法(当然仍然可以还用mathematica), Fortran用来写可执行源代码 。 没必要把自己陷入众多的语言和计算软件之中 , 没有意义的 。符号计算:积分是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 9开始可以解概率微分方程了 , Maple还不行 。 总体来说Mathematica在这个方面比Maple强 。语言方面:由于Maple像C语言 , Maple比Mathematica简单 , Matlab移植也是Maple比Mathematica强多了 。线性代数:线性代数是Mathematica强 , 有些Maple不能做的Mathematica能做 , 再者Mathematics比Maple快 。计算代数几何:计算代数是Maple的超强项 , 强暴于Mathematica , 特别是PolynomialIdeals操作等 , 微分多元环操作Mathematica是没有的 , 再者多项式计算也是Maple快于Mathematica 。 所以 , 代数计算是Maple大大超过mathematica 。GUI:总体内容Maple的GUI像LATEX一样漂亮 , 而Mathematica适应于编程GUI 。Maple和Mathematica都得用 , 微分 , 积分方程基本可以拜托Maple了(概率微分方程拜托Mathematical) 。积分拜托给Mathematica 。计算代数几何 , GUI , Programming拜托给Maple 。线性代数 , 数值计算拜托给Matlab和Mathematica 。


推荐阅读