1、MATLAB 入门 介绍,MATLAB是Math works公司于1982年推出的一套高性能数值计算的可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成一个使用方便、界面友好的用户环境。在这个环境下,用户只需简单地列出数学表达式,结果便可以数值或图形方式显示在计算机屏幕上。,是以矩阵计算为基础的、交互式的科学和工程计算软件,MATLAB 发展历史,Matlab,20世纪70年代后期,雏形,Cleve Moler博士开发的接口程序,1983年春,John Little敏锐地觉察到MATLAB在工程领域的广阔前景,于是与Cleve Moler一起开发了第二代专业版,发展,1984年
2、,正式面世,Cleve Moler和John Little成立了MathWorks公司,正式把MATLAB推向市场,至今,不断完善,MATLAB已经发展成为适合多学科、多种工作平台的功能强大的大型软件,MATLAB 发展历史,MATrix LABoratory 的缩写,MATLAB的特点,编程效率高,计算功能强,易于扩展,使用简便,附带30多个工具箱:优化工具箱、统计工具箱、符号运算工具箱等等,Matlab产品组的功能 数据分析数值和符号计算工程与科学绘图控制系统设计 数字图像信号处理 财务工程建模、仿真、原型开发 图形用户界面设计,例、用一个简单命令求解线性方程组3x1+ x2 - x3 =
3、 3.6x1+2x2+4x3 = 2.1-x1+4x2+5x3 = -1.4 A=3 1 -1;1 2 4;-1 4 5;b=3.6;2.1;-1.4; x=Ab x =1.4818-0.46060.3848,A*x=b,例、用简短命令计算并绘制在0x6范围内的sin(2x)、sinx2 、sin2x。x=linspace(0,6); y1=sin(2*x);y2=sin(x.2);y3=(sin(x).2; plot(x,y1,x, y2,x, y3),linspace(x1,x2) 等间隔的100个数据点 linspace(x1,x2,N) 等间隔的N个数据点,以下简单介绍一下MATLAB
4、的以下特点:,1、语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,因此用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上进行的。,2、运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。,3、具有结构化的控制语句(如for循环、while循环、break语句和if语句),和面向对象编程的特性。,4、语法限制不严格,程序设计自由度大。例如,在MATLA
5、B里,用户无需对矩阵预定义就可使用。,5、程序的可移植性很好,基本上不作修改就可以在各种型号的计算机和操作系统上运行。,6、图形功能强大。在FORTRAN和C语言与眼里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。,7、功能强大的工具箱。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个内部函数。其工具箱又可分为两类:功能性工具箱和学科性工具箱。这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,就可以直接进行高、精、尖的研究。,8、源程序的开放性。开放性也许是MATLAB
6、最受人们欢迎的特点。除内部函数以外,MATLAB的所有核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。,9、MATLAB的缺点是,和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,程序为解释执行,所以速度较慢。,总结: 它将一个优秀软件的易用性与可靠性、通用性与专业性 、一般目的的应用与高深的科学技术应用有机的相结合 MATLAB是一种直译式的高级语言,比其它程序设计语言容易,MATLAB已经不仅仅是一个“矩阵实验室”了,它集科学计算、图象处理;声音处理于一身,并提供了丰富的Windows图形界面设计方法 MAT
7、LAB语言是功能强大的计算机高级语言, 它以超群的风格与性能风靡全世界, 成功地应用于各工程学科的研究领域,MATLAB在美国已经作为大学工科学生必修的计算机语言之一 (C, FORTRAN, ASSEMBLER, MATLAB) 近年来,MATLAB语言已在我国推广使用,现在已应用于各学科研究部门和许多高等院校,Matlab的运行和工作界面,一、MATLAB的工作界面,MATLAB的工作界面主要包括6个窗口,分别为主窗口、命令窗口、命令历史记录窗口、当前目录窗口、工作空间窗口和工作台及工具箱窗口。,1、主窗口:主窗口除了兼容5个子窗口外,还主要包含标题栏、6个菜单和一个工具条。,2、命令窗口
8、:命令窗口是MATLAB极为重要的部分,也是用户使用最频繁的部分。用户的数据输入和结果运算,一般都在此窗口中进行。,4、工作台及工具箱窗口:在MATLAB的工作台及工具箱窗口中,可以看到已经安装的各种工具箱,双击选中的工具箱或单击前面的“+”号,就能看到工具箱中的各项功能。,5、当前目录窗口:在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。,6、工作空间窗口:在该窗口中显示所有目前内存中存放的变量明、变量存储数据的维数、变量存储的字节数和变量类型说明。新打开MATLAB时,只能看到一个变量ans,这是一个由系统提供的默认输出变量。,3、历史记录窗口:在默认设置
9、下,历史记录窗口会自动保留自安装起所有用过的命令和变量的历史记录,并且还注明了使用时间,从而方便了用户查询。,二、MATLAB的帮助系统,MATLAB的强大帮助系统是其他科学计算软件无法比拟的信息资源中心。它的帮助系统大体可以分为4类:联机帮助系统、联机演示系统、命令查询系统和远程帮助系统。,通过选择Help下拉菜单中的帮助选项进入联机帮助系统,在联机帮助窗口的帮助向导页面中含有4个可供选择的表单窗口,分别用来显示帮助主题、帮助索引、演示系统和查询帮助等。,打开该系统可以通过在联机帮助系统中选择演示系统表单窗口,然后在其中选择相应的演示模块。在左侧的Demos表单窗口中包含一个开始说明和四个目
10、录。四个目录分别包含MATLAB主程序相关的演示模块、工具箱演示模块、Simulink演示模块和模块集演示模块。,1、联机帮助系统,2、联机演示系统,3、命令查询系统,三、MATLAB的运行方法,1、对于简单的数值计算,如同使用计算器,直接输入数值和运算符,立即从屏幕上获得结果。,2、也可先对变量赋值,然后再输入由变量构成的表达式,也可立即获得结果。,3、对于较为复杂的问题采用编程的方法来解决,诸如含有判断、循环、迭代、递归等算法的问题。,Matlab常量、变量和表达式,一、MATLAB中的常量,MATLAB中提供了整数、实数、复数和字符四种类型数据。对应的常量类型也有上述四种。实数在屏幕显示
11、时默认的小数位数为4位,若要改变实数的显示格式,可通过执行命令: Format “格式”,二、变量,MATLAB变量的命名遵守如下规则:,(2)变量名区分大小写;,(3)变量名最多不超过19个字符;,(1)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变 量名中不允许使用标点符号和空格。,例如:,6x、yr、o p为非法变量。ui_y、y9oi、yu都是合法变量。,MATLAB还提供了一些固有变量,即有特殊含义的内部常数:,ans用于结果的缺省变量名。 pi圆周率。 i或j表示虚数单位 inf无穷大数,如1/0,三、函数,1、标量函数:,三角、指数、对数、取整(fix)、开方(sqr
12、t)等基本函数,作用于标量或矩阵(数组)的每一元素,2、向量函数:,max, min, sum, length, ,作用于(列或行)向量或矩阵的每一列向量,3、矩阵函数,构造矩阵的,zeros, ones, eye, rand, diag, triu, tril, ,矩阵计算的,size, det, rank, inv, eig, trace, norm, ,四、算术运算符,矩阵的输入和运算,一、矩阵的输入,1、一维矩阵的输入,(1)逐个输入法:如果数据元素之间均用空格(或逗号)隔开,该向量称为行向量;如果数据元素之间均用分号隔开,该向量称为列向量。,(2)冒号生成法:x=first:incr
13、ement:last,表示包含由first开始,步长为increment,到last结束的整数组成的行向量。,(3)利用内部函数:x=linspace(first,last,n),创建从first开始,到last结束,有n个元素的均匀间隔的行向量。,例:x=2 3 sqrt(3) 5,例:x=0:pi/4:pi,例:x=linspace(0,pi,5),2、多维矩阵的输入,多维矩阵必须有以下三个要素:整个输入矩阵必须以“ ”为其首尾;矩阵的行与行之间必须用分号“;”或回车键(Enter)隔离;矩阵元素必须由逗号“,”或空格分隔。,例:输入A=1,2,3;4,5,6;7,8,9,3、特殊矩阵的函
14、数生成,zeros(m,n) mn全0阵,eye(m,n) mn对角线1矩阵,ones(m,n) mn全1阵,rand(m,n) mn (0,1) 随机阵,二、矩阵元素的操作,1、取矩阵中的一个元素:x(a,b)其中a,b分别代表元素的行和列。,2、取矩阵中的一行或一列:x(a,:),x(:,b)。,3、取矩阵A的第i1i2行、第j1j2列构成新矩阵:A(i1:i2,j1:j2)。,4、删除A的第i1i2行,构成新矩阵:A(i1:i2,:)= 。,5、删除A的第j1j2列,构成新矩阵:A(:,j1:j2)= 。,6、将矩阵A和B拼接成新矩阵:A B;A;B。,三、矩阵的运算,1、矩阵与标量之间
15、的运算,2、矩阵运算,矩阵运算符 含义 A 矩阵共轭转置 ctranspose(A) A. 矩阵转置 transpose(A) A+B 矩阵相加 A-B 矩阵相减 A*B 矩阵相乘 A/B 矩阵相除(右除) BA 矩阵相除(左除) An A阵的 n次幂,注:两矩阵相除,主要用于方程组求解:a*x=b的解为x=ab;x*a=b的解为x=b/a。,3、矩阵元素与矩阵元素的运算,A.+B 矩阵对应元素相加 A.-B 矩阵对应元素相减 A.*B 同维数组对应元素相乘 A./B A的元素被B的对应元素除 B.A A的元素被B的对应元素除 A.n A的每个元素自乘n次,Matlab的程序设计,利用MATL
16、AB的命令窗口,可以完成比较简单的运算,但当遇到较为复杂的问题时,就需要借助程序设计。,一、程序设计的基本原则,1、设置完整的路径,最好把当前的处理位置定为Current Directory。,2、参数值要集中放在程序的开始部分,便于程序维护。,3、MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果。,4、“%” 后面所有文字为注释,“”表示续行。,5、程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。,二、关系运算符与逻辑运算符,关系运算符有, =, =, =,逻辑运算符有&, | , ,例:A=1:9,L
17、1=(A5) %判断A中,哪些元素不大于5 L2=(A3)&(A7) %判断A中,哪些元素大于3小于7,L1 =1 1 1 1 1 0 0 0 0 L2 =0 0 0 1 1 1 0 0 0,A1 2 3 4 5 6 7 8 9,三、程序的结构,与C语言类似,MATLAB程序的控制结构也分为顺序结构、选择结构和循环结构三种,其控制语句主要有if,while,for,switch四个,下面分别进行介绍。,关系成立时结果为1,否则为0,运算规则成立时结果为1,否则为0,1、for 循环结构,for循环允许一组命令以固定的和预定的次数重复。,格式:,for i初值:增量:终值语句1 语句n end,
18、例:求12+100的和。,sum=0 for i=1:100sum=sum+i; end sum,例:设计九九乘法表。,for i=1:9for j=1:9a(i,j)=i*j ;end end,也可以嵌套使用,2、while循环结构,格式:,while循环一般用于事先不能确定循环次数的情况。,while 逻辑表达式循环体语句 end,只要表达式的值为1(真),就执行while与end之间的语句体,直到表达式的值为0(假)时终止该循环。,也可以嵌套使用,例:求1100的偶数和,x=0; sum=0; while x101sum=sum+x;x=x+2; end sum,3、if 分支结构,格式
19、:,if end,if elseend,if elseif elseif elseend,例:对于下述分段函数,用键盘输入变量的值,计算其相应的函数值,x=input(input the value of x:) if x1y=1 end if (x0) & (x=1)y=x end if x=0y=0 end,x=input(input the value of x:) if x1y=1 elseif x0y=x elsey=0 end,用一般分支结构,用嵌套结构,4、switch 分支结构,格式:,switch case case case otherwise end,注:当表达式的值为“
20、值1”时,执行“语句组1”,当表达式的值为“值2”时,执行“语句组2”;并依次类推,若所有的条件都不成立,则执行“语句组n+1”;执行完后,执行end后面的语句。,例:输入一个数,判断它是否能被5整除。,n=input(输入n); switch mod(n,5)case 0fprintf(%d可被5整除,n)otherwisefprintf(%d不能被5整除,n) end,四、程序的流程控制,1、continue命令,continue语句通常用于for或while循环体中,作用就是终止一次循环的执行,当if 条件满足时,跳过本次循环未执行的语句,直接去执行下一次循环。,例:a=3;b=6;fo
21、r i=1:3b=b+1if i2continueenda=a+2end,输出:b=7b=8 a=5 b=9a=7,2、break命令,break语句也常用于for或while循环体中,与if一同使用,当if后的表达式为真时,就跳出当前的循环,例:a=3;b=6;for i=1:3b=b+1if i2breakenda=a+2end,输出:b=7,五、M文件,MATLAB是一个功能强大的程序设计语言,有着良好的交互计算的工作环境。包含MATLAB语言代码的文件称为M文件,你可以使用文本编辑器来建立M文件,然后可以象使用其它的MA TLAB函数或命令一样使用它们。,1、建立M文件,3)保存程序:
22、 单击 “save” 按钮,出现一个对话框,在文件名一框中键入一个文件名,单击“保存”按钮。,1)进入程序编辑器(MATLAB Editor/Debug): 从“File”菜单中选择“New”及“M-file”项或单击“New-file”按钮。,2)输入程序: 在“MATLAB Editor/Debug”窗口输入MATLAB程序;,2.命令M文件及其运行,命令文件没有输入参数,也不返回输出参数,只是一些命令行的组合。命令M文件中的命令可以访问MATLAB工作区中的所有变量,而且其中的所有变量也成为工作区的一部分,命令文件运行结束,命令文件产生的变量保留在工作区,直到关闭MATLAB或用命令删除
23、。,例:,在文本编辑窗口输入 x=4;y=6;z=2; items=x+y+z cost=x*25+y*22+z*99 average_cost=cost/items,然后以example.m命名保存,这就是一个命令M文件。,运行此命令M文件只需在命令窗口输入example即可运行。,3. 函数M文件及其调用,在MATLAB编辑窗口还可建立函数M文件,我们可以根据需要建立自己的函数文件,它们能够像库函数一样方便地调用,从而可扩展MATLAB的功能。如果对于一类特殊的问题,建立起许多函数M文件,就能形成工具箱。,函数M-文件的组成格式如下:,function 输出参数列表=函数名(形式参数列表)
24、 函数体语句; end,注:,1、函数M文件的文件名必须与其函数名相同。,2、输出变量如果多于1个,则应该用方括号括起来;输出变量应该用逗号隔开;当函数无输出参数时,输出参数项空缺或者用空的中括号表示。,例如:,function printresults(x),function =printresults(x),3、函数M文件不能访问工作区中的变量,它的所有变量均为局部变量,只有输入、输出变量才保留在工作区。,例:建立M文件求向量的平均值和标准差,在文本编辑窗口输入 function mean,stdev=stat(x) n=length(x); mean=sum(x)/n; stdev=sq
25、rt(sum(x.2)/n-mean.2); end,然后以stat.m命名保存,这就是一个函数M文件。,运行此函数M文件需先输入向量x,然后输入mean,stdev=stat(x) 运行即可,matlab工具箱,matlab工具箱已经成为一个系列产品,matlab主工具箱和各种工具箱(toolbox )。,功能型工具箱 通用型功能型工具箱主要用来扩充matlab的数值计算、符号运算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能够用于多种学科。,领域型工具箱 专用型领域型工具箱是学科专用工具箱,其专业性很强,比如控制系统工具箱( Control System Toolbox);
26、信号处理工具箱(Signal Processing Toolbox);图像处理工具箱( Image Processing Toolbox)等等。,Matlab常用工具箱,Matlab Main Toolboxmatlab主工具箱 Control System Toolbox控制系统工具箱 Communication Toolbox通讯工具箱 Curve FittingToolbox曲线拟合工具箱 System Identification Toolbox系统辨识工具箱 Fuzzy Logic Toolbox模糊逻辑工具箱 Higher-Order Spectral Analysis Toolb
27、ox高阶谱分析工具箱,Image Processing Toolbox图象处理工具箱 LMI Control Toolbox线性矩阵不等式工具箱 Model predictive Control Toolbox模型预测控制工具箱 -Analysis and Synthesis Toolbox分析工具箱 Neural Network Toolbox神经网络工具箱 Optimization Toolbox优化工具箱 Partial Differential Toolbox偏微分方程工具箱 Robust Control Toolbox鲁棒控制工具箱,Signal Processing Toolbox
28、信号处理工具箱 Spline Toolbox样条工具箱 Statistics Toolbox统计工具箱 Symbolic Math Toolbox符号数学工具箱 Simulink Toolbox动态仿真工具箱 System Identification Toolbox系统辨识工具箱 Wavele Toolbox小波工具箱等等,学科前沿工具箱,时频分析工具箱 小波分析工具箱神经网络工具箱神经网络系统具有集体运算的能力和自适应的学习能力。具有很强的容错性和鲁棒性,善于联想、综合和推广。,工具箱的扩充功能:,用户可以修改工具箱中的函数,更为重要的是用户可以通过编制 m文件来任意地添加工具箱中原来没有
29、的工具函数。此功能充分体现了matlab语言的开发性。,COMSOL Multiphysics V4.3 介绍,COMSOL Multiphysics起源于MATLAB的Toolbox,最初命名为Toolbox 1.0。后来改名为Femlab 1.0(FEM为有限元,LAB是取自于Matlab),这个名字也一直沿用到Femlab3.1。从2003年3.2a版本开始,正式命名为COMSOL Multiphysics。Multiphysics翻译为多物理场,因此这个软件的优势就在于多物理场耦合方面。多物理场的本质就是偏微分方程组(PDEs),所以只要是可以用偏微分方程组描述的物理现像,COMSOL
30、 Multiphysics都能够很好的计算、模拟、仿真。,COMSOL 的背景和发展,COMSOL Multiphysics是以有限元法为基础,通过求解偏微分方程(单场)或偏微分方程组(多场)来实现真实物理现象的仿真,被当今世界科学家称为“第一款真正的任意多物理场直接耦合分析软件”。用数学方法求解真实世界的物理现象,COMSOL Multiphysics以高效的计算性能和杰出的多场双向直接耦合分析能力实现了高度精确的数值仿真。,COMSOL 的背景和发展,发布于2012年12月,相比以前的版本有较大改进; 最新版本为V4.4,改进了求解器,增加一些模块; 目前已经在声学、生物科学、化学反应、弥
31、散、电磁学、流体动力学、燃料电池、地球科学、热传导、微系统、微波工程、光学、光子学、多孔介质、量子力学、射频、半导体、结构力学、传动现象、波的传播等领域得到了广泛的应用。,COMSOL V 4.3,1,几何建模;2,材料;3,模型设定;4,网格划分;,COMSOL V 4.3 模型设定,1,求解器设定;2,求解设定;3,并行计算;,COMSOL V 4.3 求解,1,数据处理,画图等;2,表达式数据提取;,COMSOL V 4.3 后处理,MATLAB; 相互连接控制计算Solidworks; AutoCAD; Autodesk Inventor等; 几何模型和网格实时更新,COMSOL V
32、4.3 实时连接,ORIGIN 8.0 入门 介绍,Origin 简介,OriginLab公司的产品 最新版本为 V8.0 Pro 通用的科技绘图和数据分析软件 定位于基础级和专业级之间 国际科技出版界公认的标准作图软件 科学和工程研究人员的必备软件之一 软件主页:http:/ 安装演示 (下载源码就到源码网:),界面与操作基础,结构体系,子窗口,菜单栏,主菜单:上下文敏感(Context sensitivity)菜单快捷菜单:鼠标右键,工具栏,基本组 Standard工具栏 格式化组 Edit工具栏 Format工具栏: Style工具栏: 数据表组 Column工具栏: Worksheet Data工具栏: 作图组 Graph工具栏: 2D Graphs工具栏: 2D Graphs Extended工具栏: 3D Graphs工具栏: 3D Rotate工具栏: Mask工具栏: 图形对象组 Tools工具栏: Arrow工具栏: Object Edit工具栏: Layout工具栏:,基本操作,子窗口基本操作 项目管理*文件类型、命名规则,