薛定宇控制系统计算机辅助设计chap 2_第1页
薛定宇控制系统计算机辅助设计chap 2_第2页
薛定宇控制系统计算机辅助设计chap 2_第3页
薛定宇控制系统计算机辅助设计chap 2_第4页
薛定宇控制系统计算机辅助设计chap 2_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

第2

MATLAB语言程序设计基础薛定宇著《控制系统计算机辅助设计——MATLAB语言与应用》清华大学出版社1/17/20241控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用东北大学信息学院MATLAB语言的简洁高效性MATLAB语言的科学运算功能MATLAB语言的绘图功能MATLAB庞大的工具箱与模块集MATLAB强大的动态系统仿真功能

MATLAB

语言是当前国际上自动控制领域的首选计算机语言,也是很多理工科专业最适合的计算机数学语言,本课程以MATLAB为主要计算机语言。1/17/20242控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用本章主要内容MATLAB程序设计语言基础基本数学运算MATLAB语言流程控制函数编写与调试二维图形绘制三维图形表示MATLAB语言与现代科学运算1/17/20243控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.1MATLAB程序设计语言基础MATLAB语言的变量名规则由一个字母引导,后面可以为其他字符区分大小写Abc

ABc有效MYvar12,MY_Var12

和MyVar12_错误的变量名12MyVar,_MyVar12

MATLAB的保留常量eps,i,j,i=sqrt(-1),pi,NaN,Inflastwarn,lasterr

1/17/20244控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用数值型数据结构双精度数值变量IEEE标准,64位(8字节),11指数位,53数值位和一个符号位

double()函数的转换其他数据类型uint8,常用于图像表示和处理,8位int8(),int16(),int32(),uint16(),uint32()1/17/20245控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用符号型变量数据类型符号型,sym(A),常用于公式推导变量声明采用变精度函数求值【例2-1】求出自然对数底的前300位有效数字1/17/20246控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用MATLAB支持的其他数据结构基本数值变量类型:双精度复数矩阵字符串型数据:用单引号括起来多维数组:是矩阵的直接扩展,多个下标单元数组:将不同类型数据集成到一个变量名下面,用{}表示结构体:A.b,引用也用A.b,不是A->b类与对象:可以定义重载函数1/17/20247控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用MATLAB的基本语句结构直接赋值语句【例2-2】表示矩阵1/17/20248控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-3】试输入复数矩阵需要避免的语句1/17/20249控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用函数调用语句冒号表达式1/17/202410控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-4】用不同的步距生成(0,p)间向量1/17/202411控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用子矩阵提取基本语句格式【例2-5】子矩阵提取提取A

矩阵全部奇数行,所有列提取A

矩阵3,2,1行、2,3,4列构成子矩阵将A

矩阵左右翻转,即最后一列排在最前面1/17/202412控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.2基本数学运算2.2.1矩阵的代数运算2.2.2矩阵的逻辑运算2.2.3矩阵的比较运算2.2.4解析结果的化简与变换2.2.5基本数论运算1/17/202413控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.2.1矩阵的代数运算矩阵表示矩阵转置数学表示MATLAB

求解1/17/202414控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用矩阵加减法注意其一为标量的情形矩阵乘法数学表示MATLAB表示注意相容性1/17/202415控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用矩阵除法矩阵左除:AX=B,求XMATLAB求解:X=A\B最小二乘解

矩阵右除:XA=B,求XMATLAB求解:X=B/A最小二乘解

1/17/202416控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用矩阵翻转左右翻转上下翻转旋转90o如何旋转180o?矩阵乘方

A

为方阵,求

MATLAB实现:1/17/202417控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用点运算矩阵对应元素的直接运算例如1/17/202418控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.2.2矩阵的逻辑运算逻辑变量:当前版本有逻辑变量对double变量来说,非0表示逻辑1逻辑运算(相应元素间的运算)与运算或运算非运算异或运算1/17/202419控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.2.3矩阵的比较运算各种允许的比较关系

>,>=,<,<=,==,~=,find(),all(),any()实例1/17/202420控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.2.4解析结果的化简与变换其他常用化简函数【例2-6】1/17/202421控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用返回化简方法为因式分解方法多项式展开方法变量替换1/17/202422控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-7】由表达式替换【例2-6】中定义多项式中的

算子。该语句将得出替换的结果:1/17/202423控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.2.5基本数论运算1/17/202424控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-8】对下面的数据进行取整运算-0.2765,0.5772,1.4597,2.1091,1.191,-1.61871/17/202425控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-9】3x3Hilbert矩阵的有理数变换【例2-10】求和的最大公约数、最小公倍数或1/17/202426控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.3MATLAB语言流程控制2.3.1循环结构for结构while结构1/17/202427控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-11】用循环求解1/17/202428控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-12】求1/17/202429控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-13】求满足的最小值1/17/202430控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.3.2转移结构1/17/202431控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用1/17/202432控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-14】用循环和语句求解的最小m1/17/202433控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.3.3开关结构1/17/202434控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用1/17/202435控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用和C语言的区别当开关表达式的值等于某表达式,执行该语句后结束该结构,不用break同时满足若干个条件之一,则用单元形式otherwise语句,不是default程序的执行结果和各个case顺序无关case语句中条件不能重复,否则列在后面的条件将不能执行1/17/202436控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.3.4

试探结构全新结构1/17/202437控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.4

函数编写与调试M-函数是MATLAB编程的主流方法除了M-函数外,还可以采用M-script文件M-script适合于小规模运算【例2-15】若最大值不为10000,需修改程序对m和10000值的设置,不适合于M-script1/17/202438控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.4.1

MATLAB语言函数的

基本结构

nargin,nargout,varargin,varargout1/17/202439控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-16】前面的要求,m,10000无需修改程序1/17/202440控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-17】编写一个函数生成若只给出一个输入参数,则会自动生成一个方阵在函数中给出合适的帮助信息检测输入和返回变量的个数1/17/202441控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用1/17/202442控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用1/17/202443控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-18】函数的递归调用:阶乘1/17/202444控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-19】比较递归算法和循环算法在

数列中应用的优劣1/17/202445控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.4.2可变输入输出个数【例2-20】

可以计算两个多项式的积用varargin

实现任意多个多项式的积1/17/202446控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.4.3inline函数和匿名函数inline函数,可以免去文件MATLAB7.01/17/202447控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.5

二维图形绘制

2.5.1二维图形绘制基本语句构造向量:1/17/202448控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用1/17/202449控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用1/17/202450控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-21】1/17/202451控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-22】1/17/202452控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用界面编程中的常用语句:1/17/202453控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.5.2其他二维图形绘制语句1/17/202454控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-23】绘制极坐标曲线1/17/202455控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-24】在不同的区域绘制正弦信号的不同表示将一个图形窗口分割成若干个小的区域1/17/202456控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.5.3隐函数绘制及应用隐函数【例2-25】1/17/202457控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.5.4图形修饰直接采用工具栏文字修饰特殊符号表上下标分别用^和_表示优越性MATLAB7.0的新功能1/17/202458控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.6

三维图形绘制

2.6.1

三维曲线绘制stem3(),fill3(),bar3()等1/17/202459控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-26】参数方程1/17/202460控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.6.2

三维曲面绘制一般曲面绘制其他函数,surfl(),surfc(),waterfall()等高线绘制contour(),contour3()1/17/202461控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-27】绘制的三维表面图1/17/202462控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-28】绘制该曲线的三维表面图1/17/202463控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用视角转换的方法图形窗口工具栏

2.6.3三维图形视角设置1/17/202464控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-29】绘制的三视图1/17/202465控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.7

MATLAB语言与

现代科学运算

1、矩阵的参数化分析矩阵的行列式2.7.1线性代数问题的MATLAB求解1/17/202466控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用Hilbert矩阵的通项为【例2-30】计算10阶Hilbert矩阵的行列式1/17/202467控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-31】变量的Vandermonde矩阵的特征多项式1/17/202468控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用矩阵的迹矩阵的秩矩阵的范数只能用于数值解求取1/17/202469控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用矩阵的特征多项式、特征方程与特征根多项式及多项式矩阵的求值1/17/202470控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用矩阵的特征值问题矩阵指数和指数函数矩阵其他函数如1/17/202471控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-32】矩阵的指数和指数函数1/17/202472控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2、矩阵的分解矩阵的相似变换矩阵的三角分解1/17/202473控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用对称矩阵的Cholesky分解矩阵的正交基矩阵的奇异值分解矩阵的条件数1/17/202474控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用3、方程求解问题及MATLAB实现矩阵求逆矩阵的广义逆1/17/202475控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用线性方程求解的不同情况求解①如果矩阵A为非奇异方阵,则方程的惟一解为或1/17/202476控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用②若A为奇异方阵,如果A和[A,B]矩阵的秩相等,则线性代数方程有无穷多解③若A和[A,B]矩阵的秩不同,则原方程没有解,只能用求出方程的最小二乘解基础解系一个特解1/17/202477控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-33】线形方程组

1/17/202478控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用Lyapunov方程求解Sylvester方程求解1/17/202479控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用一般Lyapunov方程和Sylvester方程的解析解函数1/17/202480控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用Riccati方程求解1/17/202481控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.7.2常微分方程问题的MATLAB求解1、一阶常微分方程组的数值解法ode23()、ode45()、ode15s()通用调用格式:1/17/202482控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-34】微分方程组

1/17/202483控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用1/17/202484控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用附加参数的M-函数1/17/202485控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2、常微分方程的转换单个高阶微分方程ode45(),ode15s()1/17/202486控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用高阶微分方程组1/17/202487控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-35】方程1/17/202488控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用1/17/202489控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用【例2-36】3、线性常微分方程的解析求解1/17/202490控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用1/17/202491控制系统计算机辅助设计-MATLAB语言与应用——MATLAB语言与应用2.7.3

温馨提示

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

评论

0/150

提交评论