找回密码
 注册
Simdroid-非首页
查看: 263|回复: 11

[ 接龙游戏 ] Matlab VS Mathematica 的优缺点

[复制链接]
发表于 2007-5-12 13:40:45 | 显示全部楼层 |阅读模式 来自 江苏无锡
今天用了把 Matlab,主要感觉,

Matlab 语句自动用颜色标示是在太好的功能了,Mathematica 没有此功能。

但是 Mathematica 数学公式的直观表达,Matlab 公式 输入不够直观。

你们谁来补充 补充?
发表于 2007-5-12 15:43:40 | 显示全部楼层 来自 湖北武汉
Simdroid开发平台
好像古龙和金庸
两种截然不同的风格
可能偏理论方便的用Mathematica多些,比如物理
工程的用MATLAB方便些,因为它与常年使用的FORTRAN没什么差别
对科研的人来说,MATLAB类似计算器,加法减法。Mathematica;类似于草稿纸,
A推到B,B推到C
至于颜色标识,弄个语法高亮的文本编辑器就可以了。
回复 不支持

使用道具 举报

发表于 2007-5-12 20:23:13 | 显示全部楼层 来自 天津
数学软件四大家Maple、MATLAB、MathCAD和Mathematica  
目前在科技和工程界上比较流行和著名的数学软件主要有四个,分别是Maple、MATLAB、MathCAD和Mathematica。它们在各自针对的目标都有不同的特色。下面就让我为你一一道来。

一、Maple V 系统
  Maple V是由Waterloo大学开发的数学系统软件,它不但具有精确的数值处理功能,而且具有无以伦比的符号计算功能。Maple V的符号计算能力还是MathCAD和MATLAB等软件的符号处理的核心。Maple提供了2000余种数学函数,涉及范围包括:普通数学、高等数学、线性代数、数论、离散数学、图形学。它还提供了一套内置的编程语言,用户可以开发自己的应用程序,而且Maple自身的2000多种函数,基本上是用此语言开发的。
  Maple采用字符行输入方式,输入时需要按照规定的格式输入,虽然与一般常见的数学格式不同,但灵活方便,也很容易理解。输出则可以选择字符方式和图形方式,产生的图形结果可以很方便地剪贴到Windows应用程序内。

二、MATLAB 系统
  MATLAB原是矩阵实验室(Matrix Laboratory)在70年代用来提供Linpack和Eispack软件包的接口程序,采用C语言编写。从80年代出现3.0的DOS版本,逐渐成为科技计算、视图交互系统和程序语言。MATLAB可以运行在十几个操作平台上,比较常见的有基于Windows 9X/NT、OS/2、Macintosh、Sun、Unix、Linux等平台的系统。
  MATLAB程序主要由主程序和各种工具包组成,其中主程序包含数百个内部核心函数,工具包则包括复杂系统仿真、信号处理工具包、系统识别工具包、优化工具包、神经网络工具包、控制系统工具包、μ分析和综合工具包、样条工具包、符号数学工具包、图像处理工具包、统计工具包等。而且5.x版本还包含一套几十个的PDF文件,从MATLAB的使用入门到其他专题应用均有详细的介绍。
  MATLAB是数值计算的先锋,它以矩阵作为基本数据单位,在应用线性代数、数理统计、自动控制、数字信号处理、动态系统仿真方面已经成为首选工具,同时也是科研工作人员和大学生、研究生进行科学研究的得力工具。MATLAB在输入方面也很方便,可以使用内部的Editor或者其他任何字符处理器,同时它还可以与Word6.0/7.0结合在一起,在Word的页面里直接调用MATLAB的大部分功能,使Word具有特殊的计算能力。

三、MathCAD 系统
  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等字处理软件很好地配合使用,可以把它当作一个出色的全屏幕数学公式编辑器。

四、Mathematica 系统
  Mathematica是由美国物理学家Stephen Wolfram领导的Wolfram Research开发的数学系统软件。它拥有强大的数值计算和符号计算能力,在这一方面与Maple类似,但它的符号计算不是基于Maple上的,而是自己开发的。
  Mathematica的基本系统主要是用C语言开发的,因而可以比较容易地移植到各种平台上,Mathematica是一个交互式的计算系统,计算是在用户和Mathematica互相交换、传递信息数据的过程中完成的。Mathematica系统所接受的命令都被称作表达式,系统在接受了一个表达式之后就对它进行处理,然后再把计算结果返回。Mathematica对于输入形式有比较严格的规定,用户必须按照系统规定的数学格式输入,系统才能正确地处理,不过由于3.0版本引入输入面板,并且可以修改、重组输入面板,因此以前版本输入指令时需要不断切换大小写字符的繁琐方式得到很好的改善。5.1版本可以用各种格式保存文件和剪贴内容,包括RTF、HTML、BMP等格式。

Mathematica的符号功能是最强的。且它的运行构架是最优的。符号运算效力与解析能力是最好的(数值运算当然是Matlab最好)。它的构架由核心系统与前端系统构成。两个系统既合作又独立。这个比Matlab的构架都要优秀。它是专为研究人员开发的。至于Maple的符号能力根本就比Mathematica弱很多的。它基本上是为中学生与大学生之学习研发的。不足以进行物理学与技术科学的运演。而Mathematica是最好的物理学科研的工具。Matlab是最好的技术科学数值求解的工具。朋友们应该知了。数值类的数学软件是Matlab最好最全。符号分析类的数学软件是Mathematica最好。

五、四种软件的比较
  选用何种数学软件?如果仅仅是要求一般的计算或者是普通用户日常使用,首选的是MathCAD,它在高等数学方面所具有的能力,足够一般客户的要求,而且它的输入界面也特别友好。如果要求计算精度、符号计算和编程方面的话,最好同时使用Maple和Mathematica,它们在符号处理方面各具特色,有些Maple不能处理的,Mathematica却能处理,诸如某些积分、求极限等方面,这些都是比较特殊的。如果要求进行矩阵方面或图形方面的处理,则选择MATLAB,它的矩阵计算和图形处理方面则是它的强项,同时利用MATLAB的NoteBook功能,结合Word6.0/7.0的编辑功能,可以很方便地处理科技文章。

转自《博士家园论坛》
回复 不支持

使用道具 举报

 楼主| 发表于 2007-5-12 20:49:57 | 显示全部楼层 来自 江苏无锡
谢谢,shunfly 和 junziyang 这个帖子写的较老我看过。

我记得最初是 Simwe的一个斑竹写的后来转载于各大论坛?

我更希望看到两种软件用户直接使用经验的评价。
回复 不支持

使用道具 举报

发表于 2007-5-12 20:57:55 | 显示全部楼层 来自 新疆乌鲁木齐
四个M软件我都用过,随便说两句:
如果说比符号计算,那MATLAB基本就是个joke,因为本身是购买别人的东西,有点儿不伦不类,只能用于验算些简单的低维数问题。mathematica则是符号计算中的老大,此类计算速度更是快到不可思议——数学推理的首选。另外不得不说的是maple,它的计算内核也非常厉害,其多项式方程的求解速度目前号称世界最快,可惜弄了个不三不四的java界面,使其在图形界面下的计算速度急遽下降,虽然最近一段时间可以看出他们已经开始注意软件的普及推广,开发各种工具箱,例如全局优化、和MATLAB的接口等,但是不知道什么原因,似乎推广效果不是特别好。
如果说到编程在普通用户中的推广,尤其是数值类运算,那mathematica就基本是个joke,因为它的编程语言规则不好掌握不说,更要命的是语法调试相对困难得多。
如果说图形操作,MATLAB用句柄管理,非常方便灵活,且命令都是单独的,不用像mathematica一样还要去调用这样或者那样的package,感觉怪异(当然这是个人感觉,反感者请勿拍砖),其实想明白了也容易理解,就是调用一个个的图形类库,可是个人认为MATLAB的做法可扩展性更加强——如果熟悉了对句柄的操作、图形命令中关于光照、透明、坐标变换等知识,它的图形功能相比较可能要专业得多,不仅仅只是个函数图像的表达,否则也不会有mapping toolbox和image toolbox了。
如果说程序的书写习惯,MATLAB更加接近于传统的程序编写并更简洁。在数值运算上的矩阵操作和矢量化编程,更是傲视同侪目前无其他软件出其右:往往其他数值程序写二三十行,它两三行已经解决。而mathematica中最常用的执行方式是cell型的单元段代码,它利于实现数学理论上专家们的某个具体idea,活生生一张草稿纸,所以很多国外数学家授课时乐于使用它撰写教案。
由于MATLAB更多面向工科,而mathecatica从一开始就是为数学家和物理学家量身定做的(沃尔富勒姆本身就是个数学天才),所以它们的比较也只能限于上述部分,其他的根本就是苹果和梨子的区别,硬放在一起纯属无聊。为大家公认的是:MATLAB之所以是MATLAB,是由于其simulink模块的开发,在此平台基础上,MATLAB真正脱离的“数学软件”的范畴而进入了广阔的工程应用领域。在此基础上MATLAB的一系列动作,例如与各种背景模型的仿真、硬件数据的接口、实时代码、虚拟现实,已经远远不再是一个“数学软件”那么简单。加上图形界面编程、矩阵操作思想、方便的M程序编写以及大量具有强烈工程背景、极度方便可供直接调用的工具箱函数,MATLAB的工程背景下的DIY性能绝对是无人能比,随着它的发展,这个庞然大物与mathematica的交集比例已经越来越小,可比性也越来越低——不再是一个轨道里的东西了。
但是junziyang转贴的文章中,这段加亮的话我非常不同意,甚至我认为是错误的:maple和mathematica两者在符号计算上的差别以我们现在的数学能力是绝对无法辨别出好坏高下的,说maple差我只承认它那个画蛇添足滥到家的界面,歪曲了它作为世界上最优秀的符号计算引擎内核之一的真相:
Mathematica的符号功能是最强的。且它的运行构架是最优的。符号运算效力与解析能力是最好的(数值运算当然是Matlab最好)。它的构架由核心系统与前端系统构成。两个系统既合作又独立。这个比Matlab的构架都要优秀。它是专为研究人员开发的。至于Maple的符号能力根本就比Mathematica弱很多的它基本上是为中学生与大学生之学习研发的。不足以进行物理学与技术科学的运演。而Mathematica是最好的物理学科研的工具。Matlab是最好的技术科学数值求解的工具。朋友们应该知了。数值类的数学软件是Matlab最好最全。符号分析类的数学软件是Mathematica最好。

至于公式编辑直观与否的问题,单纯使用一个软件,matlab在符号计算中的确有这个缺点——毕竟符号计算不是它的本行。但是如果说到与其他文本编辑软件结合,则情况又大大不同。我的一般做法是把符号计算结果用latex命令转为latex语言,然后由ctex转成pdf文件——通用的做法。

[ 本帖最后由 bainhome 于 2007-5-13 03:05 编辑 ]

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2007-5-12 23:25:19 | 显示全部楼层 来自 上海长宁区
Matlab的符号工具箱是买的Maple的内核开发的
对常用的符号计算直接提供了函数,不常用的通过maple等函数提供了对Maple内核的访问(除Maple图形功能外)
格式为maple('Maple相应命令语句')
虽然能用到Maple除图形外(事实上Matlab自己的图形够强了)的所有功能,但使用起来并不方便

Matlab本身定位于数值计算,这类计算的特点是一般事先知道应该怎样去算,但数据量大,且过程长,适合编程解决。因此Matlab语法设计比较适合编程,且也与C等常用编程语言有一定类似,与常用编程语言也有良好的交互方法。

Mathematica虽说其自己说是数值符号计算通吃,不过一般人眼里其还是符号计算软件,而且以前大规模数值计算表现并不佳(4.0版后有改进)。就其语法来说,的确是非常适合符号计算。做符号计算通常在做一些推导、探索,一个式子通常要拆,要加点,减点,要变形等等,总之是要方便地对表达式进行操作。Mathematica这方面设计不错,有一个统一的解决方案。 Everything Is an Expression,还有模式的概念等等非常适合探索性的工作。这方面Maple做得没这么好。当然内核就另说了,这里只是说其提供给用户的接口。函数的命名没有统一性,语法接近通用的编程语言,版本9以后更是来了个缓慢的java界面,实在让人头痛,让我放弃了Maple。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2007-5-12 23:36:07 | 显示全部楼层 来自 上海长宁区
Mathematica 6看介绍在图形方面大大加强了与用户的交互

以前的mathematica在图形交互方面实在是有点让人郁闷
最突出的就是绘3D图时ViewPoint必须输参数,不能用鼠标拖着图形旋转
这点让人郁闷
版本6这点似乎是可以了
期待早日用上新版本

PS:图形方面以前Maple做的比Mathematica好

[ 本帖最后由 sidera 于 2007-5-12 23:39 编辑 ]
回复 不支持

使用道具 举报

发表于 2007-5-12 23:53:15 | 显示全部楼层 来自 上海长宁区
使用Mathematica或Maple有点时间的人不免都要接触到这两个软件谁优谁劣的争论
这两个软件符号计算能力谁好谁差,网络上也是各有各的说法,甚至争的脸红脖子粗,但都是武断的说法,没见过有系统的评测,也许由于这种软件的复杂性,根本就不可能有吧
不过关于提供给用户的接口,还是可以说说的
这类软件,主要还是通过一行行的命令来与其打交道。因此其提供的语言的设计是很重要的。这方面如上所说,Mathematica要精致得多。另外,以前的版本中,Maple输入中文会发生问题,这个Bug在版本11的Java界面中修正了,不过经典界面(C写的)中依然如故。
回复 不支持

使用道具 举报

 楼主| 发表于 2007-5-17 12:29:23 | 显示全部楼层 来自 江苏无锡
bainhome

sidera 是谁的马甲,咋就发了三帖 ?

bainhome 说的多少有点夸张,但的确是说到了根上。

我喜欢下面这段话,大伙分享,一起看看。

Bei mathematischen Operationen kann sogar eine gänzliche Entlastung des Kopfes eintreten, indem
man einmal ausgeführte Zähloperationen mit Zeichen symbolisiert und, statt die Hirnfunktion auf
Wiederholung schon ausgeführter Operationen zu verschwenden, sie für wichtigere Fälle aufspart.


When doing mathematics, instead of burdening the brain with the repetitive job of redoing numerical
operations which have already been done before, it’s possible to save that brainpower for more
important situations by using symbols, instead, to represent those numerical calculations.
                                                                                 
                                                                                     — Ernst Mach (1883 )
回复 不支持

使用道具 举报

发表于 2007-5-18 17:01:43 | 显示全部楼层 来自 上海
可惜都不是免费的
回复 不支持

使用道具 举报

发表于 2007-5-18 20:01:23 | 显示全部楼层 来自 安徽合肥
在学习迷茫的时候,用过mathcad搞计算,但是由于其灵活性较差,实现很多想法或者算法是非常别扭,直接放弃。我老板倒是喜欢mathcad,他说比较直观看到过程和结果。
但是matlab就不同了,很多不懂的东西直接在command window中交互实现验证,复杂就在m文档中编写程序,如果你用惯了linux下的命令行去操作各种任务的话,在matlab环境下就很快习惯了。
当然用matlab是提高工作效率和促使人懒惰的集合,我喜欢变成前者。
路漫漫,matlab求索中
回复 不支持

使用道具 举报

发表于 2007-5-19 18:11:23 | 显示全部楼层 来自 新加坡
经常可以看见关于这几个软件的比较。不乏真知卓见,有些不免有些偏执。不过好在这几个软件的特点很明确,试过之后应该能找到适合自己的。我现在只用matlab,因为它完全满足我的需要,而且类似编程的感觉也是另外一个原因,另外就是我很少需要用到符号计算。所以选择起来就容易多了。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-6 14:39 , Processed in 0.053808 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表