matlab如何创建函数,matlab gui教程

  

  目前在科学、技术和工程领域比较流行和著名的数学软件有四个,分别是Maple、MATLAB、MathCAD和Mathematica。它们在各自的目标中都有不同的特点。   

  

  Maple V 系统   

  

     

  

  Maple V是滑铁卢大学开发的数学系统软件。它不仅具有精确的数值处理功能,还具有无与伦比的符号计算功能。Maple V的符号计算能力也是MathCAD、MATLAB等软件中符号处理的核心。Maple提供了2000多种数学函数,包括普通数学、高等数学、线性代数、数论、离散数学和图形。还提供了一套内置的编程语言,方便用户开发自己的应用,Maple本身的2000多个功能基本都是用这种语言开发的。   

  

  Maple采用字符行输入法,需要按照规定的格式输入。虽然它不同于常见的数学格式,但它灵活、方便、易懂。您可以选择字符模式和图形模式进行输出,生成的图形结果可以很容易地剪切并粘贴到Windows应用程序中。   

  

  五星数学软件,一个纯数学的巨人,如果你想既能做数学,又能应用数学(除了数值的),是最好的选择。但是这个软件的二次开发能力并不好,而且只专注于数学,并不想在其他领域发展。枫叶自己的语言很好理解,就像用英语说话一样。   

  

  优势:   

  

  符号计算非常强大,和Mathematica相比有自己的优势。很多多项式运算都比Mathematica快。有些符号积分Maple也有速度优势(尤其是不定积分),但有时返回的结果不如Mathematica的严谨和稳健。可以计算的积分类型没有Mathematica的multi-Maple那么“自适应”。利用Mathematica可以更快地解决一些问题,并得到满意的结果。枫叶更擅长(偏)微分方程。(其实Maple和Mathematica都能解一些对方解不了的特殊微分方程。)有些问题是可以分步骤解决的。Mathematica需要第三方的包,或者可以被WolframAlpha快速使用。一些常见的操作不需要命令就可以完成,缺点如下:   

  

  接口卡(基于Java swing),经典界面流畅但土。代数内置包,化简能力丰富,不等式求解,逻辑系统不如Mathematica。有些数值计算一般不如Matlab和Mathematica,有些高精度大数值计算优于Matlab,不如Mathematica的统计。MATLAB 系统有些虚弱。   

  

     

  

  MATLAB最初是一个矩阵实验室,在70年代用于为Linpack和Eispack软件包提供接口程序,用C语言编写。3.0的DOS版本出现在20世纪80年代,逐渐成为一种技术计算、视图交互系统和程序语言。MATLAB可以在十几个操作平台上运行,比较常见的是基于Windows 9X/NT、OS/2、Macintosh、Sun、Unix、Linux等平台的系统。   

  

  MATLAB程序主要由主程序和各种工具包组成,其中主程序包含数百个内部核心函数,而工具包包括复杂系统仿真、信号处理工具包、系统辨识工具包、优化工具包、神经网络工具包、控制系统工具包、分析与综合工具包、样条工具包、符号数学工具包、图像处理工具包、统计工具包等。而且5.x版本还包含了一套几十个PDF文件,从MATLAB的介绍到其他特殊应用都有详细介绍。   

  

  MATLAB是数值计算的先驱。它以矩阵为基本数据单位,已成为线性代数、数理统计、自动控制、数字信号处理和动态系统仿真应用中的首选工具。也是科研人员、大学生、研究生进行科学研究的有效工具。MATLAB在输入方面也非常方便,可以使用内部编辑器或者其他任何字符处理器,还可以结合Word6.0/7.0,在Word页面中直接调用MATLAB的大部分函数,让Word拥有特殊的计算能力。   

  

  优势:   

  

  线性代数和数值计算的优势是显著的,矢量化运算往往比同类软件更快,而且有很多工具箱,仿真、图像处理、信号处理、金融、统计、优化.编程语言简单易学,编辑调试环境好,方便构建GUI。缺点:   

  

  它本身不支持符号计算(符号计算远不止是推导公式)。新版mupad内核不错,但明显远远落后于Mathematica和Maple。它在深度、广度和速度上都特别慢,比Mathematica和Maple以及常见的脚本语言都慢。在一些数学领域相对较弱,比如数论和图论。离散数学之类的高精度和大数的慢计算(比如精确计算100万阶乘或者的前500万位)在工具箱之间的配合不是很好。界面不太好看(新R2013a的Ribbon界面不错)。默认图不美观,参差不齐,系统函数命名不够规范。MathCAD 系统   

an.lamuhao.com/pic/img.php?k=matlab如何创建函数,matlab gui教程3.jpg">

  

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 系统

  

  

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。

相关文章