1第一章matlab软件应用§1.1MATLAB简介当你要计算54283660时,你可能有两种选择,第一用计算器,第二找张草稿纸手算;当你要计算矩阵)5.1(,0),1(SSS与向量[)2(1SS)2)(1(1SS]T相乘时,你现在可能会以为没有别的办法了,只能手算了;而当你要计算305.0tesin(t+6)dt时,你可能会告诉我说:“这个问题只有编程才能解决”。现在揭晓谜底,MATLAB可以求解上面提出的3个计算式,而做到这一点并不需要草稿纸,也不需要编程。那么MATLAB是一种什么东西呢?MATLAB实际上是一种面向未来的科学计算语言,是MATrixLABratory的简称,即矩阵实验室。这种语言最初的发明原意是要专门求解矩阵计算问题,后来随着推向市场,MATLAB不仅保持了强大数值计算功能,而且随着版本升级,逐渐具有了数据图形功能,符号计算功能。§1.1.1MATLAB的发展简史LINPACK和EISPACK是美国科学界在六,七十年代发展起来的FORTRAN程序库,LINPACK用于解线性方程,EISPACK用于求解特征值问题。七十年代中期CleveMoler和他的同事在美国国家科学基金资助下研究开发了调用LINPACK和EISPACK的FORTRAN子程序库。这两个程序库代表着矩阵计算软件的最高水平。七十年代后期CleveMoler成为新墨西哥大学计算机科学系主任,他为他的学生开设线性代数课程时,想让学生能够充分利用LINPACK和EISPACK的程序库,但是面临着学生必须花时间学习FORTRAN编程,而这不是他的教学目的的两难困境。为了解决这一难题,他动手用业余时间为学生们编写出使用方便,不需要FORTRAN背景的LINPACK,EISPACK接口程序。CleveMoler把这一接口程序命名为MATLAB,意思就是“矩阵实验室”。这一接口程序被学生应用后获得欢迎,取得了意料之中的成功。CleveMoler随后几年把这一程序传播到其他大学,大家都逐渐认识到它的价值,并成为应用数学界的术语。1983年早春,身为工程师的JohnLittle在CleveMoler对斯坦福大学访问时接触到MATLAB,他眼光独到地认识到MATLAB在工程领域有极大的潜在应用天地。因此在这一年,他与Moler、SteveBangert一起合作开发出第二代专业版MATLAB,这一版不再使用FORTRAN语言作为编程核心,而是全部在C语言下重建。这一代不仅保持了MATLAB以前具有的全部数值计算能力,而且增加了数据图形功能。1984年以MATLAB为依托成立了Mathworks公司,大力把此产品推向市场,并不断推进MATLAB的研究与开发。1993年,MATLAB有了第一个Windows版本MATLAB3.5K,同年,又接连推出了在Windows3.X架构下的MATLAB4.0版和4.1版本,这两个版本与以前版本相比增加了多种广受欢迎的工具箱,在4.1版本中首2次引入了符号计算工具箱。1997年MATLAB5.0版问世,这一版本以windows95为平台,实现了真正的32位运算。在随后的几年里随着个人计算机操作系统的升级换代,MATLAB也相应的进行了一系列的版本升级。在总结MATLAB计算语言发展历程时,最成功的一点是MATLAB把自身建成了一个解释系统,对其中的函数程序执行采用一种解释执行方式,这样MATLAB就成为一个完全开放的系统,用户可以方便地看到其函数的源程序,也可以利用它开发自己的程序,甚至可以针对自己的需要创建自己的“库”,这一点就使MATLAB可以聚集全球众多MATLAB应用人员的智慧,不断增加MATLAB工具箱涉及的应用领域,也就可以不断增强自身的竞争力,从而使自身成为数值型软件市场的霸主。§1.1.2MATLAB语言的主要特点1.功能强大MATLAB语言具有极强的数值计算功能和数据可视化功能,同时还拥有很强的符号计算功能,可以很方便地解决线性代数和数据分析处理方面所遇到的多种难题,MATLAB语言所提供的动画功能和用户交互界面对多媒体套件的开发也有不小的好处。2.Windows界面简单易用当前计算机中使用的软件普遍都采用微软公司建立的Windows操作界面行业标准,MATLAB也不例外,统一的Windows操作界面,使新接触到MATLAB的人也不会有很大的应用困难,可以做到快速入门。MATLAB自身使用的数学符号和表达式等,与人们惯常的思维定式相符合,很易掌握。MATLAB还提供强大的用户帮助系统,用户在遇到难题时可以利用它来解决。3.编程简单,扩展方便MATLAB所提供的功能以函数形式完成,完全不必接触算法和内核,编程语法自然、简单,程序设计简易、方便。程序代码开放,用户可以随意扩展。4.专用工具箱众多MATLAB经过多年发展形成了一系列各具特色的专用工具箱,涉及到科学研究和工程应用的诸多领域,有进行自动控制研究的,有进行仿真实验的,有进行信号处理的,有进行振动分析的,有进行工程规划的,还有的是进行金融管理的,众多的专用工具箱把科学工作者从繁复的编程工作中解放出来,可以全身心地研究本领域的未解之谜。§1.1.3MATLAB的安装及操作界面简介MATLAB的安装方式与一般的商业软件相似,把光盘放入光驱,系统会自动运行安装程序,进入安装界面,按照安装向导一步一步的进行,完成软件认证,选择安装方式和安装路径,选择所需安装的工具箱,经过安装等待,最终完成安装过程。MATLAB安装程序在Windows桌面上创建运行程序的快捷方式,在开始菜单中创建了程序组。启动MATLAB主程序的方法有两种,第一种方法是用鼠标点击Windows桌面上创建的MATLAB图标表示的快捷方式,第二种方法是从开始菜单开始,找到程3序组,再找到MATLAB程序组,最后点击MATLAB图标,从而进入MATLAB操作界面。图1-1MATLAB操作界面图1-1就是MATLAB主程序启动后在计算机显示器上出现的操作界面。MATLAB操作界面在默认设置下由四部分组成,从上到下分别是菜单栏,工具栏,工作窗口和状态显示栏。工作窗口又由五个不同的窗口组成,默认设置状态下在工作窗口左侧显示出上下两个窗口,右侧有一个窗口。下面分别介绍各部分功能。1.菜单栏菜单栏由六个下拉式菜单组成。第一个是文件菜单,可以实现新建、打开工作文件的功能,还有首选项和打印方面的设置选项,并设置了退出主程序的方法。这里重点介绍“setpath”展开式菜单。当我们安装MATLAB完毕后,由于MATLAB是一种解释执行的函数式语言,有大量的工具箱,因此安装程序自动设置了程序执行时所需要进行搜索的路径,以其尽快寻找到程序中使用的函数文件。我们在使用MATLAB的过程中,有可能需要创建自己的函数库和工具箱,但这些程序可能不会存入安装程序预先指定的搜索路径,这时我们就要使用“setpath”这一展开式菜单,选择添加路径命令寻找到你存储文件所在目录,选择并确定,你所需目录就被指定为搜索路径,可以方便使用了。正是基于上述原因,本书建议大家在使用MATLAB前,在硬盘上建立自己的工作目录,并将其设置在搜索路径中,以利于今后程序的调用和执行。第二个下拉式菜单是编辑菜单,可以实现剪切、复制、粘贴、选择和删除等文本操作所必须的功能,还提供清空指令窗口和内存变量的命令。第三个下拉式菜单是显示菜单,可4以改变操作界面的布置形式,可以改变工作目录中可显示出的文件类型,可以指定内存变量显示内容。第四个下拉式菜单是网络菜单,给出了MATLAB出品厂商的网址,给出了产品介绍等。第五个菜单是窗口菜单,可以对当前打开的各种窗口发出显示和关闭的命令。第六个菜单是帮助菜单,这是一个对初学者有很大帮助的菜单,其中提供了完整的产品系列帮助,MATLAB自身的使用帮助,还为使用者提供了一个演示程序,可以使初学者在很短的时间内了解MATLAB所具有的强大功能。2.工具栏在工具栏中,MATLAB提供了9个常用的工具按钮和1个缩减的工作目录窗口,用来执行最常使用的功能。9个工具按钮又分为四类:第一类对应于文件菜单,提供了创建和打开文件两个按钮;第二类对应与编辑菜单,提供了剪切、复制、粘贴,撤消和重做五个按钮;第三类是用于启动Simulink动态仿真集成环境一个按钮;第四类对应于帮助菜单,提供了用于启动帮助文档的一个按钮。3.工作窗口在默认状态下右侧窗口是指令窗口,显示人机交互指令和命令执行结果,左侧两个窗口,上面一个显示工作目录,下面一个显示指令窗口中发出的各种指令。通过切换窗口夹,上面窗口可以转为内存空间浏览窗口,下面窗口可以转为当前工作目录窗口。4.状态显示栏在操作界面最下面,有一个状态显示栏,当我们把鼠标放在某个窗口夹上时,这个显示栏就会告诉你执行结果。要退出MATLAB,方法有三种:点击操作界面右上角的号,用文件菜单下的退出命令,或者可以直接在指令窗口中键入quit后回车。操作界面是MATLAB提供给用户的工作空间,MATLAB所有功能都是通过这一空间来完成,所以初学者应该熟悉操作界面内的各组成单位的操作。§1.1.4帮助指南MATLAB提供了强大的帮助功能,可以进行在线查询,这一功能不仅可以使新接触到MATLAB的人尽快熟悉此软件,而且对老用户开发某一方面的使用也有很多的益处。用户在学习MATLAB的过程中,应重视查询系统和其他帮助功能,力争做到理解,掌握和熟悉应用。打开MATLAB查询系统的方法有两种:可以利用工具栏中“帮助”按钮。可以利用“帮助”下拉式菜单中的选项。MATLAB还提供了在指令窗口中直接输入命令进行查询的方法。由于打开查询系统方式较易掌握,这里就不赘述了。下面介绍几个可以在指令窗口中使用的帮助命令的用法。1.help命令help命令可以单独使用,输入help回车,你可以得到下面内容。HELPtopics:5matlab\general-Generalpurposecommands.matlab\ops-Operatorsandspecialcharacters.……………………………………………………………………vr\vrdemos-VirtualRealityToolboxexamples.MATLAB6p5\work-(Notableofcontentsfile)Formorehelpondirectory/topic,typehelptopic.Forcommandsyntaxinformation,typehelpsyntax.它为你提供了整个在线帮助架构。但如果你想具体了解某一函数类或某一函数的功能时,单独使用help命令就不够了,可以采用下面形式:help+函数类名例如helpelfun(下面显示基本函数类的组成及功能)Elementarymathfunctions.Trigonometric.sin-Sine.sinh-Hyperbolicsine.………………………………………Exponential.exp-Exponential.log-Naturallogarithm.…………………………………….Complex.abs-Absolutevalue.angle-Phaseangle.………………………………………Roundingandremainder.fix-Roundtowardszero.floor-Roundtowardsminusinfinity.…………………………………………help+函数名例如helpbesselj(下面显示第一类贝塞尔函数的功能和使用方法)BESSELJBesselfunctionofthefirstkind.J=BESSELJ(NU,Z)istheBesselfunctionofthefirstkind,J_nu(Z).………………………………………………………………………SeealsoBESSELY,BESSELI,BESSELK,BESSELH.6Overloadedmethodshelpsym/besselj.m