1、MATLAB教程全册配套精品完整课件12MATLAB 仿真技术与应用3系统仿真技术概述l系统仿真是根据被研究的真实系统的数学系统仿真是根据被研究的真实系统的数学模型研究系统性能的一门学科;模型研究系统性能的一门学科;l现在尤指利用计算机去研究数学模型行为现在尤指利用计算机去研究数学模型行为的方法。的方法。4发展阶段l模拟计算机仿真;模拟计算机仿真;l数字仿真;数字仿真;l早期仿真语言;早期仿真语言;l数字计算机仿真;数字计算机仿真;l面向对象仿真技术;面向对象仿真技术;l计算机数字仿真的仿真语言和工具计算机数字仿真的仿真语言和工具5仿真软件的发展l国际仿真委员会国际仿真委员会仿真语言仿真语言C
2、SMPl20世纪世纪80年代初年代初ACSLl20世纪世纪80年代中期年代中期MATLAB、Simulink6第第1章章 MATLAB概述概述7本章目标l了解MATLAB的基本知识l熟悉MATLAB的上机环境l掌握利用MATLAB进行基本运算的方法l初步具备将一般数学问题转化成对应的计算机模型并进行处理的能力8主要内容l1.1 科学工程计算与科学工程计算与MATLABl1.2 基本运算功能基本运算功能l1.3 基本数据类型基本数据类型l1.4 数学函数数学函数91.1 科学工程计算与MATLABl科学研究和工程实践中的计算问题科学研究和工程实践中的计算问题l简单问题:计算器或直接手工推导l复杂
3、问题:计算机编程l计算机编程计算机编程l高级编程语言 lMicrosoft: Visual C+、Visual BasiclBorland: Delphi、C+BuilderlSun: Javal科学计算软件工具lMathWorks: MATLAB10科研和工程技术人员的首选 MATLABlMATLAB具有用法简单、灵活、具有用法简单、灵活、结构性强、延展性好等优点,逐结构性强、延展性好等优点,逐渐成为科技计算、视图交互系统渐成为科技计算、视图交互系统和程序中的首选语言工具。和程序中的首选语言工具。l功能强大的数值运算功能 l强大的图形处理能力 l高级但简单的程序环境l丰富的工具箱与模块集 l
4、易于扩充 111.2 基本运算功能lMATLAB的基本运算可分为三类:的基本运算可分为三类:l算术运算l关系运算l逻辑运算121.2.1 算术运算13使用变量来进行更复杂的问题求解 a=15+20-50+3*9a = 12b=30 b = 30 c=a*bc = 360 d=a3-b*cd = -907214逗号或分号的区别 x=2, y=3 %逗号隔开,屏幕有回显逗号隔开,屏幕有回显x = 2y = 3m=2; n=3;%分号隔开,无回显分号隔开,无回显m %在提示符后直接输入变量名可查看变量的值在提示符后直接输入变量名可查看变量的值m = 215基本算术运算符 运运 算算符符 号号运运 算
5、算符符 号号加+减-乘*数组相乘.*左除数组左除.右除/数组右除./幂次方数组幂次方.16例1-1 求解算术表达式的值 (12+2*(7-4)/33 ans = 0.666733)47(21217format命令 MATLABMATLAB命令命令含含 义义范范 例例format short短格式3.1416format short e短格式科学格式3.1416e+000format long长格式3.14159265358979format long e长格式科学格式3.141592653589793e+000format rat有理格式355/113format hex十六进制格式40092
6、1fb54442d18format bank银行格式3.14181.2.2 关系运算运运 算算符符 号号运运 算算符符 号号大于小于=小于等于 x=2; x3ans = 0 x z1=1+2iz1 = 1.0000 + 2.0000i z2=3+4jz2 = 3.0000 + 4.0000i231.3.2 字符串类型l字符串:包含在一对单引号中的字符集合字符串:包含在一对单引号中的字符集合 s=hello, MATLAB%定义字符串变量定义字符串变量ss =hello, MATLAB241.3.3 变量和表达式l变量的命名方式:变量的命名方式: l变量名由字母、数字和下划线组成;l变量名中的英
7、文字母大小写是有区别的; l变量名的最大长度是有规定的l不同版本的系统规定不同:19个字符、31或63个字符等l可调用namelengthmax函数得到系统规定长度25MATLAB系统的特殊变量和常数特殊变量特殊变量意意 义义 ans如果用户未定义变量名,系统用于计算结果存储的默认变量名 pi圆周率(= 3.1415926.) inf或Inf无穷大值,如1/0 eps浮点运算的相对精度2(-52)realmax最大的正浮点数,2(1024)-1realmin最小的正浮点数,2(-1022)NaN或nan不定量,如0/0或inf/inf i或j虚数单位nargin函数输入参数个数nargout函
8、数输出参数个数lasterr存放最新的错误信息lastwarn存放最新的警告信息26变量的使用clear%删除工作区中所有定义过的变量whos%查看当前工作区内变量信息,无显示表示没有定义的变量 xy=1; yx=2; %对变量赋值 xy%查看变量xy的当前数值xy = 1 whos Name Size Bytes Class xy 1x1 8 double array yx 1x1 8 double arrayGrand total is 2 elements using 16 bytes clear xy yx%删除变量xy及yx whos xy%这时变量xy已经不存在了? Undefin
9、ed function or variable xy.271.4 数学函数类型类型函函 数数含含 义义三角函数sin(x)正弦值asin(x)反正弦值cos(x)余弦值acos(x)反余弦值tan(x)正切指数函数exp(x)指数运算log(x)自然对数sqrt(x)求平方根复数函数abs(x)求绝对值imag(x)取出复数的虚部real(x)取出复数的实部conj(x)复数共轭数论函数round(x)四舍五入mod(x,y)求余数lcm(x,y)整数x和y的最小公倍数gcd(x,y)整数x和y的最大公约数28使用函数须注意以下几点l函数一定要出现在等式的右边函数一定要出现在等式的右边l函数对
10、其自变量的个数和格式都有一定的要求函数对其自变量的个数和格式都有一定的要求l函数允许嵌套函数允许嵌套 29例1-3 计算下式的结果,其中a=5.67, b=7.811a=5.67; b=7.811;exp(a+b)/log10(a+b)ans = 6.3351e+005baeba10)(log30扩展阅读l1.5 MATLAB背景背景l1.5.1 MATLAB历史l1.5.2 MATLAB组成l1.5.3 MATLAB特点l1.5.4其他几种相关的数学软件l1.6工具箱工具箱31上机指导l1.7 MATLAB的安装和使用的安装和使用 l1.7.1安装MATLAB系统l1.7.2使用MATLAB
11、系统l1.8 MATLAB帮助功能帮助功能32应用举例l计算星球之间的万有引力。计算星球之间的万有引力。 G = 6.67E-11;% 引力恒量 sun=1.987E30;% 太阳质量1.9871030千克 earth = 5.975E24;% 地球质量5.9751024千克 d1=1.495E11;% 太阳和地球的距离1.4951011米 g1 = G*sun*earth/d12% 太阳和地球的引力g1 = 3.5431e+022 moon=7.348E22;% 月亮质量7.3481022千克 d2=3.844E5;% 月亮和地球两者间距3.844105米 g2 = G*moon*earth
12、/d22% 月亮和地球的引力g2 = 1.9818e+02633应用举例l设三个复数a34i,b12i, ,计算x=ab/c a=3+4i; b=1+2i; c=2*exp(i*pi/6); x=a*b/cx = 0.3349 + 5.5801iiec6234应用举例l已知三角形的三边长分别为已知三角形的三边长分别为3、4、5,求其面积。,求其面积。 a=3; b=4; c=5;% 三角形的三个边长s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c)area = 635应用举例l计算下式的结果,其中计算下式的结果,其中x= 45 x=pi/180*(45);%将角
13、度单位由度转换为函数要求的弧度值z=(sin(x)+sqrt(35)/72(1/5)z =2.8158 57235sinx36l学好计算机的唯一途径是学好计算机的唯一途径是 l你的编程能力与你在计算机上投入的时间成你的编程能力与你在计算机上投入的时间成 结 束 语37第第2章章 MATLAB数值运算数值运算38本章目标l掌握矩阵、向量、数组和多项式的构造和运算方法l能够使用常用的几种函数进行一般的数值问题求解39主要内容l2.1 矩阵矩阵l2.2 向量向量 l2.3 数组数组 l2.4 多项式多项式 402.1 矩阵MATLAB = matrix(矩阵)(矩阵)+ laboratory(实验室
14、)(实验室)412.1.1 矩阵的构造l通过直接输入矩阵的元素构造矩阵:通过直接输入矩阵的元素构造矩阵:l用中括号 把所有矩阵元素括起来l同一行的不同数据元素之间用空格或逗号间隔l用分号(;)指定一行结束l可分成几行进行输入,用回车符代替分号l数据元素可以是表达式,系统将自动计算结果42例:输入矩阵例:输入矩阵A、B的值的值A=1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16B=1,sqrt(25),9,13;2,6,10,7*2;3+sin(pi),7,11,15;4,abs(-8),12,16432.1.2 矩阵下标与子矩阵提取矩阵下标与子矩阵提取lA(m
15、, n)提取第提取第m行,第行,第n列元素列元素lA(:, n)提取第提取第n列元素列元素lA(m, :)提取第提取第m行元素行元素lA(m1:m2, n1:n2) 提取第提取第m1行到第行到第m2行和第行和第n1列到第列到第n2列的所有元素列的所有元素lA(m:end, n)提取从第提取从第m行到最末行和第行到最末行和第n列的子块列的子块lA(:)得到一个长列矢量,该矢量的元素按矩得到一个长列矢量,该矢量的元素按矩阵的列进行排列阵的列进行排列44例:例: 修改矩阵A中元素的数值A=1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16;A(1,1)=0;A(2,2
16、)=A(1,2)+A(2,1);A(4,4)=cos(0);则矩阵变为:A = 0 2 3 4 5 7 7 8 9 10 11 12 13 14 15 1452.1.3 矩阵的算术运算l1矩阵的加减运算:矩阵的加减运算:(加加)、(减减)l2矩阵乘法:矩阵乘法:*(乘乘)l3矩阵除法:矩阵除法:/ (右除右除)、 (左除左除)l4矩阵的乘方:矩阵的乘方:(乘方乘方)l5矩阵转置:矩阵转置: (转置运算符转置运算符)462.1.4 矩阵的关系运算l关系运算符:关系运算符:(小于)、(大于)=(大于或等于)、=(等于)、=(不等于)。l关系运算符的运算法则:关系运算符的运算法则:l关系运算将对两个
17、矩阵的对应元素进行比较。 472.1.5 矩阵的逻辑运算l必须是两个同维矩阵或其中一个矩阵为标量才能进行必须是两个同维矩阵或其中一个矩阵为标量才能进行 lMATLAB提供了一些逻辑函数提供了一些逻辑函数逻逻 辑辑 函函 数数功功 能能all如果所有的元素都是非零值,返回1;否则,返回0。any如果有一个元素为非零值,那么返回1;否则,返回0isempty判断是否空矩阵isequal判断两矩阵是否相同isreal判断是否是实矩阵find返回一个由非零元素的下标组成的向量482.1.6 矩阵函数函函 数数功功 能能det计算矩阵所对应的行列式的值diag抽取矩阵对角线元素eig求特征值和特征向量i
18、nv求矩阵的逆阵lu三角分解Poly求特征多项式Rank求矩阵的秩Svd奇异值分解491求矩阵的行列式的值 X=1 2 3 0; 5 6 0 8; 9 0 11 12; 0 14 15 16;det(X)ans =-5464502求矩阵的秩 X=1, 2, 3; 2, 3 -5; 4 7 1; rank(X)ans = 2513求逆矩阵 X=1 2 3 0; 5 6 0 8; 9 0 11 12; 0 14 15 16; Y=inv(X)Y = 0.2299 0.0908 0.0351 -0.0717 0.1940 0.0798 -0.0659 0.0095 0.1274 -0.0835 0.
19、0322 0.0176 -0.2892 0.0084 0.0275 0.0377Y*X%矩阵与其逆阵相乘结果是单位矩阵矩阵与其逆阵相乘结果是单位矩阵ans = 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 X*Y%矩阵的逆阵是唯一的矩阵的逆阵是唯一的ans = 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000524求特征值和特征向量 X=-2 1 1;0 2 0;-4 1 3; V D=eig(X)V= -0.7071 -0.2425 0.3015 0 0 0.9045 -0.707
20、1 -0.9701 0.3015D= -1 0 0 0 2 0 0 0 2535矩阵分解 A=2 -1 3;1 2 1;2 4 3; L, U=lu(A) %三角分解三角分解 L = 1.0000 0 0 0.5000 0.5000 1.0000 1.0000 1.0000 0U = 2.0000 -1.0000 3.0000 0 5.0000 0 0 0 -0.5000546求解线形方程组552.2 向量l向量是矢量运算的基础向量是矢量运算的基础l行向量l列向量 562.2.1 向量的构造l1逐个输入逐个输入a=1 3 9 10 15 16%采用空格和逗号分隔构成行向量b=1; 3; 9;
21、10; 15; 16 %采用分号隔开构成列向量l2利用冒号表达式利用冒号表达式“:”生成向量生成向量x=1:2:9%初值=1,终值=9,步长=2z=1:5%初值=1,终值=5,默认步长=1l3利用函数生成向量利用函数生成向量 x=linspace(1, 9, 5)%初值=1,终值=9,元素数目=5572.2.2 向量的运算l1点积:点积:dot函数函数l2叉积:叉积:cross函数函数l例 a = 1 2 3; b = 4 5 6; c = dot(a, b) d = cross(a, b) c =32d = -3 6 -3 582.3 数组l数组运算方式是一种元素对元素的运算(数组运算方式是
22、一种元素对元素的运算(不按不按照线性代数的规则照线性代数的规则) ;l除了加、减法的与矩阵相同以外,乘、除、幂除了加、减法的与矩阵相同以外,乘、除、幂的数组运算符都是通过在标准的运算符前面加的数组运算符都是通过在标准的运算符前面加一个圆点来生成。一个圆点来生成。59数组运算 x=1 2 3; 4 5 6; 7 8 9; y=9 8 7; 6 5 4; 3 2 1; x+y%数组和矩阵的加法规则相同数组和矩阵的加法规则相同ans = 10 10 10 10 10 10 10 10 10 x.*y%数组乘法:对应元素相乘数组乘法:对应元素相乘ans = 9 16 21 24 25 24 21 16
23、 9 x*y%矩阵乘法:按照线性代数理论进行矩阵乘法:按照线性代数理论进行ans = 30 24 18 84 69 54 138 114 9060多维数组维间处理的函数l1reshapel2sizel3ndimsl4catl5permute l6ipermute l7shiftdim l8squeeze 612.4 多项式多项式是形如多项式是形如P(x) = aP(x) = a0 0 x xn n+a+a1 1x xn-1n-1+ +a+an-1n-1x+ax+an n的式子。的式子。在在MATLABMATLAB中,多项式用行向量表示:中,多项式用行向量表示:P= aP= a0 0 a a1
24、1 a an-1n-1 a an n 622.4.1 多项式的生成与表达l例:已知向量例:已知向量A=1 34 80 0 0,用此向量构造一多项,用此向量构造一多项式并显示结果。式并显示结果。(x-1)(x+34)(x+80)(x-0)(x-0)PA=poly(A)PAX=poly2str(PA,X) X5 + 113 X4 + 2606 X3 - 2720 X2632.4.2 多项式的运算l1. 多项式的算术运算多项式的算术运算l参加加减运算的多项式应该具有相同的阶次。l多项式乘法采用conv函数,除法由deconv函数完成。l2. 求根求根l求多项式的根采用roots函数。l3. 求值求值
25、l函数polyval可以将某个特定数值代入多项式l函数polyvalm可以求出当多项式中的未知数为方阵时的值。l4. 求导求导l使用polyder函数对多项式求导。64扩展阅读l2.5 特殊矩阵特殊矩阵 l2.6 稀疏矩阵稀疏矩阵函函 数数功功 能能eye产生单位矩阵zeros产生全部元素为0的矩阵ones产生全部元素为1的矩阵产生空矩阵rand产生均匀分布随机矩阵randperm产生随机排列linspace产生线性等分的矩阵compan产生伴随矩阵magicMagic(魔方)矩阵65上机指导l2.7工作空间与内存变量工作空间与内存变量 l2.7.1变量的查看l2.7.2变量的文件保存与获取
26、66应用举例67应用举例68应用举例例2-31 将表达式将表达式(x-4)(x+5)(x2-6x+9)展开为多项式展开为多项式形式,并求其对应的一元形式,并求其对应的一元n次方程的根。次方程的根。 p=conv(1 -4,conv(1 5,1 -6 9) px=poly2str(p,x)x=roots(p)69l学好计算机的唯一途径是学好计算机的唯一途径是 l你的编程能力与你在计算机上投入的时间成你的编程能力与你在计算机上投入的时间成 结 束 语70第第3章章 MATLAB程序设计程序设计71本章目标l 掌握MATLAB的几种基本控制转移语句l学会使用M文件进行编程l具备对复杂问题的编程求解能
27、力72主要内容l3.1 程序设计概述程序设计概述l3.2 MATLAB程序结构程序结构l3.3 M文件文件733.1 程序设计概述lMATLAB是第四代编程语言是第四代编程语言l程序简洁l可读性很强l调试容易l编程效率高l易移植和维护 l通过编程可求解复杂性更高或特殊的问题通过编程可求解复杂性更高或特殊的问题743.2 MATLAB程序结构l按照程序设计的观点按照程序设计的观点, 任何算法功能都可以通过任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合来由程序模块组成的三种基本程序结构的组合来实现实现: l顺序结构:程序按程序语句或模块在执行流中的顺序逐个执行。 l选择结构:程序按设
28、定的条件实现程序执行流的多路分支。 l循环结构:程序按给定的条件重复地执行指定的程序段或模块。753.2.1顺序结构程序程序模块模块1 1程序模块程序模块2 2lMATLAB中实现顺序结构的方法非常简单:中实现顺序结构的方法非常简单:l只需将程序语句顺序排列即可 763.2.2 选择结构l在在MATLAB中,选择结构由中,选择结构由两种语句结构实现:两种语句结构实现:lif语句lswitch语句条件条件程序模块程序模块1成立成立不成立不成立程序模块程序模块23.2.2 选择结构77if语句if表达式表达式 程序模块程序模块1 else 程序模块程序模块2end78if语句的两种变形l(1) 单
29、分支单分支if语句:只有一个分支的选择结构语句:只有一个分支的选择结构 if表达式 程序模块endl(2) 多分支多分支if语句:超过语句:超过2个的选择个的选择if表达式1 程序模块1 elseif 表达式2 程序模块2 elseif 表达式n 程序模块n else 程序模块n+1end79例:将百分制的学生成绩转换为五级制的成绩输出clearn=input(输入输入n= ); if n=90 r=Aelseif n=80 r=Belseif n=70 r=Celseif n=60 r=Delse r=Eend运行结果:运行结果:输入n= 87r =B802.switch语句 switch
30、表达式表达式 case 数值数值1 程序模块程序模块1; case 数值数值2 程序模块程序模块2;otherwise 程序模块程序模块n end例:将百分制的学生成绩转换为五级制的成绩输出例:将百分制的学生成绩转换为五级制的成绩输出使用使用switch语句语句 clearn=input(输入输入n= ); switch fix(n/10) case 10,9 r=A case 8 r=B case 7 r=C case 6 r=D otherwise r=Eend运行结果:运行结果:输入n= 65r =D823.2.3 循环结构l在在MATLAB中,循环结构可中,循环结构可以由两种语句结构实
31、现:以由两种语句结构实现:lfor语句循环结构lwhile语句循环结构程序模块程序模块不成立不成立成立成立条件条件3.2.2 选择结构831for语句循环结构语句循环结构for循环变量起始值:步长:终止值循环变量起始值:步长:终止值循环体循环体end84例:使用for结构计算1+2+3+100clearsum=0;for i=1:100 sum=sum+i;endsum运行结果:运行结果:sum = 5050852while语句循环结构语句循环结构 while表达式表达式 循环体循环体end86例:使用while结构计算1+2+3+100clearsum=0; i=0;while i100i=
32、i+1;sum=sum+i;endsum运行结果:运行结果:sum = 5050873.3 M文件文件lMATLAB工作模式工作模式l命令行方式。l程序文件驱动模式l MATLAB文本编辑器文本编辑器 883.3.1命令文件命令文件l又称为脚本文件,是一串指令的集合。又称为脚本文件,是一串指令的集合。l用户只需键入该命令文件的文件名,系统就会用户只需键入该命令文件的文件名,系统就会自动逐行执行该文件中的各条语句。自动逐行执行该文件中的各条语句。l适用于小规模运算。适用于小规模运算。893.3.2函数文件函数文件l函数文件基本格式:函数文件基本格式:function 输出形参列表=函数名(输入形
33、参列表) 注释说明语句段 程序语句段90扩展阅读l3.4其他流程控制语句其他流程控制语句l1. break语句l2. continue语句l3. return语句l4. try语句l5. echo命令l6. input命令l7. keyboard命令l8. pause命令l3.5函数与变量参数传递函数与变量参数传递l3.5.1子函数与私有函数l3.5.2变量作用域l3.5.3函数的参数传递91上机指导l3.6 M文件的调试文件的调试l3.7 M文件性能分析与优化文件性能分析与优化l3.7.1 M文件性能分析l3.7.2 M文件性能优化应用举例l求求1!+2!+3!+ +5!的值!的值clear
34、sum=0;for i=1:5 pdr=1; for k=1:i pdr=pdr*k; end sum=sum+pdr;endsum运行结果:运行结果:sum = 153应用举例应用举例鸡兔同笼问题:鸡和兔子关在一个笼子里,已知鸡兔同笼问题:鸡和兔子关在一个笼子里,已知共有头共有头36个,脚个,脚100个,求笼内关了多少只兔子和个,求笼内关了多少只兔子和多少只鸡?多少只鸡? clearchicken=1;while 1 if rem(100-chicken*2, 4)=0&(chicken+(100-chicken*2)/4)=36 break; end chicken=chicken+1;e
35、ndchickenrabbit=(100-2*chicken)/4运行结果:运行结果:chicken = 22rabbit = 1496l学好计算机的唯一途径是学好计算机的唯一途径是 l你的编程能力与你在计算机上投入的时间成你的编程能力与你在计算机上投入的时间成 结 束 语97第第4章章 MATLAB绘图绘图98本章目标l了解MATLAB的绘图功能l掌握二维图形和三维图形的绘制方法l能够进行常用的数据可视化处理99主要内容l4.1 二维图形二维图形l4.2 图形修饰与控制图形修饰与控制l4.3 三维图形三维图形1004.1 二维图形lplot函数绘制二维曲线,常用格式有:函数绘制二维曲线,常用
36、格式有:lplot(x):缺省自变量的绘图格式,x可为向量或矩阵。lplot(x, y):基本格式,x和y可为向量或矩阵。lplot(x1, y1, x2, y2,):多条曲线绘图格式,在同一坐标系中绘制多个图形。lplot(x, y, s):开关格式,开关量字符串s设定了图形曲线的颜色、线型及标示符号。101图形颜色、标记和线形参数表色彩字符色彩字符所定颜色所定颜色线型字符线型字符线型格式线型格式标记符号标记符号数据点形式数据点形式标记符号标记符号数据点形式数据点形式y黄黄-实线(默认)实线(默认).点点右三角形右三角形102例 x=3 5 7 6 12 24 15 33 6 9 7 2;
37、plot(x)%绘制以序号为横坐标,元素值为纵坐标的曲线绘制以序号为横坐标,元素值为纵坐标的曲线 x=0:pi/10:2*pi; y=sin(x); plot(x,y)%绘制以绘制以x为横坐标,为横坐标,y为纵坐标的曲线为纵坐标的曲线0246810120510152025303501234567-1-0.8-0.6-0.4-0.200.20.40.60.81103例 x=linspace(0,7); y1=sin(2*x); y2=sin(x.2); y3=(sin(x).2;%曲线曲线1:红色实线,:红色实线,+号显示数据点号显示数据点%曲线曲线2:黑色点线,:黑色点线,*号显示数据点号显示
38、数据点%曲线曲线3:蓝色虚线,上三角形显示数据点:蓝色虚线,上三角形显示数据点 plot(x, y1, r+-, x, y2, k*:, x, y3, b-)01234567-1-0.8-0.6-0.4-0.200.20.40.60.811044.2 图形修饰与控制图形修饰与控制ltitle 给图形加标题给图形加标题lxlable 给给x轴加标注轴加标注lylable 给给y轴加标注轴加标注ltext 在图形指定的任意位置加标注在图形指定的任意位置加标注lgtext 利用鼠标将标注加到图形任意位置利用鼠标将标注加到图形任意位置lgrid on 打开坐标网格线打开坐标网格线lgrid off关闭
39、坐标网格线关闭坐标网格线llegend 添加图例添加图例laxis 控制坐标轴刻度控制坐标轴刻度105例:绘制正弦和余弦曲线,并加入网格和标注cleart=0:0.1:10;y1=sin(t);y2=cos(t);plot(t,y1,r,t,y2,b-);x=1.7*pi;1.6*pi;y=-0.3; 0.7;s=sin(t);cos(t);text(x, y, s);指定位置加标注指定位置加标注title(正弦和余弦曲线正弦和余弦曲线);标题标题legend(正弦正弦,余弦余弦)%添加图例注解添加图例注解xlabel(时间时间)x坐标名坐标名ylabel(正弦正弦&余弦余弦)y坐标名坐标名g
40、rid on%添加网格添加网格axis square%将图形设置为正方形将图形设置为正方形0246810-1-0.8-0.6-0.4-0.200.20.40.60.81sin(t)cos(t)正 弦 和 余 弦 曲 线时 间正弦&余弦正 弦余 弦106MATLAB的图形编辑窗口107采用采用hold函数对图形进行比较显示函数对图形进行比较显示 cleart=0:pi/10:2*pi;y1=sin(t);y2=cos(t);y3= sin(t)-cos(t);plot(t,y1);hold on; %后续图形叠加显示后续图形叠加显示plot(t,y2);plot(t,y3);01234567-1
41、.5-1-0.500.511.5108采用图形窗口分割方法进行比较显示采用图形窗口分割方法进行比较显示 cleart=0:pi/10:2*pi;y1=sin(t);y2=cos(t);y3=cos(t+pi/2);y4=cos(t+pi); %将图形窗口分割成两行两列将图形窗口分割成两行两列,要画的图形为第要画的图形为第1行第行第1列列subplot(2,2,1);plot(t,y1);%将图形窗口分割成两行两列将图形窗口分割成两行两列,要画的图形为第要画的图形为第1行第行第2列列subplot(2,2,2); plot(t,y2);%将图形窗口分割成两行两列将图形窗口分割成两行两列,要画的图
42、形为第要画的图形为第2行第行第1列列subplot(2,2,3); plot(t,y3);%将图形窗口分割成两行两列,要画的图形为第将图形窗口分割成两行两列,要画的图形为第2行第行第2列列subplot(2,2,4);plot(t,y4);02468-1-0.500.5102468-1-0.500.5102468-1-0.500.5102468-1-0.500.511094.3三维图形三维图形l三维曲线图三维曲线图lplot3函数可以绘制三维曲线: plot3(x1, y1, z1, s1, x2, y2, z2, s2)l三维网格图三维网格图lmesh函数为数据点绘制网格线:mesh(z)
43、z为nm的矩阵,x与y坐标为元素的下标位置mesh(x, y, z) x, y, z分别为三维空间的坐标位置l三维曲面图三维曲面图l三维曲面的绘图是由surf函数完成的,用法和mesh类似。110例:函数plot3绘制的三维曲线图 cleart=0:pi/50:10*pi;plot3(t,sin(t),cos(t),r:)grid on010203040-1-0.500.51-1-0.500.51111例:分别用mesh函数和surf函数绘制高斯矩阵z=peaks(40);mesh(z);% 网格线网格线 figure%产生新的图形窗口产生新的图形窗口surf(z); %着色表面图着色表面图1
44、12观察点clearz=peaks(40);subplot(2,2,1); mesh(z);%绘制绘制子图子图1(默认视点)(默认视点)subplot(2,2,2);mesh(z);view(-15,60); %指定子图指定子图2的视点的视点subplot(2,2,3);mesh(z);view(-90,0); %指定子图指定子图3的视点的视点subplot(2,2,4);mesh(z);view(-7,-10); %指定子图指定子图4的视点的视点010203040010203040-10-505100510152025303540010203040-100100510152025303540
45、-8-6-4-20246810051015202530354002040-8-6-4-20246810113扩展阅读l4.4 特殊坐标系特殊坐标系l4.5 绘制特殊图形绘制特殊图形10-11001011021001051010101510201025103010351040104510-1100101102-1-0.8-0.6-0.4-0.200.20.40.60.8112301020301234461202040461201020304612020406080100 5 103021060240902701203001503301800 5 1030210602409027012030015
46、03301800114应用举例l画出一花瓣状图形画出一花瓣状图形theta = -pi:0.01:pi; rho(1,:) = 2*sin(5*theta).2;rho(2,:) = cos(10*theta).3;rho(3,:) = sin(theta).2;rho(4,:) = 5*cos(3.5*theta).3;for i = 1:4% 极坐标图形输出函数 polar(theta,rho(i,:) pauseend115应用举例116clear;t=1:9;d1=12.51 13.54 15.60 15.92 20.64 24.53 30.24 30.00 36.34;d2=2.87
47、 20.54 32.21 40.50 48.31 64.51 72.32 85.98 89.77;d3=10.11 8.14 14.17 20.14 40.50 39.45 60.11 62.13 20.90;plot(t,d1,r.-,t,d2,gx:,t,d3,m*-.);title(稳定性变化规律稳定性变化规律);xlabel(时间时间);ylabel(稳定性稳定性);axis(0 10 0 100);text(6.5,25.5,leftarrow样品样品a);text(3,43.8,样品样品brightarrow);text(4.8,30.5,leftarrow样品样品c);01234
48、56789100102030405060708090100稳 定 性 变 化 规 律时 间稳定性样 品 a样 品 b样 品 c117l学好计算机的唯一途径是学好计算机的唯一途径是 l你的编程能力与你在计算机上投入的时间成你的编程能力与你在计算机上投入的时间成 结 束 语118第第5章章 MATLAB符号运算符号运算119本章目标l理解符号运算的有关概念l掌握使用符号运算解决符号推导、微积分、方程等问题的方法120主要内容l5.1 数值运算与符号运算数值运算与符号运算l5.2 符号变量和符号表达式符号变量和符号表达式l5.3 符号表示式的运算符号表示式的运算l5.4 微积分微积分l5.5 方程求
49、解方程求解1215.1数值运算与符号运算l数值运算在运算前必须先对变量赋值,再参加数值运算在运算前必须先对变量赋值,再参加运算。运算。l符号运算不需要对变量赋值就可运算,运算结符号运算不需要对变量赋值就可运算,运算结果以标准的符号形式表达。果以标准的符号形式表达。1225.2 符号变量和符号表达式l符号变量和符号表达式在使用前必须说明符号变量和符号表达式在使用前必须说明lsym函数f1=sym(ax2+bx+c) %创建符号变量f1和一个符号表达式lsyms函数 clear syms a b c x whos Name Size Bytes Class a 1x1 126 sym object
50、 b 1x1 126 sym object c 1x1 126 sym object x 1x1 126 sym object1235.3 符号表示式的运算l5.3.1算术运算算术运算clear f1 = sym(1/(a-b) ); f2 = sym(2*a/(a+b) ); f3 = sym( (a+1)*(b-1)* (a-b) ); f1+f2%符号和ans =1/(a-b)+2*a/(a+b) f1*f3 %符号积ans = (a+1)*(b-1) f1/f3 %符号商ans = 1/(a-b)2/(a+1)/(b-1)1245.3.2 函数运算l1合并、化简、展开等函数合并、化简、