购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 MATLAB概述

在数值计算方面,MATLAB在数学类科技应用软件中首屈一指,与Mathematica、Maple并称为三大数学软件。MATLAB可以进行矩阵运算、绘制函数和数据图像、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。

1.1.1 MATLAB系统的发展历程

MATLAB的英文全称是MATrix LABoratary,原意为矩阵实验室,最初是一种专门用于矩阵数值计算的软件。

20世纪70年代中期,新墨西哥大学计算机科学系的Cleve Moler博士和他的同事在美国国家科学基金的资助下研究开发了调用LINPACK和EISPACK的FORTRAN子程序库。LINPACK是解线性方程的FORTRAN程序库,EISPACK则是解特征值问题的程序库。这两个程序库代表着当时矩阵计算的最高水平。20世纪70年代后期,时任美国新墨西哥大学计算机科学系主任的Cleve Moler教授为了减轻学生的编程负担,特意编写了使用方便的LINPACK和EISPACK的接口程序,取名为MATLAB。在此后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传,同时MATLAB也成了应用数学界的术语。

1983年早春,Cleve Moler到斯坦福大学访问,身为工程师的John Little意识到MATLAB具有潜在的广阔应用领域,应该在工程计算方面有所作为,于是同Cleve Moler及Steve Bangert合作开发了第二代专业版MATLAB。从这一代开始,MATLAB的核心就采用C语言编写,也是从这一代开始,MATLAB不仅具有数值计算功能,而且具有了数据可视化功能。

1984年,MathWorks公司成立,把MATLAB推向市场,并继续对MATLAB进行研制和开发。MATLAB在市场上的出现为各国科学家开发本学科相关软件提供了基础。例如,在MATLAB问世不久,原来控制领域的一些封闭式软件包(如英国的UMIST、瑞典的LUND和SIMNON、德国的KEDDC)就纷纷被淘汰,而改以MATLAB为平台加以重建。

到20世纪90年代初期,在国际上30多个数学类科技应用软件中,MATLAB在数值计算方面独占鳌头,而Mathematica和Maple则分居符号计算软件的前两名。Mathcad因其提供计算、图形、文字处理的统一环境而深受学生欢迎。

1993年,MATLAB的第一个Windows版本问世。同年,支持Windows 3.x的具有划时代意义的MATLAB 4.0推出。与以前的版本相比,MATLAB 4.0做了很大改进,特别是增加了Simulink、Control、Neural Network、Optimization、Signal Processing、Spline、Robust Control等工具箱,使得MATLAB的应用范围更加广泛。

同年,MathWorks公司又推出了MATLAB 4.1,首次开发了Symbolic Math符号运算工具箱。它的升级版本MATLAB 4.2c在用户中得到广泛的应用。

1997年夏,MathWorks公司推出了Windows 95下的MATLAB 5.0和Simulink 2.0版本。该版本在继承MATLAB 4.2c和Simulink 1.3版本功能的基础上,实现了真正的32位运算,数值计算更快,图形表现更丰富有效,编程更简洁直观,用户界面十分友好。

2000年下半年,MathWorks公司推出了MATLAB 6.0(R12)的试用版,并于2001年推出了正式版。紧接着,2002年又推出了MATLAB 6.5(R13)版本,并升级Simulink到5.0版本。

2004年秋,MathWorks公司又推出了MATLAB 7.0(R14) Service Pack1,新的版本在原版本的基础上做了大幅改进,同时对很多工具箱做了相应的升级,使得MATLAB功能更强,应用更简便。

从2006年开始,MATLAB分别在每年的3月和9月进行两次产品发布,每次发布都涵盖产品家族中的所有模块,包含已有产品的新特性和bug修订,以及新产品的发布。其中,3月发布的版本被称为“a”,9月发布的版本被称为“b”,如2006年的两个版本分别是R2006a和R2006b。值得一提的是,在2006年3月1日发布的R2006a版本中,增加了两个新产品模块(Builder for .net和SimHydraulics),增加了对64位Windows的支持。其中,Builder for .net(也就是.net工具箱)扩展了MATLAB Compiler的功能,集成了MATLAB Builder for COM的功能,可以将MATLAB函数打包,使网络程序员可以通过C#、VB.net等语言访问这些函数,并将源自MATLAB函数的错误作为一个标准的管理异常来处理。

2020年3月,MathWorks发布了MATLAB R2020a版本(以下简称MATLAB 2020)和Simulink产品系列的Release 2020(R2020)版本。2021年3月,MathWorks发布了MATLAB和Simulink产品系列的最新版本R2021a。

时至今日,经过MathWorks公司的不断升级,MATLAB已经发展成为适合多学科、多种工作平台的功能强大的大型软件。在欧美高校,MATLAB已经成为诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等高级课程的基本教学工具,也是相关专业大学生、硕士生、博士生必须熟练使用的基本工具。在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上(尤其是信息科学刊物),都可以看到MATLAB的应用。在研究单位和工业部门,MATLAB被认为是进行高效研究、开发的首选软件工具。例如,美国National Instruments公司的信号测量、分析软件LabVIEW,Cadence公司的信号和通信分析设计软件SPW等,或者直接建立在MATLAB之上,或者以MATLAB为主要支撑;又如,HP公司的VXI硬件、TM公司的DSP、Gage公司的各种硬卡和仪器等都接受MATLAB的支持。可以说,无论你从事工程技术领域的什么专业,都能在MATLAB里找到合适的功能。

1.1.2 MATLAB的特点

MATLAB自产生之日起,就以其强大的功能和良好的开放性而在科学计算诸多软件中独占鳌头。学会MATLAB可以方便地处理诸如矩阵变换及运算、多项式运算、微积分运算、线性与非线性方程求解、常微分方程求解、偏微分方程求解、插值与拟合、统计及优化等问题。

在进行数学计算时,最难处理的就是算法的选择,这个问题利用MATLAB工具可以轻松解决。MATLAB中许多功能函数都带有算法的自适应能力,且算法先进,大大解决了用户的后顾之忧,同时也大大弥补了MATLAB程序因为非可执行文件而影响其速度的缺陷。另外,MATLAB提供了一套完善的图形可视化功能,为用户展示自己的计算结果提供了广阔的空间。

无论一种语言的功能多么强大,如果语言本身非常艰深,那么它绝对不是成功的语言。而MATLAB是成功的,它允许用户以数学形式的语言编写程序,比BASIC、FORTRAN和C语言等语言更接近于书写计算公式的思维方式。

MATLAB能发展到今天这种程度,其可扩充性和可开发性起着不可估量的作用。MATLAB本身就像一个解释系统,以一种解释执行的方式对其中的函数程序进行执行。这样的最大好处是MATLAB完全成了一个开放的系统,用户可以方便地查看函数的源程序,也可以方便地开发自己的程序,甚至创建自己的工具箱。另外,MATLAB还可以方便地与FORTRAN、C等语言链接,以充分利用各种资源。

有必要特别强调的是,MATLAB程序文件是纯文件,任何文字处理软件都能对其进行编写和修改,从而使得程序易于调试,人机交互性强。

1.1.3 MATLAB的主要功能

随着MathWorks公司对MATLAB软件的不断升级,目前的MATLAB已是功能相当完善的一款优秀的集数据计算、程序设计、图形可视化、建模仿真等于一体的软件。下面主要介绍MATLAB较为常用的一些功能。

1.数据计算

MATLAB数据计算功能强大,基于矩阵的计算机制使其在线性代数、矩阵分析、数值分析、方程求解、傅里叶分析、数值微积分等多个方面得到良好的应用,且易获得精确可靠的结果。

2.符号计算

MATLAB提供了专门的工具箱用于符号运算,使用户可以直接对字符串符号进行分析计算,从而进一步扩展了计算机解决数学问题的能力。符号计算在公式推导、逻辑计算等方面具有重要的应用。

3.图形功能

MATLAB提供了数据的可视化功能,包括常用二维和三维图形的绘制,用户可以方便地绘制各种图形。同时,使用MATLAB的绘制功能,还可以方便地编辑图形,设置相应的图形注释等,进而优化绘制的图形。

4.建模仿真

MATLAB是一款优秀的建模仿真软件,用户利用MATLAB的该项功能可以很方便地模拟现实。MATLAB的SIMULINK部分是仿真领域常用的工具,可以较为真实地模拟实际条件或者一些不可能实现的条件下的场景,减少实现真实场景不必要的开支。

5.程序设计

MATLAB的程序设计功能完善,为面向对象的程序设计机制。MATLAB包含了大量的函数库,供用户直接调用。同时,MATLAB程序设计功能为用户提供了方便的调试工具,在程序出错后,也会出现详细的错误信息。

6.界面设计

MATLAB软件提供了方便的界面设计功能,用户可以利用该功能完成相应的界面设计。MATLAB中的图形界面设计多为界面操作,无须大量复杂的算法。MATLAB的界面设计功能可以进一步提高MATLAB所设计程序的可操作性。

7.与其他程序的集成与扩展

MATLAB软件与其他编程语言具有较好的链接能力,其应用接口编程技术为其他编程语言与MATLAB软件的交互使用提供了良好的应用平台。MATLAB软件还支持与常用的Office操作软件的交互使用,可以在Word或Excel中直接使用MATLAB的各项功能。

1.1.4 MATLAB的应用领域

MATLAB将高性能的数值计算、可视化和编程集成在一个易用的开放式环境中,在此环境下,用户可以按照符合其思维习惯的方式和熟悉的数学表达形式书写程序,并且可以非常容易地对其功能进行扩充。除具备卓越的数值计算能力之外,MATLAB还具有专业的符号计算和文字处理、2D和3D图形绘制、可视化建模仿真和实时控制等功能。其典型的应用主要包括如下几个方面:

数值分析和计算。

算法开发。

数据采集。

系统建模、仿真和原型化。

数据分析、探索和可视化。

工程和科学绘图。

数字图像处理。

应用软件开发,包括图形用户界面的建立。

MATLAB Compiler是一种编译工具,它能够将MATLAB编写的函数文件生成函数库或可执行文件COM组件等,以方便其他高级语言(如C++、C#等)进行调用,不仅扩展了MATLAB的应用范围,还将MATLAB的开发效率与其他高级语言的运行效率结合起来,取长补短,丰富了程序开发的手段。

Simulink是基于MATLAB的可视化设计环境,可以用来对各种系统进行建模、分析和仿真。它的建模范围面向任何能够使用数学来描述的系统,如航空动力学系统、航天控制制导系统、通信系统等。Simulink提供了利用鼠标拖放的方法建立系统框图模型的图形界面,还提供了丰富的功能模块,利用它几乎可以不用书写代码就能完成整个动态系统的建模工作。

此外,MATLAB还有基于有限状态机理论的Stateflow交互设计工具以及自动化的代码设计生成工具Real-Time Workshop和Stateflow Coder。 WzQm51E0lNxZnDYVsgGnIWnyHBA4A/WOevbYhId2/Xk1BABGnF4CiN+Bro8Fw8gQ

点击中间区域
呼出菜单
上一章
目录
下一章
×