数学建模案例分析MATLAB在电气工程中的应用课件_第1页
数学建模案例分析MATLAB在电气工程中的应用课件_第2页
数学建模案例分析MATLAB在电气工程中的应用课件_第3页
数学建模案例分析MATLAB在电气工程中的应用课件_第4页
数学建模案例分析MATLAB在电气工程中的应用课件_第5页
已阅读5页,还剩159页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB在电气工程中的应用2022/11/14电气工程MATLAB在电气工程中的应用2022/111MATLAB简介对一般的计算语言来说,必须采用两层循环才能得到结果:vari,j:integer;//用pascal语言x,y:array[0..10]ofarray[0..20]ofreal;constm=10;n=20;beginfori:=1tomdoforj:=1tondoy[i][j]:=exp(x[i][j])*sin(x[i][j]);end;MATLAB只用一条指令:y=exp(-2*x).*sin(5*x)。例:已知x是(n×m)维数组,计算:2022/11/14电气工程MATLAB简介对一般的计算语言来说,必须采用两层循环才能得2MATLAB简介例:对于求解代数方程问题:当A的列数大于行数时,有无数解。MATLAB只用一条指令:

x=A\b。当A是标量时:当A是非奇异矩阵时:当A是行数大于列数的满秩阵时,称超定方程组或矛盾方程组:2022/11/14电气工程MATLAB简介例:对于求解代数方程问题:当A的列数大于行数3MATLAB简介 在MATLAB中仅用以下指令:ezsurf('y/(1+x^2+y^2)')

例:绘制二元函数曲面:2022/11/14电气工程MATLAB简介 在MATLAB中仅用以下指令:例:绘制二元4MATLAB简介MATLAB是专门为科学计算而设计的,具有强大数据图示功能的工具软件。语法结构简明、数值计算高效、图形功能完备、易学易用。在矩阵代数、数值计算、数字信号处理、震动理论、神经网络控制、动态仿真、建模、系统识别、控制系统、非线性系统、模糊控制、优化技术、通讯系统、财政金融等领域有着广泛应用。2022/11/14电气工程MATLAB简介MATLAB是专门为科学计算而设计的,具有强5教学内容第一章MATLAB基础第二章MATLAB基本语法第三章数组及矩阵运算第四章数值计算第五章符号运算第六章MATLAB计算结果可视化第七章MATLAB在系统仿真中的应用第八章MATLAB在信号处理中的应用2022/11/14电气工程教学内容第一章MATLAB基础2022/11/10电气工程6通过本课程学习,使学生掌握利用MATLAB进行数值计算的基本方法,熟悉MATLAB编程环境、语言语法、程序结构、编程及调试技术,掌握MATLAB中M文件、M函数编写方法及调试技术、MATLAB的绘图和图形控制函数等内容,上机练习MATLAB数值解算方法,具备上机操作的技能,学习MATLAB在电气工程学科中的建模与分析方法,为后续专业课程学习奠定基础。课程任务2022/11/14电气工程通过本课程学习,使学生掌握利用MATLAB进行数值计算的7考试形式考试方式:1、平时成绩(出勤率+课堂习题报告)2、考试2022/11/14电气工程考试形式考试方式:2022/11/10电气工程8MATLAB的发展历程MATLAB是MatrixLaboratory的缩写。20世纪70年代由CleveMoler博士用FORTRAN语言开发了最初版本的矩阵分析软件。80年代初期,由Moler、JohnLittle和SteveBangert采用C语言改写了MATLAB的内核。并于1984年成立了Mathworks软件开发公司,将MATLAB正式推向市场。1988年推出了MATLAB3.1(DOS)版本。1993年,推出了应用于Windows操作系统的MATLAB4.0版本。1996年12月,推出MATLAB5.0版本(Release8)。1997年5月,推出MATLAB5.1版本(Release9)。1998年3月,推出MATLAB5.2版本(Release10)。1999年11月,推出MATLAB5.3版本(Release11)。2000年11月,推出MATLAB6.0版本(Release12)。2001年6月,推出MATLAB6.1版本(Release12.1)。2002年7月,推出MATLAB6.5版本(Release13)。2022/11/14电气工程MATLAB的发展历程2022/11/10电气工程9MATLAB的发展历程2004年6月,推出MATLAB7.0版本(Release14)。2004年11月,推出MATLAB7.0.1版本(Release14SP1)。2005年3月,推出MATLAB7.0.4版本(Release14SP2)。2005年9月,推出MATLAB7.1版本(Release14SP3)。2006年3月,推出MATLAB7.2版本(Release2006a)。2006年9月,推出MATLAB7.3版本(Release2006b)。2007年3月,推出MATLAB7.4版本(Release2007a)。2007年9月,推出MATLAB7.5版本(Release2007b)。2008年3月,推出MATLAB7.6版本(Release2008a)。2008年10月,推出MATLAB7.7版本(Release2008b)。2009年3月,推出MATLAB7.8版本(Release2009a)。2009年9月,推出MATLAB7.9版本(Release2009b)。2010年3月,推出MATLAB7.10版本(Release2010a)。2022/11/14电气工程MATLAB的发展历程2022/11/10电气工程10MATLAB的主要特点

MATLAB的基本单位为矩阵。MATLAB语言以解释方式工作。具有非常友好的人机界面。具有强大的作图和数据可视化功能.智能化程度高。具有极强的可扩展性。2022/11/14电气工程MATLAB的主要特点MATLAB的基本单位为矩阵。2011第一章MATLAB基础2022/11/14电气工程第一章MATLAB基础2022/11/10电气工程121.1MATLAB的基本组成MATLAB软件主要由主包、Simulink动态系统仿真和工具箱(Toolbox)三大部分组成。

*

主包包括了MATLAB语言、数学函数库、工作环境、图形处理系统和应用程序接口五部分。

*Simulink是用于系统仿真的交互式图形系统,是MATLAB非常重要的共生产品。2022/11/14电气工程1.1MATLAB的基本组成MATLAB软件主要13

*

Toolbox实际是用MATLAB的基本语句编成的开放式各种子程序集,用于解决各专业领域的特定问题,例如:控制系统、信号处理、图像处理、模糊集合、神经网络、小波分析等。

*MATLAB编译器,可以将M文件转化为C或C++语言代码,增强了MATLAB灵活性。2022/11/14电气工程*Toolbox实际是用MATLAB的基本语141.2MATLAB系统界面MATLAB的启动桌面快捷方式启动开始菜单方式启动MATLAB的退出Matlab菜单命令/关闭按钮在Matlab命令窗口输入exit或quit2022/11/14电气工程1.2MATLAB系统界面MATLAB的启动2022/15MATLAB的用户界面窗口CommandwindowWorkspaceHistorycommandwindowCurrentdirectoryLaunchpadM-FileFigureModelGUI2022/11/14电气工程MATLAB的用户界面窗口Commandwindow216

历史命令

发射台

命令窗口

标题栏菜单栏

常用工具栏

工作区间当前目录2022/11/14电气工程历史命令发射台命令窗口172022/11/14电气工程2022/11/10电气工程18MATLAB命令窗口

MATLAB语句形式>>变量=表达式;当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果希望结果不被显示,则需在语句之后加上分号。此时尽管结果没有显示,但它依然被赋值并在MATLAB工作空间中分配了内存。方向键可以编辑修改已输入的命令↑:调出上一行语句;↓:调出下一行语句;2022/11/14电气工程MATLAB命令窗口MATLAB语句形式2022/11/19多行命令(…)如果命令语句超过一行或者太长希望分行输入,则可以使用多行命令继续输入。例如:S=1-12+13+4+9-4-18;等价于:

S=1-12+13+4+…9-4-18;命令窗口的分页输出moreoff:不允许分页moreon:允许分页more(n):指定每页输出的行数回车键显示下一行,空格键显示下一页,q结束当前显示。2022/11/14电气工程多行命令(…)命令窗口的分页输出2022/11/10电气工20页面显示的疏密控制formatloose(默认):稀疏显示格式;formatcompact:密集显示格式;清命令窗口

clc

2022/11/14电气工程页面显示的疏密控制2022/11/10电气工程21显示所有目前内存中的MATLAB变量、数学结构、类型以及所占的空间并可进行变量的编辑等。MATLAB的workspace中的变量管理

who:显示当前工作空间中所有变量的一个简单列表;

whos:显示出变量的大小、数据格式等详细信息;

clear:清除工作空间中所有的变量;

clear变量名:清除指定的变量;MATLAB工作空间

2022/11/14电气工程显示所有目前内存中的MATLAB变量、数学结构、类型以及所占22MATLAB的workspace中的变量保存和载入save:将工作空间的所有变量存到matlab.mat的二进制文件中。savefilename:将所有变量保存到磁盘文件filename中。savefilenamevariables

:将variables所表示的变量列表保存到磁盘文件filename中。各个不同的变量之间只能用空格来分隔。load(filename)(variables):将数据文件载入MATLAB工作空间。2022/11/14电气工程MATLAB的workspace中的变量保存和载入2022/23MATLAB历史命令窗MATLAB当前目录各种历史命令输入的记载,便于随时查看和调用,通过M文件运行的命令不显示。显示和改变当前目录,显示目录下的文件并提供搜索功能。2022/11/14电气工程MATLAB历史命令窗MATLAB当前目录各种历史命令输24helpwin指令在命令窗口中键入helpwin,进入帮助窗口;helpdesk指令在命令窗口中键入helpdesk(或doc,或点击工具条中的?按钮),进入帮助窗口,显示HTML格式的帮助内容。1.3MATLAB帮助系统2022/11/14电气工程helpwin指令1.3MATLAB帮助系统2022/25help命令

help:列出所有的帮助主题,每个帮助主题对应于MATLAB搜索路径中的一个目录;

help库名:得到库中全部函数名;

help函数名或命令;得到函数或命令的帮助信息;lookfor命令

如在命令窗口中键入:lookforsu,则只要有与‘su’匹配的单词就显示出来。其收索条件比help命令宽。demo命令demo:可得到MATLAB及其所以工具箱中的全部演示程序。是学习MATLAB的一种很好的途径。2022/11/14电气工程help命令2022/11/10电气工程261.5MATLAB两种工作方式指令行操作方式——键入命令行。执行M文件方式——键入程序名。1.4MATLAB常用命令2022/11/14电气工程1.5MATLAB两种工作方式指令行操作方式——键入命令27第二章MATLAB基本语法

第二章数组及矩阵运算2022/11/14电气工程第二章MATLAB基本语法

第二章数组及矩阵28任何MATLAB的语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量ans,数据的显示格式由format命令控制。format只是影响结果的显示,不影响其计算与存储;MATLAB总是以双字长浮点数(双精度)来执行所有的运算。数的显示格式2.1数值、变量及其赋值2022/11/14电气工程任何MATLAB的语句的执行结果都可以在屏幕上显示,同时赋值29format命令控制数的显示格式:

format(short)(默认):如pi=3.1416;

formatlong:如pi=3.14159265358979;

formatrat:如pi=355/113;

formatshorte:如pi=3.1416e+000;

formatlonge:如pi=3.141592653589793e+000;

formatbank:2位十进制,如pi=3.14;

formathex:如pi=400921fb54442d18;

format+:正数、零、负数分别用“+”、空格、“-”表示2022/11/14电气工程format命令控制数的显示格式:2022/11/130常量MATLAB的保留常量和变量保留常量不能重复定义!2022/11/14电气工程常量MATLAB的保留常量和变量保留常量不能重复定义!2031MATLAB语言的标识符命名规则

标识符:标志常量名、变量名、函数名和文件名的字符串的总称。

标识符的合法字符是52个英文字母(区分大小写)、10个数字和下划线;第一个字符必须是英文字母(不能超过63个字符);标识符必须是不含空格的单个词;2022/11/14电气工程MATLAB语言的标识符命名规则2022/11/10电气工32矩阵和变量的赋值直接赋值语句

赋值变量=表达式(或常量)

表达式由运算符、函数、变量名和数字组成,运算符有+、-、*、\、/、^、'、[]等。(ex201)函数调用语句[返回变量列表]=函数名(输入变量列表)例:[a,b,c]=my_fun(d,e,f,c)冒号表达式

v=s1:s2:s3其中s1是起始值,s2是步长(若省略步长为1),s3是最大值。(ex202)

2022/11/14电气工程矩阵和变量的赋值直接赋值语句2022/11/10电气工程33复数i,j为MATLAB中的虚数符号,可以不用乘号,直接连写在数字后面。如果在程序中另外给i,j赋值,它们的虚数意义就失效。conj(z)命令表示对复数矩阵z进行共轭变换。Z’命令表示对复数矩阵z进行共轭转置变换。(ex203)2022/11/14电气工程复数i,j为MATLAB中的虚数符号,可以不用乘号,直接连写34特殊矩阵的赋值函数linespace(a,b,N)均分向量,初值为a,终值为b,元素个数为Nlogspace(a,b,N)向量初值为10^a,终值为10^b,元素个数为Nones(n,m)产生n*m阶全1矩阵rand(n,m)产生n*m阶随机数矩阵randn(n,m)产生n*m阶正态随机数矩阵zeros(n,m)产生n*m阶全零矩阵eye(n)产生n*n阶单位方阵(ex204)2022/11/14电气工程特殊矩阵的赋值函数linespace(a,b,N)均分向量352.2矩阵的初等运算*矩阵的加减法

矩阵A和B进行加减运算的条件是:

size(B)=size(B)

*矩阵的乘法

1)矩阵A*B的条件是:A的列数等于B的行数。

2)不符合交换律,即A*B≠B*A

(ex205)2022/11/14电气工程2.2矩阵的初等运算*矩阵的加减法

矩阵36*矩阵的除法

1)左除

若线性方程组表示为A*X=B,如果A为非奇异方阵,即其逆阵存在,则方程组的解用MATLAB表示为:X=inv(A)*B或X=A\B符号“\”称为左除。2)右除

若线性方程组表示为X*C=D,如果C为非奇异方阵,即其逆阵存在,则方程组的解用MATLAB表示为:X=D*inv(C)或X=D/C

符号“/”称为右除。2022/11/14电气工程*矩阵的除法

1)左除2022/11/10电气工37例:求解线性方程组的解

将该线性方程组表示为矩阵相乘为:

(ex206)2022/11/14电气工程例:求解线性方程组的解(ex206)2022/11/10电气38*数组运算

矩阵运算遵循线性代数中的矩阵运算规则,数组运算将矩阵按逐个元素分别进行运算。MATLAB中几乎所有的初等函数都适合数组运算。运算矩阵数组运算符规则运算符规则乘法*A*B:A的列数=B的行数.*同维数组幂^方阵.^数组的标量乘方A.^p:A对应元素的p次方,结果和A同维标量的数组乘方p.^A:p的数组元素次方,结果和A同维左除\B\A=inv(B)*A./或.\A./B=B.\A右除/B/A=B*inv(A)(ex207)2022/11/14电气工程*数组运算矩阵运算392.3MATLAB语言流程控制关系运算六种关系运算符:==,~=,<,<=,>,>=运算结果是逻辑1(真)或0(假)逻辑运算逻辑运算符:&(与),|(或),~(非)运算结果是逻辑1(真)或0(假)逻辑关系函数:(见讲义第三章P26)2022/11/14电气工程2.3MATLAB语言流程控制关系运算2022/11/1040循环结构for结构while结构2022/11/14电气工程循环结构2022/11/10电气工程41(ex208)、(ex209)(ex210)、(ex211)2022/11/14电气工程(ex208)、(ex209)(ex210)、(ex2142顺序结构2022/11/14电气工程顺序结构2022/11/10电气工程43表达式语句段

if真假表达式语句段1

if真假语句段2else2022/11/14电气工程表达式语句段if真假表达式语句段1if真假语句段244(ex212)表达式语句段1if真假语句段2elseif表达式语句段3真假

else2022/11/14电气工程(ex212)表达式语句段1if真假语句段2else45开关结构2022/11/14电气工程开关结构2022/11/10电气工程462022/11/14电气工程2022/11/10电气工程47当开关表达式的值等于某表达式,执行该语句后结束该结构。程序的执行结果和各个case顺序无关。当需要在开关表达式满足若干个表达式之一时执行某一程序段,则用单元形式(用大括号把这些表达式括起来,用逗号分隔)case语句中条件不能重复,否则列在后面的条件将不能执行(ex213)2022/11/14电气工程当开关表达式的值等于某表达式,执行该语句后结束该结构。20248其它控制语句1)break语句终止循环语句的运行,对于多层嵌套循环结构,break只能终止最里层的循环。2)return语句中断当前函数运行返回调用处。3)pause语句

pause:暂停程序运行,如果敲击键盘,程序继续运行;

pause(n)

:暂停n秒;

pauseon:该语句后的pause语句有效;

pauseoff:该语句后的pause语句无效;2022/11/14电气工程其它控制语句1)break语句2022/11/10电气工程49例:用循环求解使不等式成立的最小的

m。

(ex214)2022/11/14电气工程例:用循环求解使不等式2022/11/10电气工程50M文件M文件分类命令式文件——Scriptfile函数式文件——Functionfile2.4M文件及程序调试2022/11/14电气工程M文件M文件分类2.4M文件及程序调试2022/11/1051函数式文件的构成1)function定义行:

function[输出参量]=函数名(输入参量)2)函数体:实现函数的功能。3)函数说明。函数式文件的特点1)输入、输出参量是用来进行变量传递的,可以有多个。2)程序中的变量均为局部变量,不保存在工作空间中,除非用global声明为全局变量。3)文件名必须与函数名相同。(ex215)2022/11/14电气工程函数式文件的构成(ex215)2022/11/10电气工程52分析:本题中,需要在R1=1kΩ,R1=10kΩ,R1=20kΩ时分别计算Uc(t)值,可编写一个函数实现的计算,传递参数是R1、C1、t,t是初始化后的数组,返回值Uc。2022/11/14电气工程分析:本题中,需要在R1=1kΩ,R1=10kΩ,R1=53解:(1)编写函数CalUcfunctionUc=CalUc(R1,C1,t)tao=R1*C1;%计算时间常数Uc=20*(1-exp(-t./tao));%返回曲线值将上述语句存为文件CalUc.m。(2)编写主程序t=0:0.001:0.04;%t初始化Uc1=CalUc(1000,1e-6,t);%调用CalUc函数计算R=1k时的函数值Uc10=CalUc(10000,1e-6,t);Uc20=CalUc(20000,1e-6,t);plot(t,Uc1,t,Uc10,t,Uc20);2022/11/14电气工程解:(1)编写函数CalUc2022/11/10电气工程54运行结果图2022/11/14电气工程运行结果图2022/11/10电气工程55两类文件的区别1)命令式文件没有输入输出参量,函数式文件有;2)命令式文件运行中可以调用工作空间的数据,运行中产生的所以变量为全局变量。函数式文件不能调用工作空间的数据,运行中产生的所有变量为局部变量;3)命令式文件可以直接运行,函数式文件不能,只能调用。2022/11/14电气工程两类文件的区别2022/11/10电气工程56M文件的调试MATLAB程序两种错误:语法和逻辑错误。文件编辑器的使用1)用颜色区分内容;2)自动缩进功能,用于判断循环层次。调试方法1)根据命令窗中显示的出错信息调试。2)通过程序编辑器提供的调试工具调试。(ex216)3)取消语句后的“;”,使程序运行时在命令窗口显示变量的值。2022/11/14电气工程M文件的调试MATLAB程序两种错误:语法和逻辑错误。202572.5MATLAB开发环境与其它软件的接口关系MATLAB的文件管理系统2022/11/14电气工程2.5MATLAB开发环境与其它软件的接口关系2022/58与其它软件的接口关系人机交互命令input和keyboard(以return退出)与磁盘操作系统关系与word的接口与记事本的接口(diary命令)低层输入输出命令库(iofun)与C或FORTRAN子程序的动态链接2022/11/14电气工程与其它软件的接口关系人机交互命令input和keyboar59MATLAB的文件管理系统安装后的MATLAB文件系统MATLAB中特有的文件格式1)M文件2)数据文件3)可执行文件4)图形文件5)模型文件、仿真文件等文件管理和搜索路径1)MATLAB管理的文件范围是由它的搜索路径来确定的。2)程序文件夹设定在“搜索路径”下的方法。2022/11/14电气工程MATLAB的文件管理系统2022/11/10电气工程60第四章数值计算2022/11/14电气工程第四章数值计算2022/11/10电气工程614.1多项式运算多项式的表示法

多项式:

P=[an,an-1,...,a1,a0]多项式的显示:poly2sym(p);poly2str(p,‘x’);多项式的乘法和除法(conv()、deconv())

c=conv(a,b);[q,r]=deconv(c,b);多项式求根(roots())已知多项式的根,创建多项式(poly())

r=roots(p);%返回向量r为一列向量

p=poly(r1);

2022/11/14电气工程4.1多项式运算多项式的表示法2022/11/10电气工程62求多项式的值(polyval())

y=polyval(p,x);%x、y为矩阵、向量、标量。

y=polyvalm(p,x);%x必须为方阵。多项式展开(residue())将分式多项式转换成部分分式。在电路的复频域分析中将复杂的传递函数转换成简单的传递函数之和。 [r,p,k]=residue(b,a) [b,a]=residue(r,p,k)多项式求导(polyder())

y=polyder(p);2022/11/14电气工程求多项式的值(polyval())2022/11/10电气63多项式拟合(polyfit())

p=polyfit(x,y,n);

%x、y为数据向量,p为多项式系数向量,n为多项式阶次。一元插值(interp1())

yi=interp1(x,y,xi,method);

%计算xi对应的函数值yi,x、y为数据向量。method插值方法有:linear:线性插值;cubic:三次多项式插值;nearest:最近点插值;spline:三次样条插值。4.2数值分析2022/11/14电气工程多项式拟合(polyfit())4.2数值分析2022/64数值积分(trapz()、quad()、quad8()

)梯形法:

z=trapz(y);%近似求解y的积分近似值。y为被积函数值,点距为1;

z=trapz(x,y);%近似求解y对x的积分值,x、y必须是相同维数的向量。辛普生法:

z=quad(‘fun’,a,b);%计算函数fun在[a,b]区间的相对误差为1.e-6的积分近似值,函数fun必须返回一个在x上的函数值向量。

z=quad(‘fun’,a,b,tol);%与上相同,tol用以指定误差容度。牛顿-科特斯法:quad8调用格式和quad方式相同。2022/11/14电气工程数值积分(trapz()、quad()、quad865数值微分(利用求差分的函数diff()实现

)差分计算

Y=diff(X);%用以计算数组中的差分。X=[X(1),X(2),...,X(n)],

Y=[X(2)-X(1),X(3)-X(2),...,X(n)-X(n-1)]微分计算:设函数y=f(x),

可近似表示为:

因此,可以用diff(y)./diff(x)近似计算函数的微分。2022/11/14电气工程数值微分(利用求差分的函数diff()实现)2022/166常微分方程(ODE)的数值解高阶常微分方程的表示形式:求解方法:将高阶常微分方程转化为一阶常微分方程组。,2022/11/14电气工程常微分方程(ODE)的数值解,2022/11/10电气工程67函数调用格式(7个函数调用格式完全一样)

[T,Y]=ode45(odefun,tspan,y0)

%odefun代表显式ODE方程组y’=f(t,y),t为标量,y和y’为同长度的列向量。Tspan可以是区间[t0,tf],也可以是[t0,t1,…,tf],函数返回指定时间t0,t1,t2,…上的解。y0是初始条件,是与y同长度的列向量。解矩阵Y中的每一行对应于返回的时间列向量T中的一个时间点。

[T,Y]=ode45(odefun,tspan,y0,options)

%options用于设定微分方程解法器的参数(用函数odeset()生成)。

[T,Y]=ode45(odefun,tspan,y0,options,p1,p2…)

2022/11/14电气工程函数调用格式(7个函数调用格式完全一样)2022/11/1068函数最小值(fminbnd()、fminsearch()

)fminbnd:单变量非线性函数局部最小值函数

x=fminbnd(FUN,x1,x2)x=fminbnd(FUN,x1,x2,options)x=fminbnd(FUN,x1,x2,options,p1,p2,…)%返回值x是FUN函数在(x1,x2)上的局部最小值,FUN为单值非线性函数。options用来控制算法的参数设置。fminsearch为多变量无束缚非线性局部最小值函数,调用格式与上一致。2022/11/14电气工程函数最小值(fminbnd()、fminsearch(69函数零点(fzero())

xzero=fzero(FUN,x0)

xzero=fzero(FUN,x0,tol,trace)%FUN:待求零点的函数;x0:搜索零点的初始值;tol:搜索相对精度;trace:指定迭代信息是否显示,默认为0,表示不显示迭代信息。2022/11/14电气工程函数零点(fzero())2022/11/10电气工程70第五章符号运算2022/11/14电气工程第五章符号运算2022/11/10电气工程715.1符号对象和符号表达式符号对象定义基本的符号对象(常数、变量、表达式)

f=sym(arg);%把数值、字符串或表达式arg转换为符号对象

f=sym(arg,flagn);%把数值或数值表达式arg转换为flagn格式的符号对象。falgn可设定为:‘d’:采用最接近的十进制精确表示;‘d’:采用最接近的有理表示,缺省设置。

syms(‘arg1’,‘arg2’);%把字符arg1,arg2定义为基本符号对象

symsarg1,arg2;2022/11/14电气工程5.1符号对象和符号表达式符号对象2022/11/10电气72符号表达式和符号函数的操作符号表达式的化简collect():合并同幂项simplify():利用代数上的函数规则对表达式进行化简simple():以尽可能的办法将表达式再做化简,目的是使表达式以最少的字表示出来。horner():对多项式进行嵌套型分解。2022/11/14电气工程符号表达式和符号函数的操作2022/11/10电气工程73符号函数的求反和复合

g=finervse(f):符号函数f和g满足:g(f(x))=x

g=finervse(f,v):符号函数g的自变量为v,满足g(f(x))=v

g1=compose(f,g):返回f=f(x)和g=g(y)时的复合函数f=f(g(y))

g1=compose(f,g,z):返回复合函数f=f(g(z))

g1=compose(f,g,x,z):返回复合函数f=f(g(z)),x是f的独立变量

g1=compose(f,g,x,y,z):返回复合函数f=f(g(z)),x是f的独立变量,y是g的独立变量2022/11/14电气工程符号函数的求反和复合2022/11/10电气工程74符号微积分g=int(f):返回f的不定积分。g=int(f,v):对f中指定的符号变量v计算不定积分。g=int(f,v,a,b):对表达式f中指定的符号变量v计算从a到b的定积分。符号代数方程组的求解一般代数方程组的求解一般代数方程组包括线性、非线性和超越方程等,求解用函数solve()2022/11/14电气工程符号微积分2022/11/10电气工程75第六章MATLAB计算结果可视化2022/11/14电气工程第六章MATLAB计算结果可视化2022/11/10电76连续函数和离散函数的可视化离散函数的可视化 对于离散实函数yn=f(xn),其自变量用向量形式表示为x=[x1,x2,…,xn],由函数关系可得函数值向量为y=[y1,y2,…,yn]。该组向量可用平面上的一组点表示。连续函数的可视化 连续函数的可视化也必须由一组离散自变量计算相应的函数值。离散的点不能表现函数的连续性,为了表示离散点之间的函数情况,有两种常用处理方法:1、把两点用直线连接,近似表现两点间的函数变化规律。2、对区间进行更细的分割,计算更多的点,去近似表现函数的连续变化。2022/11/14电气工程连续函数和离散函数的可视化2022/11/10电气工程77绘制二维图形的基本操作一般步骤1、数据准备: 1)产生自变量采样向量e.g.t=0:0.001:1; 2)计算相应的函数值向量 e.g.y=sin(t).*sin(3*t)+5*cos(12*t);2、选定图形串口及子图位置: 1)用figure()函数创建或指定图形窗口 e.g.figure(n);%指定n号图形窗 2)指定子图号

e.g.Subplot(2,2,4);%指定4号子图

2022/11/14电气工程绘制二维图形的基本操作2022/11/10电气工程783、调用绘图指令:e.g.plot(t,y,‘r--’);%用红色虚线画曲线4、设置坐标轴的范围、刻度和网格线:e.g.axis([0,1,-6,6]);%设置轴的范围

gridon;

5、图形注释:图名、坐标名、图例、文字说明e.g.title('波形');%图名

xlabel('t');ylabel('y');%轴名

legend('曲线1');%图例

text(2,1,'y=sin(t)sin(3t)+5cos(12t)');%文字说明

2022/11/14电气工程3、调用绘图指令:2022/11/10电气工程796、图形的精细修饰(图柄操作)1)利用对象属性值设置2)利用图形窗工具条进行说明:步骤一和三是最基本的绘图步骤,其他步骤并不完全必须。由这两步所画出的图形已具备足够的表现力。步骤四、五、六的前后次序不是一定的,可根据需要或习惯调整。步骤二一般在图形较多的情况下使用,以指定图形窗和子图。2022/11/14电气工程6、图形的精细修饰(图柄操作)2022/11/10电气工程80二维绘图指令

plot()是最重要、最基本的指令。1、plot(x,’s’);

◊x是实向量时,以该向量元素的下标为横坐标、元素值为纵坐标画出一条连续曲线;

◊x是实矩阵时,按列绘制每列元素值相对其下标的曲线。曲线数等于矩阵列数;

◊x是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。2022/11/14电气工程二维绘图指令2022/11/10电气工程812、plot(x,y,’s’);

◊x、y是同维向量时,绘制以x,y元素为横坐标、纵坐标的曲线;

◊x是向量,y是一维与x同维的实矩阵时,绘出多根不同色彩的曲线,曲线数等于y矩阵的另一维数;x是矩阵,y是向量时,绘出的多根曲线均以y为共同纵坐标。

◊x、y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。3、plot(x1,y1,’s’,x2,y2,’s’,x3,y3,’s’,…);

每三个绘图参数xi,yi,’s’构成一组,其结构和作用与plot(x,y,’s’)相同,不同参数组之间没有约束关系。2022/11/14电气工程2、plot(x,y,’s’);2022/11/10电气82MATLAB在电气工程中的应用2022/11/14电气工程MATLAB在电气工程中的应用2022/1183MATLAB简介对一般的计算语言来说,必须采用两层循环才能得到结果:vari,j:integer;//用pascal语言x,y:array[0..10]ofarray[0..20]ofreal;constm=10;n=20;beginfori:=1tomdoforj:=1tondoy[i][j]:=exp(x[i][j])*sin(x[i][j]);end;MATLAB只用一条指令:y=exp(-2*x).*sin(5*x)。例:已知x是(n×m)维数组,计算:2022/11/14电气工程MATLAB简介对一般的计算语言来说,必须采用两层循环才能得84MATLAB简介例:对于求解代数方程问题:当A的列数大于行数时,有无数解。MATLAB只用一条指令:

x=A\b。当A是标量时:当A是非奇异矩阵时:当A是行数大于列数的满秩阵时,称超定方程组或矛盾方程组:2022/11/14电气工程MATLAB简介例:对于求解代数方程问题:当A的列数大于行数85MATLAB简介 在MATLAB中仅用以下指令:ezsurf('y/(1+x^2+y^2)')

例:绘制二元函数曲面:2022/11/14电气工程MATLAB简介 在MATLAB中仅用以下指令:例:绘制二元86MATLAB简介MATLAB是专门为科学计算而设计的,具有强大数据图示功能的工具软件。语法结构简明、数值计算高效、图形功能完备、易学易用。在矩阵代数、数值计算、数字信号处理、震动理论、神经网络控制、动态仿真、建模、系统识别、控制系统、非线性系统、模糊控制、优化技术、通讯系统、财政金融等领域有着广泛应用。2022/11/14电气工程MATLAB简介MATLAB是专门为科学计算而设计的,具有强87教学内容第一章MATLAB基础第二章MATLAB基本语法第三章数组及矩阵运算第四章数值计算第五章符号运算第六章MATLAB计算结果可视化第七章MATLAB在系统仿真中的应用第八章MATLAB在信号处理中的应用2022/11/14电气工程教学内容第一章MATLAB基础2022/11/10电气工程88通过本课程学习,使学生掌握利用MATLAB进行数值计算的基本方法,熟悉MATLAB编程环境、语言语法、程序结构、编程及调试技术,掌握MATLAB中M文件、M函数编写方法及调试技术、MATLAB的绘图和图形控制函数等内容,上机练习MATLAB数值解算方法,具备上机操作的技能,学习MATLAB在电气工程学科中的建模与分析方法,为后续专业课程学习奠定基础。课程任务2022/11/14电气工程通过本课程学习,使学生掌握利用MATLAB进行数值计算的89考试形式考试方式:1、平时成绩(出勤率+课堂习题报告)2、考试2022/11/14电气工程考试形式考试方式:2022/11/10电气工程90MATLAB的发展历程MATLAB是MatrixLaboratory的缩写。20世纪70年代由CleveMoler博士用FORTRAN语言开发了最初版本的矩阵分析软件。80年代初期,由Moler、JohnLittle和SteveBangert采用C语言改写了MATLAB的内核。并于1984年成立了Mathworks软件开发公司,将MATLAB正式推向市场。1988年推出了MATLAB3.1(DOS)版本。1993年,推出了应用于Windows操作系统的MATLAB4.0版本。1996年12月,推出MATLAB5.0版本(Release8)。1997年5月,推出MATLAB5.1版本(Release9)。1998年3月,推出MATLAB5.2版本(Release10)。1999年11月,推出MATLAB5.3版本(Release11)。2000年11月,推出MATLAB6.0版本(Release12)。2001年6月,推出MATLAB6.1版本(Release12.1)。2002年7月,推出MATLAB6.5版本(Release13)。2022/11/14电气工程MATLAB的发展历程2022/11/10电气工程91MATLAB的发展历程2004年6月,推出MATLAB7.0版本(Release14)。2004年11月,推出MATLAB7.0.1版本(Release14SP1)。2005年3月,推出MATLAB7.0.4版本(Release14SP2)。2005年9月,推出MATLAB7.1版本(Release14SP3)。2006年3月,推出MATLAB7.2版本(Release2006a)。2006年9月,推出MATLAB7.3版本(Release2006b)。2007年3月,推出MATLAB7.4版本(Release2007a)。2007年9月,推出MATLAB7.5版本(Release2007b)。2008年3月,推出MATLAB7.6版本(Release2008a)。2008年10月,推出MATLAB7.7版本(Release2008b)。2009年3月,推出MATLAB7.8版本(Release2009a)。2009年9月,推出MATLAB7.9版本(Release2009b)。2010年3月,推出MATLAB7.10版本(Release2010a)。2022/11/14电气工程MATLAB的发展历程2022/11/10电气工程92MATLAB的主要特点

MATLAB的基本单位为矩阵。MATLAB语言以解释方式工作。具有非常友好的人机界面。具有强大的作图和数据可视化功能.智能化程度高。具有极强的可扩展性。2022/11/14电气工程MATLAB的主要特点MATLAB的基本单位为矩阵。2093第一章MATLAB基础2022/11/14电气工程第一章MATLAB基础2022/11/10电气工程941.1MATLAB的基本组成MATLAB软件主要由主包、Simulink动态系统仿真和工具箱(Toolbox)三大部分组成。

*

主包包括了MATLAB语言、数学函数库、工作环境、图形处理系统和应用程序接口五部分。

*Simulink是用于系统仿真的交互式图形系统,是MATLAB非常重要的共生产品。2022/11/14电气工程1.1MATLAB的基本组成MATLAB软件主要95

*

Toolbox实际是用MATLAB的基本语句编成的开放式各种子程序集,用于解决各专业领域的特定问题,例如:控制系统、信号处理、图像处理、模糊集合、神经网络、小波分析等。

*MATLAB编译器,可以将M文件转化为C或C++语言代码,增强了MATLAB灵活性。2022/11/14电气工程*Toolbox实际是用MATLAB的基本语961.2MATLAB系统界面MATLAB的启动桌面快捷方式启动开始菜单方式启动MATLAB的退出Matlab菜单命令/关闭按钮在Matlab命令窗口输入exit或quit2022/11/14电气工程1.2MATLAB系统界面MATLAB的启动2022/97MATLAB的用户界面窗口CommandwindowWorkspaceHistorycommandwindowCurrentdirectoryLaunchpadM-FileFigureModelGUI2022/11/14电气工程MATLAB的用户界面窗口Commandwindow298

历史命令

发射台

命令窗口

标题栏菜单栏

常用工具栏

工作区间当前目录2022/11/14电气工程历史命令发射台命令窗口992022/11/14电气工程2022/11/10电气工程100MATLAB命令窗口

MATLAB语句形式>>变量=表达式;当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果希望结果不被显示,则需在语句之后加上分号。此时尽管结果没有显示,但它依然被赋值并在MATLAB工作空间中分配了内存。方向键可以编辑修改已输入的命令↑:调出上一行语句;↓:调出下一行语句;2022/11/14电气工程MATLAB命令窗口MATLAB语句形式2022/11/101多行命令(…)如果命令语句超过一行或者太长希望分行输入,则可以使用多行命令继续输入。例如:S=1-12+13+4+9-4-18;等价于:

S=1-12+13+4+…9-4-18;命令窗口的分页输出moreoff:不允许分页moreon:允许分页more(n):指定每页输出的行数回车键显示下一行,空格键显示下一页,q结束当前显示。2022/11/14电气工程多行命令(…)命令窗口的分页输出2022/11/10电气工102页面显示的疏密控制formatloose(默认):稀疏显示格式;formatcompact:密集显示格式;清命令窗口

clc

2022/11/14电气工程页面显示的疏密控制2022/11/10电气工程103显示所有目前内存中的MATLAB变量、数学结构、类型以及所占的空间并可进行变量的编辑等。MATLAB的workspace中的变量管理

who:显示当前工作空间中所有变量的一个简单列表;

whos:显示出变量的大小、数据格式等详细信息;

clear:清除工作空间中所有的变量;

clear变量名:清除指定的变量;MATLAB工作空间

2022/11/14电气工程显示所有目前内存中的MATLAB变量、数学结构、类型以及所占104MATLAB的workspace中的变量保存和载入save:将工作空间的所有变量存到matlab.mat的二进制文件中。savefilename:将所有变量保存到磁盘文件filename中。savefilenamevariables

:将variables所表示的变量列表保存到磁盘文件filename中。各个不同的变量之间只能用空格来分隔。load(filename)(variables):将数据文件载入MATLAB工作空间。2022/11/14电气工程MATLAB的workspace中的变量保存和载入2022/105MATLAB历史命令窗MATLAB当前目录各种历史命令输入的记载,便于随时查看和调用,通过M文件运行的命令不显示。显示和改变当前目录,显示目录下的文件并提供搜索功能。2022/11/14电气工程MATLAB历史命令窗MATLAB当前目录各种历史命令输106helpwin指令在命令窗口中键入helpwin,进入帮助窗口;helpdesk指令在命令窗口中键入helpdesk(或doc,或点击工具条中的?按钮),进入帮助窗口,显示HTML格式的帮助内容。1.3MATLAB帮助系统2022/11/14电气工程helpwin指令1.3MATLAB帮助系统2022/107help命令

help:列出所有的帮助主题,每个帮助主题对应于MATLAB搜索路径中的一个目录;

help库名:得到库中全部函数名;

help函数名或命令;得到函数或命令的帮助信息;lookfor命令

如在命令窗口中键入:lookforsu,则只要有与‘su’匹配的单词就显示出来。其收索条件比help命令宽。demo命令demo:可得到MATLAB及其所以工具箱中的全部演示程序。是学习MATLAB的一种很好的途径。2022/11/14电气工程help命令2022/11/10电气工程1081.5MATLAB两种工作方式指令行操作方式——键入命令行。执行M文件方式——键入程序名。1.4MATLAB常用命令2022/11/14电气工程1.5MATLAB两种工作方式指令行操作方式——键入命令109第二章MATLAB基本语法

第二章数组及矩阵运算2022/11/14电气工程第二章MATLAB基本语法

第二章数组及矩阵110任何MATLAB的语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量ans,数据的显示格式由format命令控制。format只是影响结果的显示,不影响其计算与存储;MATLAB总是以双字长浮点数(双精度)来执行所有的运算。数的显示格式2.1数值、变量及其赋值2022/11/14电气工程任何MATLAB的语句的执行结果都可以在屏幕上显示,同时赋值111format命令控制数的显示格式:

format(short)(默认):如pi=3.1416;

formatlong:如pi=3.14159265358979;

formatrat:如pi=355/113;

formatshorte:如pi=3.1416e+000;

formatlonge:如pi=3.141592653589793e+000;

formatbank:2位十进制,如pi=3.14;

formathex:如pi=400921fb54442d18;

format+:正数、零、负数分别用“+”、空格、“-”表示2022/11/14电气工程format命令控制数的显示格式:2022/11/1112常量MATLAB的保留常量和变量保留常量不能重复定义!2022/11/14电气工程常量MATLAB的保留常量和变量保留常量不能重复定义!20113MATLAB语言的标识符命名规则

标识符:标志常量名、变量名、函数名和文件名的字符串的总称。

标识符的合法字符是52个英文字母(区分大小写)、10个数字和下划线;第一个字符必须是英文字母(不能超过63个字符);标识符必须是不含空格的单个词;2022/11/14电气工程MATLAB语言的标识符命名规则2022/11/10电气工114矩阵和变量的赋值直接赋值语句

赋值变量=表达式(或常量)

表达式由运算符、函数、变量名和数字组成,运算符有+、-、*、\、/、^、'、[]等。(ex201)函数调用语句[返回变量列表]=函数名(输入变量列表)例:[a,b,c]=my_fun(d,e,f,c)冒号表达式

v=s1:s2:s3其中s1是起始值,s2是步长(若省略步长为1),s3是最大值。(ex202)

2022/11/14电气工程矩阵和变量的赋值直接赋值语句2022/11/10电气工程115复数i,j为MATLAB中的虚数符号,可以不用乘号,直接连写在数字后面。如果在程序中另外给i,j赋值,它们的虚数意义就失效。conj(z)命令表示对复数矩阵z进行共轭变换。Z’命令表示对复数矩阵z进行共轭转置变换。(ex203)2022/11/14电气工程复数i,j为MATLAB中的虚数符号,可以不用乘号,直接连写116特殊矩阵的赋值函数linespace(a,b,N)均分向量,初值为a,终值为b,元素个数为Nlogspace(a,b,N)向量初值为10^a,终值为10^b,元素个数为Nones(n,m)产生n*m阶全1矩阵rand(n,m)产生n*m阶随机数矩阵randn(n,m)产生n*m阶正态随机数矩阵zeros(n,m)产生n*m阶全零矩阵eye(n)产生n*n阶单位方阵(ex204)2022/11/14电气工程特殊矩阵的赋值函数linespace(a,b,N)均分向量1172.2矩阵的初等运算*矩阵的加减法

矩阵A和B进行加减运算的条件是:

size(B)=size(B)

*矩阵的乘法

1)矩阵A*B的条件是:A的列数等于B的行数。

2)不符合交换律,即A*B≠B*A

(ex205)2022/11/14电气工程2.2矩阵的初等运算*矩阵的加减法

矩阵118*矩阵的除法

1)左除

若线性方程组表示为A*X=B,如果A为非奇异方阵,即其逆阵存在,则方程组的解用MATLAB表示为:X=inv(A)*B或X=A\B符号“\”称为左除。2)右除

若线性方程组表示为X*C=D,如果C为非奇异方阵,即其逆阵存在,则方程组的解用MATLAB表示为:X=D*inv(C)或X=D/C

符号“/”称为右除。2022/11/14电气工程*矩阵的除法

1)左除2022/11/10电气工119例:求解线性方程组的解

将该线性方程组表示为矩阵相乘为:

(ex206)2022/11/14电气工程例:求解线性方程组的解(ex206)2022/11/10电气120*数组运算

矩阵运算遵循线性代数中的矩阵运算规则,数组运算将矩阵按逐个元素分别进行运算。MATLAB中几乎所有的初等函数都适合数组运算。运算矩阵数组运算符规则运算符规则乘法*A*B:A的列数=B的行数.*同维数组幂^方阵.^数组的标量乘方A.^p:A对应元素的p次方,结果和A同维标量的数组乘方p.^A:p的数组元素次方,结果和A同维左除\B\A=inv(B)*A./或.\A./B=B.\A右除/B/A=B*inv(A)(ex207)2022/11/14电气工程*数组运算矩阵运算1212.3MATLAB语言流程控制关系运算六种关系运算符:==,~=,<,<=,>,>=运算结果是逻辑1(真)或0(假)逻辑运算逻辑运算符:&(与),|(或),~(非)运算结果是逻辑1(真)或0(假)逻辑关系函数:(见讲义第三章P26)2022/11/14电气工程2.3MATLAB语言流程控制关系运算2022/11/10122循环结构for结构while结构2022/11/14电气工程循环结构2022/11/10电气工程123(ex208)、(ex209)(ex210)、(ex211)2022/11/14电气工程(ex208)、(ex209)(ex210)、(ex21124顺序结构2022/11/14电气工程顺序结构2022/11/10电气工程125表达式语句段

if真假表达式语句段1

if真假语句段2else2022/11/14电气工程表达式语句段if真假表达式语句段1if真假语句段2126(ex212)表达式语句段1if真假语句段2elseif表达式语句段3真假

else2022/11/14电气工程(ex212)表达式语句段1if真假语句段2else127开关结构2022/11/14电气工程开关结构2022/11/10电气工程1282022/11/14电气工程2022/11/10电气工程129当开关表达式的值等于某表达式,执行该语句后结束该结构。程序的执行结果和各个case顺序无关。当需要在开关表达式满足若干个表达式之一时执行某一程序段,则用单元形式(用大括号把这些表达式括起来,用逗号分隔)case语句中条件不能重复,否则列在后面的条件将不能执行(ex213)2022/11/14电气工程当开关表达式的值等于某表达式,执行该语句后结束该结构。202130其它控制语句1)break语句终止循环语句的运行,对于多层嵌套循环结构,break只能终止最里层的循环。2)return语句中断当前函数运行返回调用处。3)pause语句

pause:暂停程序运行,如果敲击键盘,程序继续运行;

pause(n)

:暂停n秒;

pauseon:该语句后的pause语句有效

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论