数学软件与实验----matlab科学计算与仿真推荐参考书科学计算与仿真推荐参考书matlab是什么一个可视化的计算程序,广泛使用于从个人计算机到超级计算机范围内的各种计算机上包括命令控制、可编程,上百个预先定义命令和函数有许多强有力的命令,能完成大量的高级矩阵处理强有力的二维、三维图形工具能与其他程序一起使用25个(不断增加中)不同的工具箱应用于特殊的应用领域工业研究与开发的有力工具数学教学,尤其线代,数值分析,科学计算方面的教研工具电子学,控制理论,物理学等工程科学方面的教研工具经济学,化学和生物学等有计算问题的所有领域中的教学与研究名字取自矩阵实验室(matrixlaboratory)matlab不是什么不是万能的解决工具不是最高性能的编程语言受计算条件限制,不能解决超大型实际问题不能解决工具箱之外的问题种类--需要编写接口、算法甚至工具箱MATLAB的名称源自MatrixLaboratory,它是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算丶控制系统丶信息处理等领域的分析丶仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高产品自身的竞争能力。MATLABCompiler是一种编译工具,它能够将那些利用MATLAB提供的编程语言——M语言编写的函数文件编译生成为函数库丶可执行文件COM组件等等。这样就可以扩展MATLAB功能,使MATLAB能够同其他高级编程语言例如C/C++语言进行混合应用,取长补短,以提高程序的运行效率,丰富程序开发的手段。目前MATLAB产品族可以用来进行:•·数值分析·数值和符号计算·工程与科学绘图·控制系统的设计与方针·数字图像处理·数字信号处理·通讯系统设计与仿真·财务与金融工程MATLAB是MATLAB产品家族的基础,它提供了基本的数学算法,例如矩阵运算丶数值分析算法,MATLAB集成了2D和3D图形功能,以完成相应数值可视化的工作,并且提供了一种交互式的高级编程语言——M语言,利用M语言可以通过编写脚本或者函数文件实现用户自己的算法。利用M语言还开发了相应的MATLAB专业工具箱函数供用户直接使用。这些工具箱应用的算法是开放的可扩展的,用户不仅可以查看其中的算法,还可以针对一些算法进行修改,甚至允许开发自己的算法扩充工具箱的功能。目前MATLAB产品的工具箱有四十多个,分别涵盖了数据获取丶科学计算丶控制系统设计与分析丶数字信号处理丶数字图像处理丶金融财务分析以及生物遗传工程等专业领域。Simulink是基于MATLAB的框图设计环境,可以用来对各种动态系统进行建模丶分析和仿真,它的建模范围广泛,可以针对任何能够用数学来描述的系统进行建模,例如航空航天动力学系统丶卫星控制制导系统丶通讯系统丶船舶及汽车等等,其中了包括连续丶离散,条件执行,事件驱动,单速率丶多速率和混杂系统等等。Simulink提供了利用鼠标拖放的方法建立系统框图模型的图形界面,而且Simulink还提供了丰富的功能块以及不同的专业模块集合,利用Simulink几乎可以做到不书写一行代码完成整个动态系统的建模工作。Stateflow是一个交互式的设计工具,它基于有限状态机的理论,可以用来对复杂的事件驱动系统进行建模和仿真。Stateflow与Simulink和MATLAB紧密集成,可以将Stateflow创建的复杂控制逻辑有效地结合到Simulink的模型中。在MATLAB产品族中,自动化的代码生成工具主要有Real-TimeWorkshop(RTW)和StateflowCoder,这两种代码生成工具可以直接将Simulink的模型框图和Stateflow的状态图转换成高效优化的程序代码。利用RTW生成的代码简洁丶可靠丶易读。目前RTW支持生成标准的C语言代码,并且具备了生成其他语言代码的能力。整个代码的生成丶编译以及相应的目标下载过程都是自动完成的,用户需要做得仅仅使用鼠标点击几个按钮即可。MathWorks公司针对不同的实时或非实时操作系统平台,开发了相应的目标选项,配合不同的软硬件系统,可以完成快速控制原型(RapidControlPrototype)开发丶硬件在回路的实时仿真(Hardware-in-Loop)丶产品代码生成等工作。另外,MATLAB开放性的可扩充体系允许用户开发自定义的系统目标,利用Real-TimeWorkshopEmbeddedCoder能够直接将Simulink的模型转变成效率优化的产品级代码。代码不仅可以是浮点的,还可以是定点的。MATLAB开放的产品体系使MATLAB成为了诸多领域的开发首选软件,并且,MATLAB还具有300余家第三方合作伙伴,分布在科学计算丶机械动力丶化工丶计算机通讯丶汽车丶金融等领域。接口方式包括了联合建模丶数据共享丶开发流程衔接等等。MATLAB结合第三方软硬件产品组成了在不同领域内的完整解决方案,实现了从算法开发到实时仿真再到代码生成与最终产品实现的完整过程。主要的典型应用包括:·控制系统的应用与开发——快速控制原型与硬件在回路仿真的统一平台dSPACE·信号处理系统的设计与开发——全系统仿真与快速原型验证,TIDSP丶Lyrtech等信号处理产品软硬件平台·通信系统设计与开发——结合RadioLab3G和Candence等产品·机电一体化设计与开发——全系统的联合仿真,结合Easy5丶Adams等Matlab课程的组织结构•绪论•基础知识•数学运算•基本编程•数据显示及存取•符号计算•数值计算•图形用户界面GUI•Simulink仿真•外部接口第一章概述MATLAB将计算、可视化和编程等功能集于一个易于使用的环境,并遇有如下特点:功能强大;简单易学;编程效率高。1.1MATLAB简介及安装1.MATLAB的发展历程2.MATLAB的特点3.MATLAB的安装1.MATLAB的发展历程1980年,美国新墨西哥大学计算机科学系主任Cleve着手编写供学生使用的子程序接口程序,取名为MATLAB;1984年,推出了MATLAB第一个商业版本;1992年,推出MATLAB4.0版;1997年,推出MATLAB5.0版;2000年,推出MATLAB6.0版;2004年,推出MATLAB7.0版;2008年,推出MATLAB7.6版;2012年,推出MATLABR2012A版2.MATLAB的特点开发环境编程数值处理图形化图形用户界面文件I/O和外部应用程序接口3.MATLAB的安装MATLAB对PC系统的要求1.2MATLAB的目录结构安装MATLAB后,在安装目录下将包含如下文件夹。续表1.3MATLAB的工作环境1.菜单和工具栏2.命令窗口3.历史命令窗口4.当前工作目录窗口5.工作空间窗口本节介绍MATLAB的工作界面和基本的操作方法。MATLAB的工作界面主要包括:菜单;工具栏;命令窗口;历史命令窗口;当前工作目录窗口;工作空间窗口。MATLAB工作环境1.菜单和工具栏这里只简单介绍默认情况下的菜单和工具栏。【File】菜单主要用于对文件的处理。【Edit】菜单主要用于复制、粘贴等操作,与一般Windows程序的类似,在此不作详细介绍。【Debug】菜单用于调试程序。【Desktop】菜单用于设置主窗口中需要打开的窗口。【Window】菜单列出当前所有打开的窗口。【Help】菜单用于选择打开不同的帮助系统。当用户单击“CurrentDirectory”窗口时,使得该窗口成为活动窗口,同时增加一个如下图所示的菜单【View】,用于设置如何显示当前目录下的文件。当用户单击“Workspace”窗口时,使得该窗口成为活动窗口,同时增加如下图所示的菜单【View】和【Graphics】。2.命令窗口命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。MATLAB命令窗口中的“”为运算提示符,表MATLAB处于准备状态。当在提示符后输入一段程序或一段运算式后【Enter】键,MATLAB会给出计算结果,并再次进入准备状态(所得结果将被保存在工作空间窗口中)。单击命令窗口右上角的“”按钮,可以使命令窗口脱离主窗口而成为一个独立的窗口。3.历史命令窗口主要用于记录所有执行过的命令;保留自安装后所有使用过命令的历史记录,并标明使用时间;可以通过用鼠标双击某一历史命令来重新执行该命令;可以成为一个独立的窗口。通过上下文菜单,可删除或粘贴历史记录;可为选中的表达式或命令创建一个M文件;可为表达式或命令创建快捷按钮。4.当前工作目录窗口当前工作目录是指MATLAB运行文件时的目录。只有在当前工作目录或搜索路径下的文件、函数可以被运行或调用。如下图所示。5.工作空间窗口工作空间窗口将显示目前内存中所有的MATLAB变量的变量名、数据结构、字节数以及类型等信息,如下图所示。1.4MATLAB的通用命令1.常用命令2.输入内容的编辑3.标点4.搜索路径与扩展通用命令是MATLAB中经常使用的一组命令,这些命令可以用来管理目录、函数、变量、工作空间、文件和窗口等。下面对这些命令进行介绍。1.常用命令常用命令的功能2.输入内容的编辑在命令窗口中,MATLAB提供了控制光标位置和进行简单编辑的键盘按键,部分常用的键盘按键及其功能如下表所示。3.标点在MATLAB中,一些标点符号被赋予了特殊的功能,如下表所示。4.搜索路径与扩展用户自己书写的函数有可能并没有保存在搜索路径下。要解决这个问题,只需把程序所在的目录扩展成MATLAB的搜索路径即可。(1)查看MATLAB的搜索路径选择MATLAB主窗口中的【File】|【SetPath】菜单,进入【设置搜索路径】对话框。通过该对话框可为MATLAB添加或删除搜索路径。在命令窗口中输入path或genpath可得到MATLAB的所有搜索路径,具体代码如下:(2)设置MATLAB的搜索路径方法一:在MATLAB命令窗口中输入editpath或pathtool命令或通过【File】|【SetPath】菜单,进入“设置搜索路径”对话框,通过该对话框编辑搜索路径。方法二:在命令窗口执行“path(path,‘D:\Study’)”,然后通过“设置搜索路径”对话框查看“D:\Study”是否在搜索路径中。方法三:在命令窗口执行“addpathD:\Study-end”,将新的目录加到整个搜索路径的末尾。如果将end改为begin,可以将新的目录加到整个搜索路径的开始。1.5MATLAB的帮助系统1.命令窗口查询帮助系统2.联机帮助系统3.联机演示系统MATLAB为用户提供了非常完善的帮助系统。下面分别介绍MATLAB的三类帮助系统。1.命令窗口查询帮助系统常见的帮助命令2.联机帮助系统用户可以通过下述方法进入MATLAB的联机帮助系统。直接单击MATLAB主窗口中的“”按钮;选中Help菜单的前4项中的任意一项;在命令窗口中执行helpwin、helpdesk或doc。3.联机演示系统可以通过以下方式打开联机演示统。选择MATLAB主窗口菜单的【Help】|【Demos】选项;在命令窗口输入demos;直接在帮助页面上选择Demos页。020406080100-40-2002040Magnitude(dB)Frequency(Hertz)00.20.40.60.81-1-0.500.51WaveformTime(Seconds)Clickanddragwaveformtochangefundamentalfrequencyandamplitude1.6MATLAB示例下面以一个简单的例子展示如何使用MATLAB进行简单的数值计算。习题1.简述MATLAB的主要功能。2.在命令窗口输入“w=3+2