Matlab语言数值和符号运算-编程-绘图.ppt
《Matlab语言数值和符号运算-编程-绘图.ppt》由会员分享,可在线阅读,更多相关《Matlab语言数值和符号运算-编程-绘图.ppt(163页珍藏版)》请在三一办公上搜索。
1、控制系统仿真,Chapter 2 Matlab语言数值运算、符号计算、程序设计、绘图西南石油大学电信学院自动化教研室主讲:张悦,2023/7/7,电信学院-自动化教研室-张悦,2,主要内容,4,Matlab语言的数值运算&符号计算,5,Matlab语言基本编程,Matlab绘图,6,2,电信学院-自动化教研室-张悦,2023/7/7,2023/7/7,电信学院-自动化教研室-张悦,3,2023/7/7,电信学院-自动化教研室-张悦,3,4,Matlab语言的数值运算&符号计算,5,Matlab语言基本编程,Matlab绘图,6,2023/7/7,电信学院-自动化教研室-张悦,4,常量(预定义变
2、量)是指在Matlab中已经预先定义其数值的参量。常量分为:实数常量和复数常量Z=a+bi z=r*exp(*i)r-复数的模;-复数幅角的弧度数,4.1 Matlab变量与赋值4.1.1 Matlab常量、预定义变量,2023/7/7,电信学院-自动化教研室-张悦,4,表4-1 Matlab中默认的常量,2023/7/7,电信学院-自动化教研室-张悦,5,4.1.1 Matlab常量、预定义变量,2023/7/7,电信学院-自动化教研室-张悦,5,表4-1 Matlab中默认的常量(续),2023/7/7,电信学院-自动化教研室-张悦,6,变量是数值计算的基本单元。与C语言和其他语言不同的是
3、,Matlab对于变量的使用无需提前定义,一个变量如果其名称在语句命令中第一次被合法使用,则此变量就被定义,同时Matlab会给该变量分配适当的内存。在运算表达式变量中不允许有未定义的变量。Matlab也不需要预先定义变量的类型。如果用户输入的变量已经存在,则Matlab则使用新输入的变量替换原有变量。,4.1.2 变量4.变量的定义,2023/7/7,电信学院-自动化教研室-张悦,6,2023/7/7,电信学院-自动化教研室-张悦,7,变量名由任意字母、数字或下划线组成。变量名必须以英文字母开头。变量名不能包含有空格等标点符号。变量名长度不超过31位,超过部分将被忽略。变量名区分字母的大小写
4、。特殊变量-全局变量:变量前加global,一般用大写字母书写全局变量。,4.1.2 变量2.变量命名规则,2023/7/7,电信学院-自动化教研室-张悦,7,2023/7/7,电信学院-自动化教研室-张悦,8,4.1.2 变量3.变量赋值语句,2023/7/7,电信学院-自动化教研室-张悦,8,变量=表达式,2023/7/7,电信学院-自动化教研室-张悦,9,Matlab预定义变量(如pi,i,j)有特殊的含义,在对变量命名时,应避开使用这些变量名,并避免对这些变量重新赋值。有些预定义变量也可作为变量使用,如i在Matlab中表示虚数单位,但也可以作为变量使用。,4.1.2 变量4.变量命名
5、说明,2023/7/7,电信学院-自动化教研室-张悦,9,2023/7/7,电信学院-自动化教研室-张悦,10,4.1.2 变量5.变量的操作-变量查看,2023/7/7,电信学院-自动化教研室-张悦,10,who和whos命令,Who和whos命令都用来列出matlab工作区中已驻留的变量清单。Whos给出变量的维数和性质。,2023/7/7,电信学院-自动化教研室-张悦,11,4.1.2 变量5.变量的操作-变量删除修改,2023/7/7,电信学院-自动化教研室-张悦,11,方法1:workplace直接删除和修改方法2:Command window指令操作,2023/7/7,电信学院-自
6、动化教研室-张悦,12,4.2 Matlab运算符与函数1.算术运算符,2023/7/7,电信学院-自动化教研室-张悦,12,表4-2 Matlab中常用的算术运算符,2023/7/7,电信学院-自动化教研室-张悦,13,4.2 Matlab运算符与函数2.关系运算符,2023/7/7,电信学院-自动化教研室-张悦,13,表4-3 Matlab中常用的关系运算符,2023/7/7,电信学院-自动化教研室-张悦,14,4.2 Matlab运算符与函数3.逻辑运算符,2023/7/7,电信学院-自动化教研室-张悦,14,表4-4 Matlab中常用的逻辑运算符,2023/7/7,电信学院-自动化教
7、研室-张悦,15,4.2 Matlab运算符与函数4.数学函数,2023/7/7,电信学院-自动化教研室-张悦,15,表4-5 Matlab中常用的数学函数,2023/7/7,电信学院-自动化教研室-张悦,16,4.2 Matlab运算符与函数4.数学函数,2023/7/7,电信学院-自动化教研室-张悦,16,表4-5 Matlab中常用的数学函数(续),2023/7/7,电信学院-自动化教研室-张悦,17,4.2 Matlab运算符与函数5.三角函数,2023/7/7,电信学院-自动化教研室-张悦,17,表4-6 Matlab中常用的三角函数,2023/7/7,电信学院-自动化教研室-张悦,
8、18,4.2 Matlab运算符与函数5.三角函数,2023/7/7,电信学院-自动化教研室-张悦,18,表4-6 Matlab中常用的三角函数(续),2023/7/7,电信学院-自动化教研室-张悦,19,4.2 Matlab运算符与函数6.运算优先级,2023/7/7,电信学院-自动化教研室-张悦,19,表4-7 运算符的优先级次序,2023/7/7,电信学院-自动化教研室-张悦,20,4.3 矩阵4.3.1 矩阵构建-1.直接输入法,2023/7/7,电信学院-自动化教研室-张悦,20,矩阵中的元素需要用()括住;矩阵中每行的元素之间需要用逗号(,)或空格符隔开;矩阵中行与行之间需要分号(
9、;)或回车键隔开,以便区分;矩阵中的元素可以是数值类型或表达式类型。,2023/7/7,电信学院-自动化教研室-张悦,21,4.3.1 矩阵的构建2.通过语句构造生成矩阵1,2023/7/7,电信学院-自动化教研室-张悦,21,first-向量的起始值;step-步长值;last-向量的结束值。,first:step:last语句,当step省略时默认步长值为1。,first:last语句,2023/7/7,电信学院-自动化教研室-张悦,22,矩阵就是由mn个数排列成m行n列的数表,可以是复数。向量是由m个实数组成的有序数组,是一个n1的矩阵(n维列向量),或一个1m的矩阵(m维行向量)。向量
10、组就是有限个相同维数的行向量或列向量组成的一组矩阵。一个向量是一个矩阵,一个向量组是n个矩阵;一个1n或n1矩阵可称为是一个向量,一个mn矩阵不是向量,也不是向量组。,4.3.1 矩阵的构建向量和矩阵完全相同吗 不完全,2023/7/7,电信学院-自动化教研室-张悦,22,2023/7/7,电信学院-自动化教研室-张悦,23,4.3.1 矩阵的构建2.通过语句构造生成矩阵2,2023/7/7,电信学院-自动化教研室-张悦,23,x=linspace(first,last,num),first-行向量的起始值;last-行向量的结束值;num-行向量中所含元素个数。如果num缺省,默认值为100
11、。,x=logspace(a,b,n),线性等分向量,对数等分向量,2023/7/7,电信学院-自动化教研室-张悦,24,4.3.1 矩阵的构建3.通过矩阵生成函数构造特殊矩阵,2023/7/7,电信学院-自动化教研室-张悦,24,表4-8 特殊矩阵函数,2023/7/7,电信学院-自动化教研室-张悦,25,4.3.1 矩阵的构建3.通过矩阵生成函数构造特殊矩阵,2023/7/7,电信学院-自动化教研室-张悦,25,表4-8 特殊矩阵函数(续),2023/7/7,电信学院-自动化教研室-张悦,26,4.3.1 矩阵的构建3.通过矩阵生成函数构造特殊矩阵,2023/7/7,电信学院-自动化教研室
12、-张悦,26,表4-8 特殊矩阵函数(续),2023/7/7,电信学院-自动化教研室-张悦,27,如果矩阵为空矩阵,则可以直接写成A=。空矩阵是Matlab中定义大小为0的变量。当没有其他合适的结果时,在Matlab中的许多函数返回空矩阵。空矩阵作用如下:(1)在没有空矩阵参与运算时,计算结果中的“空”可以合理地解释所得结果的含义;(2)运用空矩阵对其他非空矩阵赋值,可以使矩阵变小,但不能改变被赋值矩阵的维数。,4.3.1 矩阵的构建4.空矩阵,2023/7/7,电信学院-自动化教研室-张悦,27,2023/7/7,电信学院-自动化教研室-张悦,28,4.3.2 矩阵元素操作,2023/7/7
13、,电信学院-自动化教研室-张悦,28,%列矩阵元素数据的获取 B=1;3;5;7;9;B(3)%表示取出列矩阵B的第3个元素ans=5 B(5,1)%表示取出列矩阵B的第5行第1列元素ans=9 B(2:4)%列矩阵第24个元素ans=3 5 7,%行矩阵元素数据获取 A=3 5-2 6 0 9;A(2)%表示取出行矩阵A的第2个元素ans=5 A(1,4)%表示取出行矩阵A的第1行第4列的元素ans=6 A(3:5)%表示取出行矩阵A的第35个元素ans=-2 6 0,2023/7/7,电信学院-自动化教研室-张悦,29,4.3.2 矩阵元素操作,2023/7/7,电信学院-自动化教研室-张
14、悦,29,一般矩阵元素数据的获取,2023/7/7,电信学院-自动化教研室-张悦,30,4.3.3 矩阵和数组基本运算 1.运算指令,2023/7/7,电信学院-自动化教研室-张悦,30,表4-9 矩阵和数组运算指令,2023/7/7,电信学院-自动化教研室-张悦,31,4.3.3 矩阵和数组基本运算 1.运算指令,数组加减(a.b)是对应元素相加减,与矩阵加减等效。数组乘除(a.*b,a./b,a.b)a和b必须有相同的行和列;a和b两个数组对应元素相乘。a=1 2 3;4 5 6;7 8 9;b=2 4 6;1 3 5;7 9 10;a.*b%数组相乘,对应元素相乘 a*b%矩阵相乘,线性
15、代数 ans=ans=2 8 18 25 37 46 4 15 30 55 85 109 49 72 90 85 133 172,2023/7/7,电信学院-自动化教研室-张悦,32,数组中的元素可以是字符等;矩阵中的元素只能是数;这是两者最直观的区别。运算规则不同:数组是元素对元素的运算,无论什么样的运算对数组中的元素都是平等进行的;而矩阵采用线性代数的运算方式。因为矩阵是数学概念(线性代数里的);数组是计算机上的概念。你见过纯数学里有数组的概念吗?没有。因为计算机上(准确的说是信息科学中)常用到线性代数的知识,就引用了矩阵的概念。,4.3.3 矩阵和数组基本运算数组和矩阵完全相同吗 不完全
16、,2023/7/7,电信学院-自动化教研室-张悦,32,2023/7/7,电信学院-自动化教研室-张悦,33,4.3.3 矩阵和数组基本运算2.矩阵函数指令,2023/7/7,电信学院-自动化教研室-张悦,33,表4-10 Matlab中基本矩阵函数指令,2023/7/7,电信学院-自动化教研室-张悦,34,4.3.3 矩阵和数组基本运算2.矩阵函数指令,2023/7/7,电信学院-自动化教研室-张悦,34,表4-10 Matlab中基本矩阵函数指令(续),2023/7/7,电信学院-自动化教研室-张悦,35,线性方程组的一般矩阵形式可以表示如下:AX=B,其中A为等式左边各方程式的系数项,A
17、=(aij)mn,X为欲求解的未知项,B代表等式右边之已知项,B=(b1,b2,bn)T。线性方程组有解的充分必要条件是:r(A|b)=r(A),且当r(A|b)=n时,有唯一解;当r(A|b)n时,有无穷多解。,4.4 数值运算4.4.1 线性方程组,2023/7/7,电信学院-自动化教研室-张悦,35,2023/7/7,电信学院-自动化教研室-张悦,36,4.4 数值运算,Matlab一种演算纸式的科学工程计算语言。Matlab的两种基本的数值运算是矩阵和多项式。数值计算的交互系统,通过简单的“问答式”操作即可获得可以信赖的计算结果;繁杂的数值计算只要一两个指令即可轻松实现。,4.4.1
18、线性方程组,在Matlab中,如果有线性方程组AX=B,则X=AB,这种利用矩阵相除的方法即为直接解法。假设A为mn矩阵,根据m和n的不同关系,线性方程组的解可以分为3种情况:当m=n时,且A可逆(A存在逆矩阵)时,给出唯一解;当mn时,矩阵给出方程的最小二乘解;当mn时,矩阵给出方程的最小范数解。,2023/7/7,电信学院-自动化教研室-张悦,38,例:求下列线性方程式的根。用实现,即X=AB。用逆矩阵求解:X=A-1B,即X=inv(A)*B,4.4.1 线性方程组,2023/7/7,电信学院-自动化教研室-张悦,38,2023/7/7,电信学院-自动化教研室-张悦,39,4.4.1 线
19、性方程组,方程的个数和未知数的个数不相等时,可采用消去法。将增广矩阵(A B)化为简化阶梯形,若系数矩阵的秩不等于增广矩阵的秩,则方程组无解。若系数矩阵的秩等于增广矩阵的秩,则方程组有解。方程组的解就是简化阶梯形所对应的方程组的解。例:解线性方程组。A=1-2 3 2 2;4 2 1 3 4;2 3 1 1 1;rref(A)ans=1.0000 0 0 0.8519 1.2593 0 1.0000 0-0.2963-0.4815 0 0 1.0000 0.1852-0.0741,2023/7/7,电信学院-自动化教研室-张悦,40,多项式:用行向量:P=a0,a1,an-1,an表示。用命令
20、poly(A)如果A是形如:a0,a1,an-1,an的向量,则命令poly(A)生成(x-a0)(x-a1)(x-an-1)(x-an)多对应的多项式的系数向量;如果A是方阵,则命令poly(A)生成的式子是矩阵A的特征多项式。,4.4.2 多项式,2023/7/7,电信学院-自动化教研室-张悦,40,2023/7/7,电信学院-自动化教研室-张悦,41,例:已知向量A=1,-34,-80,0,0,用此向量构造一多项式,并显示结果。,4.4.2 多项式,2023/7/7,电信学院-自动化教研室-张悦,41,(x-1)(x+34)(x+80)x2=x5+113x4+2606x3-2720 x2
21、,2023/7/7,电信学院-自动化教研室-张悦,42,例:求三阶方阵A的特征多项式。,4.4.2 多项式,2023/7/7,电信学院-自动化教研室-张悦,42,2023/7/7,电信学院-自动化教研室-张悦,43,4.4.2 多项式常用的多项式函数,2023/7/7,电信学院-自动化教研室-张悦,43,表4-11 常用的多项式函数,2023/7/7,电信学院-自动化教研室-张悦,44,4.4.2 多项式,例:求两个多项式的和、积、商。a=5,4,3,2,1;b=3,0,1;c=a+0,0,b%求和 d=conv(a,b)%求积%求商,结果包含商多项式%和余数多项式两部分 div,rest=d
22、econv(d,a),2023/7/7,电信学院-自动化教研室-张悦,44,c=5 4 6 2 2d=15 12 14 10 6 2 1div=3 0 1rest=0 0 0 0 0 0 0,2023/7/7,电信学院-自动化教研室-张悦,45,4.4.2 多项式,例:求多项式p(x)的微分、根和x=1时的值。p=2-6 3 0 7;%求微分 q=polyder(p)%求根 x=roots(p)%求值 polyval(p,1),q=8-18 6 0 x=1.9322+0.4714i 1.9322-0.4714i-0.4322+0.8355i-0.4322-0.8355ians=6,2023/7
23、/7,电信学院-自动化教研室-张悦,45,课堂作业,4-1 设矩阵A和B满足关系式:AB=A+2B,已知:A=4,2,3;1,1,0;-1,2,3;求矩阵B。4-2 求线性方程组的解。4-3 将表达式(x-4)(x+5)(x2-6x+9)展开为多项式形式,并求其对应的一元n次方程的根。4-4 已知一元四次方程对应的4个根为:-5,4,3,3,求这个方程对应的表达式原型。,2023/7/7,电信学院-自动化教研室-张悦,47,4.5 符号运算,前边所做的运算都是针对数值进行的,数值运算具有简单方便、面向实用等优点,广泛应用工程实践及科学研究等各个方面,但同时它也有一些缺点,如无法得到无误差的最终
24、解,不适用于非数值运算的场合等。引入符号运算就能解决这方面的问题,就像平时进行数学公式推导一样,符号运算允许在运算对象和运算过程中出现非数值的符号变量,这为用户进行数据分析提供了有力工具。Matlab符号运算是在符号数学工具箱(Symbolic Math Toolbox)支持下完成的。,2023/7/7,电信学院-自动化教研室-张悦,47,2023/7/7,电信学院-自动化教研室-张悦,48,4.5.1 符号变量和符号表达式,%使用sym函数创建符号变量和表达式x=sym(x)f1=sym(a*x2+b*x+c)%syms可定义多个符号syms a b c x k t yf2=a*(2*x-t
25、)3+b*sin(4*y)%用findsym来确定符号表达式中的符号findsym(f2),x=x f1=a*x2+b*x+c f2=a*(2*x-t)3+b*sin(4*y)ans=a,b,t,x,y,注意:在上面的符号表达式中,系统会自动将x作为自变量来处理,而将a,b,c等作为常量参数。也就是说若符号表达式中含有多于一个符号变量时,如果没有事先指定哪一个作为自变量,Matlab将会按数学常规自行决定。,2023/7/7,电信学院-自动化教研室-张悦,48,2023/7/7,电信学院-自动化教研室-张悦,49,4.5.1 符号变量和符号表达式,f1=sym(a*x2+b*x+c);df=d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 语言 数值 符号 运算 编程 绘图
链接地址:https://www.31ppt.com/p-5439326.html