《第3章MATLAB的数值运算与符号运算》由会员分享,可在线阅读,更多相关《第3章MATLAB的数值运算与符号运算(53页珍藏版)》请在金锄头文库上搜索。
1、MATLAB 与控制系统仿真,第3章 MATLAB的数值运算与符号运算,主要内容,3.1 数组与矩阵的基本操作 3.1.1 数组与矩阵的输入 3.1.2 数组与矩阵的元素操作 3.1.3 数组与矩阵的输出 3.2 MATLAB的基本数学运算 3.2.1 算术运算 3.2.2 关系运算 3.2.3 逻辑运算 3.2.4 运算优先级,主要内容(续),3.3 MATLAB的基本符号运算 3.3.1 符号运算基本函数及示例 3.3.2 符号代数方程求解 3.3.3 符号微积分运算 3.3.4 Laplace, Z变换及反变换 本章小结,3.1 数组与矩阵的基本操作,3.1.1 数组与矩阵的输入,MAT
2、LAB中有不同的方法生成矩阵。 概括起来,可以直接赋值输入,以快捷方式输入,通过提示语句交互输入、通过内建函数产生、加载外部数据文件等,3.1.1 数组与矩阵的输入,直接赋值输入矩阵或数组 这种方式是最基本且最直接的输入方式。 注:演示例1 以直接赋值方式输入矩阵或数组。,3.1.1 数组与矩阵的输入,快捷方式输入矩阵或数组 增量式输入 通过把小矩阵扩展成为大矩阵而输入。 注:演示例2 以快捷方式输入矩阵或数组。,3.1.1 数组与矩阵的输入,通过提示语句输入矩阵或数组 x = input(prompt),或 x= input(prompt,s) 在屏幕上显示一个提示符,等待用户从键盘输入,并
3、读取用户输入到工作空间中。 第一种方式供输入数字,而后一种方式供输入字符串。 注:演示例3 通过提示语句输入矩阵或数组。,3.1.1 数组与矩阵的输入,通过内建函数产生矩阵或数组 MATLAB提供了一系列的函数可以用来初始化矩阵。,3.1.1 数组与矩阵的输入,3.1.1 数组与矩阵的输入,3.1.1 数组与矩阵的输入,3.1.1 数组与矩阵的输入,注:查阅部分函数的帮助文档并导读 注:演示例4 通过MATLAB内建函数产生矩阵或数组。,3.1.1 数组与矩阵的输入,通过加载外部数据文件产生矩阵或数组 对于大数据量的矩阵通常保存在文件中,以便于修改。 通过函数将其加载到工作空间中,从而恢复以前
4、保存过的变量。常用格式: load -ascii filename %加载ascii码数据文件 load -mat filename %加载二进制数据文件,3.1.1 数组与矩阵的输入,注:演示例5 设从其它程序产生了ascii码数据文件。将其保存在当前工作路径下,名为mydata.dat。通过文件加载的方式将其导入工作空间。,3.1.2 数组与矩阵的元素操作,数组/矩阵元素的操作主要有提取(部分)元素、修改或赋值给(部分)元素值、删除(部分)元素及数组/矩阵的翻转等。 MATLAB提供了数组/矩阵翻转的函数。,操作数组/矩阵的MATLAB函数,3.1.2 数组与矩阵的元素操作,注:演示例6:
5、 对数组/矩阵的元素操作。,3.1.3 数组与矩阵的输出,一般地,在命令窗口输入的函数语句执行完毕后,即在工作空间产生其运行结果。将来可以在命令窗口输入变量名查看该变量值,也可以直接在工作空间中打开进行查看或编辑。 如果用户需要将其保存到文件中,一是可以保存整个工作空间,一是可以将变量保存为数据文件,供将来调用。,3.1.3 数组与矩阵的输出,注:演示例7 将变量保存为数据文件。 注:演示例8 保存整个工作空间。,3.2 MATLAB的基本数学运算,3.2.1 算术运算,矩阵/数组的加减运算 矩阵与数组的加减运算规则相同,运算符也完全相同。 注:演示例9 求两个矩阵的和。,3.2.1 算术运算
6、,矩阵/数组的乘法运算 数组相乘是对应元素的相乘,这与矩阵相乘是不同的。矩阵A、B相乘要求A的列数和B的行数相等,除非其中一项是标量。矩阵相乘可表示为:,3.2.1 算术运算,注:演示例10 接例9,进行两个矩阵或数组相乘。,3.2.1 算术运算,矩阵/数组的除法运算 数组的除法分为A./B即 A.B,即 矩阵的除法分为AB和A/B, 一般来说, 是方程 的解,且,3.2.1 算术运算,注:演示例11 已知方程组 用矩阵除法求解。,3.2.1 算术运算,矩阵/数组的乘方运算 矩阵乘方AB有各种运算情况,3.2.1 算术运算,数组乘方 要求A和B为同维数组,或其中的一个为标量。以A中的元素为底,
7、B中相应位置的元素为幂做乘方运算。 注:演示例12 进行矩阵乘方运算。 注:演示例13 进行数组乘方运算。,3.2.1 算术运算,矩阵/数组的转置 当A中元素均为实数时,A表示矩阵转置,如A为复数矩阵,则为共轭转置。 A.表示数组转置,不管其元素是否为实数,不进行共轭转置。 注:演示例14 进行矩阵/数组的转置运算。,3.2.2 关系运算,关系运算符对比较的两个数组A和B进行关系运算。 返回值为一个与A和B维数相同的数组。当A和B相应位置进行关系运算的结果为真时,结果数组的相应位置置1,否则置0。A和B可以是标量。 注:演示例15 进行数组的关系运算。,3.2.3 逻辑运算,逻辑运算符对进行比
8、较的两个数组A和B进行逻辑运算。 非零元素表示真(1),0元素表示假(0)。 逻辑运算返回值为一个与A和B维数相同的数组。当A和B相应位置进行逻辑运算的结果为真时,结果数组的相同位置置1,否则置0。 A和B可以是标量。,3.2.3 逻辑运算,MATLAB还提供了大量函数用于逻辑判断,可以通过“is*”搜索MATLAB帮助文档查询更多的状态测试函数及其帮助。 注:状态测试函数及其帮助文档导读,3.2.3 逻辑运算,注:演示例16 进行数组逻辑运算。 注:演示例17 给出程序判断用户是否输入了非空字符串,如果输入则打印出来。,3.2.4 运算优先级,正如其它高级程序设计语言一样,对不同运算符,MA
9、TLAB设定了运算符的优先级(Operator Precedence)。 以下同一优先级,程序遵循先左后右执行;优先级不同时,先高级后低级执行。,3.2.4 运算优先级,(1)Parentheses ( ) (2)数组转置(.), 数组幂(.),共轭转置 (), 矩阵乘方 () (3)Unary plus (+), unary minus (-),非 () (4)点乘 (.*), 右点除 (./),左点除 (.), 矩阵乘(*),矩阵右除(/), 矩阵左除 () (5)加减 (+,-) (6)冒号运算 (:),3.2.4 运算优先级,(7)小于 (), 大于等于 (=),等于 (= =), 不
10、等 (=) (8)与 (&) (9)或 (|) (10)先决与,Short-circuit AND(&) (11)先决或,Short-circuit OR (|),3.3 MATLAB的基本符号运算,符号数学工具箱,MATLAB的符号数学工具箱(Symbolic Math Toolbox)将符号运算结合到MATLAB的数值运算环境中。 符号数学工具箱是以Maple软件内核为符号运算的引擎,当MATLAB进行符号运算时,就转入Maple去计算并将结果返回到MATLAB的命令窗口。,符号数学工具箱,符号数学工具箱与其它工具箱不同,它不针对特殊专业或专业分支,而适用于广泛的用途;它使用字符串来进行符
11、号分析,而不是数值分析。它涉及微积分、简化、复合、求解代数方程及微分方程等,有丰富的线性代数工具,支持Fourier,Laplace,z变换及逆变换。,3.3.1 符号运算基本函数,常使用的符号表达式的创建方法有2种。需根据使用场合进行选择。 创建符号型数据变量有专门的函数sym和syms。 syms需要在具体创建一个符号表达式之前,将表达式所包含的全部符号变量创建完毕。,3.3.1 符号运算基本函数,sym函数的用处之一是创建单个的符号变量。这种创建方式不需要在前面有任何说明,使用非常快捷。正因如此,此创建过程中,包含在表达式内的符号变量并未得到说明,也就不存在于工作空间。 演示例18: 使
12、用syms函数与sym函数的示例。,3.3.2 符号代数方程求解,solve函数对代数方程求解 dsolve函数对符号常微分方程求解。 注:上述函数的帮助文档导读,3.3.2 符号代数方程求解,使用说明:对于一个表达式中的多个参数,函数选取自由变量有以下几个原则: 按照函数中的参数选取指定自由变量; 如未指定,对表达式中的多个变量,首先选择x为自由变量。如果没有x,则选择字母顺序中最接近x的字符变量;如与x距离相同,选x后面的字符变量; 小写字母优先于所有大写字母; 小写字母i,j不能作为自由变量。,3.3.2 符号代数方程求解,注:演示例19 求解方程 注:演示例 20 求解方程组,3.3.
13、2 符号代数方程求解,注:演示例21 求微分方程 的通解,及当 时的特解。,3.3.3 符号微积分运算,3.3.3 符号微积分运算,注:上述函数的帮助文档导读 注:演示例22 求积分和微分示例。,3.3.4 Laplace,Z变换及反变换,Laplace变换及反变换 Laplace变换 定义为 Laplace反变换 定义为,3.3.4 Laplace,Z变换及反变换,在符号工具箱中采用函数L = laplace(F)和F = ilaplace(L)进行变换与反变换。 注:函数帮助文档导读 注:演示例23 求拉氏变换和反变换示例。,3.3.4 Laplace,Z变换及反变换,Z变换及其反变换 Z
14、变换定义为: Z反变换定义为:,3.3.4 Laplace,Z变换及反变换,在符号工具箱中采用函数F = ztrans(f) 和f = iztrans(F)进行变换与反变换。 注:函数帮助文档导读 注:演示例24 求Z变换及其反变换示例。,本章小结,MATLAB具有强大数值计算及符号计算功能。数值计算使用已定义的变量进行计算,而符号计算则可以使用未定义的符号变量。 数组与矩阵的基本操作可以归结为数组与矩阵的输入、输出操作及对其元素的操作。介绍了5种输入方法,不同的元素操作方法和输出方法。,本章小结(续),数值运算主要包含算术运算、关系运算、逻辑运算及它们的组合运算。分别介绍了这些运算,并在最后说明了运算的优先级。 符号运算内容丰富。介绍了代数方程求解、符号微积分计算、Laplace变换及反变换与Z变换及反变换的符号运算。,