1.1 MATLAB简介
MathWorks公司创立于1984年,总部位于美国马萨诸塞州内迪克,是领先的为工程师和科学家提供数学计算软件的供应商,其旗下的产品包括MATLAB产品家族、Simulink产品家族及PolySpace产品家族。
1.1.1 MathWorks及其产品概述
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是一种用于算法开发、数据可视化、数据分析及数值计算的高级技术计算语言和交互式环境。MATLAB的应用范围非常广,包括信号和图像处理、通信、控制系统设计、测试和测量、财务建模和分析,以及计算生物学等众多应用领域。附加的工具箱扩展了MATLAB的使用环境,以解决这些应用领域内特定类型的问题。
Simulink是一个用于对动态系统进行多域建模和模型设计的平台。它提供了一个交互式图形环境,以及一个自定义模块库,并可针对特定应用加以扩展,可应用于控制系统设计、信号处理和通信及图像处理等众多领域。
PolySpace提供代码验证,可确保消除源代码中的溢出、除零、数组访问越界及其他运行错误。此类产品可以证明源代码中不存在某些运行错误,使工程师能够选择并跟踪嵌入式软件质量的指标和阈值,帮助软件团队更好地定义质量目标,并更快地实施。该软件已经在汽车、航空、国防及工业自动化和机械行业中得到广泛应用。
1.1.2 MATLAB与其他数学软件
除MATLAB外,其他广泛应用的数学软件还有很多,著名的有Mathematica和Maple。
Mathematica是一个综合的数学软件环境,具有数值计算、符号推导、数据可视化和编程等多种功能,在符号计算领域有很高的知名度。整个Mathematica软件分为两大部分:Kemel和FrontEnd。Kemel是软件的计算中心,而FrontEnd负责与用户交流,两者有一定的独立性。Mathematica的表达式含义十分丰富,几乎包含一切要处理的对象。
Maple是当今世界上较优秀的几款数学软件之一。它以友善的使用环境、强大的符号处理、精确的数值计算、灵活的图形显示、高效的编程功能为越来越多的教师、学生和科研人员所喜爱,并成为他们进行数学处理的首选工具。由于Maple软件原是为符号计算而设计的,因此其在数值计算与绘图方面的运算速度要比MATLAB慢。
MATLAB作为和Mathematica、Maple并列的三大数学软件之一,其强项就是强大的矩阵计算及仿真能力。MathWorks公司每次在发布MATLAB的同时,也会发布仿真工具Simulink。
在欧美国家,很多大公司在将产品投入实际使用之前都会进行仿真试验,他们主要使用的仿真软件就是Simulink。MATLAB提供了自己的编译器,全面兼容C++及Fortran两大语言。因此,MATLAB成为工程师、科研工作者最好的语言、最好的工具。
1.1.3 MATLAB的主要特点
MATLAB以其良好的开放性和运行的可靠性,已经成为国际控制界公认的标准计算软件。在国际上30多个数学类科技应用软件中,MATLAB在数值计算方面独占鳌头。
(1)计算功能强大。
(2)绘图非常方便。在Fortran和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。而且,MATLAB还具有较强的编辑图形界面的能力。
(3)功能强大的工具箱是MATLAB的另一特色。MATLAB包含两部分:核心部分和各种可选的工具箱。核心部分有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。
功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能及与硬件实时交互功能。功能性工具箱用于多种学科。
学科性工具箱的专业性比较强,这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无须编写自己学科范围内的基础程序,即可直接进行高、精、尖的研究。
除内部函数外,MATLAB的所有核心文件和工具箱文件都是可读可写的源文件,用户可通过对源文件进行修改及加入自己的文件构成新的工具箱。
(4)帮助功能完整。自带的帮助功能是非常强大的帮助手册。
1.1.4 MATLAB系统的组成
MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成。
1.MATLAB开发环境
MATLAB开发环境是一套方便用户使用MATLAB函数和文件的工具集,其中许多工具是图形化用户接口。MATLAB是一个集成化的工作区,可以让用户输入、输出数据,并提供了M文件的集成编译和调试环境。MATLAB包括MATLAB命令行窗口、M文件编辑调试器、MATLAB工作区和在线帮助文档等。
2.MATLAB数学函数库
MATLAB数学函数库包括大量的计算算法,从基本运算(如加法)到复杂算法(如矩阵求逆、贝济埃函数、快速傅里叶变换等),体现了其强大的数学计算功能。
3.MATLAB语言
MATLAB语言是一个高级的基于矩阵/数组的语言,包括程序流控制、函数、脚本、数据结构、输入/输出、工具箱和面向对象编程等特色。用户既可以用它来快速编写简单的程序,也可以用它来编写庞大复杂的应用程序。
4.MATLAB图形处理系统
图形处理系统使得MATLAB能方便地图形化显示向量和矩阵,而且能对图形添加标注及进行打印。MATLAB包括强力的二维及三维图形函数、图像处理和动画显示等函数。
5.MATLAB应用程序接口
MATLAB应用程序接口可以使MATLAB方便地调用C和Fortran程序,以及在MATLAB与其他应用程序间建立客户/服务器关系。
1.1.5 MATLAB应用程序简介
应用程序(也称工具箱)是MATLAB的重要部分,它是MATLAB强大功能得以实现的载体和手段,是对MATLAB基本功能的重要扩充。
○提示
MATLAB会不定时更新应用程序,读者可到http://www.mathworks.com/products中了解MATLAB应用程序的最新动态。
应用程序又可以分为功能性应用程序和学科应用程序。功能性应用程序用来扩充MATLAB的符号计算、可视化建模仿真,以及与硬件实时交互等功能,能用于多种学科;学科应用程序是专业性比较强的应用程序,控制工具箱、信号处理与通信工具箱等都属于此类。
在MATLAB R2020a版本中应用程序如图1-1所示。下面对科学计算中常用的应用程序所包含的主要内容进行简单介绍。
1.样条工具箱
● 分段多项式和B样条。
● 样条的构造。
● 曲线拟合及平滑。
● 函数微积分。
2.优化工具箱
● 线性规划和二次规划。
● 求函数的最大值和最小值。
● 多目标优化。
● 约束条件下的优化。
● 非线性方程求解。
3.偏微分方程工具箱
● 二维偏微分方程的图形处理。
● 几何表示。
● 自适应曲面绘制。
● 有限元方法。
图1-1 展开的应用程序