数学软件介绍

Discussion in 'Julia / MATLAB / SAS' started by wj2000, Feb 5, 2010.

  1. http://www.saicai.com/?action-blogdetail-uid-24711-id-695
    现在每天都在建模培训中度过,有些累,但更多的是学到了很多知识、道理。下面的是,我在一个人的博客里看到的关于数学软件的介绍,他参加过三次建模比赛,还参加过国际赛,由衷的佩服。现在和大家分享他的总结:
    在当今30多个数学类(为区别于文字处理和作图类而加的修饰词)科技应用软件中,就软件数学处理的原始内核而言,可分为两大类。一类是数值计算(Number Crunching))型软件,如Matlab, Xmath,MLAB等。这类软件对大批数据具有较强的管理、计算和可视化能力,运行效率高。另一类是数学分析(Math Analysis)型软件,如Mathematica、Maple,Macsyma等。它们以符号计算见长,并可得到解析符号解和任意精度解,但处理大量量数据时运行效率较低。经过多年的国际竞争,MATLAB已经占据了数值型软件市场的主导地位,处于其后的是Xmath;而Maple,Mathematica,Macsyma位居符号软件的前三名(见IEEE Spectrum)。 在国际流行的技应用软件中,Mathcad 别具特色。该软件的开发商Mathsoft公司一开始就把面向教学和办公作为Mathcad的市场目标。在对待数值计算、符号分析、文字处理、图形能力的开发商,不以专业水准为追求,而尽力集各种功能于一体。MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图视能力的基础商,又率先在专业水平上开拓其符号计算,文字处理,可视化建模仿真和实时控制能力,精心营造适合多学科、多部门要求的新一代科技应用软件MATLAB。
    对电子系同学最常用的软件而且基本上唯一使用的数学软件就是matlab了。Matlab 5.3版本(最新版本6.0版)完全安装,包括帮助、以及各种工具箱一共竟需要1G多硬盘空间。当然,这一个G的容量并不是被各种垃圾文件所充斥,相反的,它是由无数在Matlab系统上运行的函数文件所占据。由此可以看出Matlab的功能是多么的全面。1984年,计算数学家Steve Bangert、Steve Kleiman、John Little、Cleve Morer在原来 FORTRAN程序的基础上开发了一个解决线性系统计算问题的C语言程序,他们给它起了个响亮的名字Matlab(Matrix Laboratory)。从此以后,Matlab系统便一发而不可收拾,成千上万的软件工程师、计算科学家、和各种应用领域的科技工作人员加入了Matlab的开发者的行列。他们把各自科研、应用领域中的常用算法用Matlab系统提供的编程语言做成程序集,于是就产生了Matlab的特色之一:"工具箱系统"(Toolbox)。在Matlab5.3 中大约有几十个工具箱,其中包括通信,信号系统分析、离散信号分析、优化、偏微分方程、小波变换、地图、财经、电力系统、神经网络,数值计算等等。工具箱中每一个函数都是采用了该领域中最先进的高效算法,无数这样的函数文本文件组成Matlab这个巨无霸,由此可见,Matlab对于解决工程问题是极其具有优越性的。是我们电子系学生的最爱。上面介绍了Matlab的主要特色之一:工具箱。下面来谈谈它的另一个特色,就是与其他语言和编译器之间的接口。这个问题一直是关于Matlab的最热门的话题。原因很简单,1.Matlab如此全面高效的算法和功能都是建立在Matlab提供的平台上才能运行,这样限制了这些程序的使用范围,即如果想应用这些程序,你首先必需在你的计算机上安装一个多达几百兆的Matlab,给使用带来了不便。另外,由于Matlab采用的是逐行解释的方式来执行代码,因此运行速度比编译为exe 的二进制文件要慢,因此,利用编译器,把m文件变为二进制的exe或dll文件,会大大缩短计算时间. 尽管Matlab是一个完善的系统,但毕竟术业有专攻,各种语言的可视化编程环境(如VC,C++BuilderDelphi等)在用户界面设计和其他系统功能方面具有Matlab不能比拟的快捷和高效,因此,如何把Matlab强大的数值计算功能与可视编程集成环境IDE结合起来,开发用户操作方便、计算功能完备、运行快捷的应用程序便成为程序开发者的最大愿望。Matlab中包含了大量的矩阵运算、数值运算函数、图形操作函数、用户图形界面函数等等,用他可以象C语言一样书写函数流程,而且开发WIN图形界面的用户程序。Matlab强大的功能、方便的操作给它赢得了世界上最流行的数学软件的桂冠。难怪在网上大家奔走相告"出国前一定要把Matlab学好"。
    其他数学软件简介(也算开开眼界尽管基本上不用(除了第一个外)):
    1. Matcom:Matcom是MathTools开发的一个m文件解释器(即将Matlab中的编程语言解释为C语言),不仅可以把m文件编译为可以独立执行的exe或dll文件,而且可以自动产生C源代码,供其他高级语言编译器使用。Matcom所实现的在C语言中直接书写类似于matlab语句的功能,带来了以下几个明显的优点:一,是利用Matcom编制的程序可以在任何不安装 Matlab系统的计算机上运行; 二是运行速度比m文件快了数倍;三是实现了Matlab强大的计算功能与各种C编译器界面设计 的完美组合。我现在最喜欢用的就是在vc上作界面来方便用户操作,用Matcom库实现算法计算,这样相得益彰,用这种方法编成的程序,操作方便简洁,计算图形功能强大,速度快。
    2. Mathmatica:最令人着迷的是它的完美的符号运算功能。所谓符号运算是指它所处理的对象不仅仅是常见的数字(如12或3.14),而是一些带有代数符号的表达式,我们在代数中曾经学过运用代数的运算规则,对一个含有符号的表达式进行恒等变换,一个函数就是一种规则或者说映射,比如定义如下一个规则,我们就可以运用这法则将下式变换。而Mathematica正是具有这种类似人类思维的功能,它能不断学会并记忆各种变化规则,并把这些各式各样的变化应用到各种表达式上,无论形式多么复杂,总能得到我们想得到的带有代数符号的结果。而在C语言或其他编程语言中,对于一个符号,必须先声明,然后赋值才能使用。因此它所表达的含意是有限的,而Mathematica完全抛开了这种限制,一个符号可以表示任意对象,没有类型限制,真正实现了"代数"中的"代"字。Mathematica象一个不知疲倦的公式推导家,它能在一秒钟之内将一个复杂的函数关系复合上万次,它能在各种复杂表达式形式中找到最简单的。Mathematica对于大一、大二的同学可能是一个福音,对于大家在高等数学、线性代数中常碰到的对表达式求极限、微分、定积分、不定积分、级数、向量代数等内容在Mathematica都有内部函数来直接计算结果。当然,希望大家还是自己动手练一练公式推导的基本功,把Mathematica当作一个检验工具是无可厚非。Mathematica4.0中, 系统函数涵盖了微积分、线性代数、概率、
    几何、图论、组合数学、数论数学、特殊函数等绝大多数常用数学分支。
    3. Mathcad 8.0,Maple 5: 著名的符号运算数学软件,与Mathematica 类似,内存管
    理较好,SAS 6.12 统计学专业软件,压缩文件100多M(最权威的统计软件)。
    4. 其他:SPSS 8.0 社会科学统计软件包;Lindo/Lingo 50线性、非线性规划软件
    ;Ansys 5.4 权威的有限元法(FEM)计算软件,安装文件约200~300M ;Algo 有限元法软
    件包;Statistics 统计软件 ;Datafit 数值拟合专业软件 ;Origin 6.0 微软的数据
    分析绘图软件,可以与Excel数据库通讯;Netlib 网络并行计算库 ;Isoft 电磁仿真软
    件 ;Auto 非线性动力系统计算软件 ;Flexpde 2.10 求解偏微分方程的数值软件;Te
    cplot 8.0流速与值线流体力学 ;RATS 数值分析软件。
     
  2. 1. Matcom:Matcom是MathTools开发的一个m文件解释器(即将Matlab中的编程语言解释为C语言),不仅可以把m文件编译为可以独立执行的exe或dll文件,而且可以自动产生C源代码,供其他高级语言编译器使用。Matcom所实现的在C语言中直接书写类似于matlab语句的功能,带来了以下几个明显的优点:一,是利用Matcom编制的程序可以在任何不安装 Matlab系统的计算机上运行; 二是运行速度比m文件快了数倍;三是实现了Matlab强大的计算功能与各种C编译器界面设计 的完美组合。我现在最喜欢用的就是在vc上作界面来方便用户操作,用Matcom库实现算法计算,这样相得益彰,用这种方法编成的程序,操作方便简洁,计算图形功能强大,速度快。
     
  3. marked
     
  4. sigh~
     
  5. 现在matlab compiler也可以做:)
     
  6. 名气大的软件的确是好这没错~不过受众面而言有点阳春白雪~ 工具应该是拿来就用的

    并不是很多人会想到看到一个数学算式第一时间就想看看图形的表示,就是说很渴望理解其几何意义。
    但一旦有那样的想法的人,鉴于软件架构的本身也太庞大,计算了学习成本后,估计那些人在google后没有教程就马上放弃~所以说,大牌软件很好是没错~门槛有点高

    不过,貌似国内的教育界的思潮已经有了进步。
    在教师所使用的教学软件中,有很多简单功能的辅助教学软件。

    去这里看看或许能淘到宝贝~(当然了,从二次开发的角度,是没有帮助的~) http://www.k12zy.com/list/ruanjian/shuxue/ (中小学教育资源交流中心)
     
  7. 我以前是做机械的,基本是这样的路线 Cad Cam Cae,每个内容搞了些时吧,感觉要做顶尖的机械产品,没有最后Cae的应用是不行的,所以,当时就在搞Ansys。
    后来做投资时,感觉不用Matlab这样的东西,始终只能停留在初级阶段。
    反正工具很多,每个人应该找个最适合自己的来使用。
    就像找老婆,合适才是最好,最优秀未必最好
    :)
    感谢wj2000的分享!
     
  8. 学习
     
  9. 只能说学习了,还没有到应用这个层次。
     
  10. 很多人沉迷于数学公具的强大,却忘了交易本身,没有建立在现实基础上的模型,再好也只是空中楼阁。
     
  11. 回复 一下