收藏 分享(赏)

第2章 MATLAB运算.ppt

上传人:gnk289057 文档编号:10171398 上传时间:2019-10-16 格式:PPT 页数:63 大小:472KB
下载 相关 举报
第2章 MATLAB运算.ppt_第1页
第1页 / 共63页
第2章 MATLAB运算.ppt_第2页
第2页 / 共63页
第2章 MATLAB运算.ppt_第3页
第3页 / 共63页
第2章 MATLAB运算.ppt_第4页
第4页 / 共63页
第2章 MATLAB运算.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

1、第2章 MATLAB数值计算 (Mathematics),第2章 MATLAB数值计算,2.1 变量和数据 2.2 矩阵和数组 2.3稀疏矩阵 2.4多项式 2.5元胞数组和结构数组 2.6数据分析 2.7矩阵操作,2.1 变量和数据 2.1.1 数据类型,MATLAB7.3定义了15种基本的数据类型 ,包括整型、浮点型、字符型和逻辑型等 。,2.1.2 数据,1. 数值的表达方式 数值采用十进制表示,可以用带小数点的形式直接表示,也可以用科学计数法,数值的表示范围是10-30910309 。 例如: -2、5.67、2.56e-56(表示2.5610-56)、4.68e204(表示4.681

2、0204),2. 矩阵和数组的概念,标量(Scalar):是指11的矩阵,即只含一个数的矩阵。 向量(Vector):是指1n或n1的矩阵,即只有一行或者一列的矩阵。 矩阵(Matrix):是一个矩形的数组,即二维数组,其中向量和标量都是矩阵的特例,00矩阵为空矩阵()。 数组(Array):是指n维的数组,为矩阵的延伸,其中矩阵和向量都是数组的特例。,3.复数(Complex),复数由实部和虚部组成,MATLAB用特殊变量“i”和“j”表示虚数的单位。z=a+b*i或z=a+b*jz=a+bi或z=a+bj(当b为常量时)z=r*exp(i*theta) 得出一个复数的实部、虚部、幅值和相角

3、。a=real(z) %计算实部b=imag(z) %计算虚部r=abs(z) %计算幅值t=angle(z) %计算相角,2.1.3 变量(Variables),1. 变量的命名规则变量名区分字母的大小写。 变量名不能超过63个字符,第63个字符后的字符被忽略。 变量名必须以字母开头,变量名的组成可以是任意字母、数字或者下划线,但不能含有空格和标点符号(如,。%等)。 关键字(如if、while等)不能作为变量名。,2. 特殊变量,3.内存变量的显示与删除who用于显示在MATLAB工作空间中已经驻留的变量名清单, Whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。

4、Clear删除MATLAB工作空间中的变量。,2.2 矩阵和数组 2.2.1矩阵输入,(1) 矩阵元素应用方括号()括住; (2) 每行内的元素间用逗号或空格隔开; (3) 行与行之间用分号或回车键隔开; (4) 元素可以是数值或表达式。,矩阵表示应遵循以下基本常规:,1. 通过显式元素列表输入矩阵 例如: c=1 2;3 4;5 3*2 % 表示构成矩阵,分号分隔行,空格分隔元素 2.通过语句生成矩阵 (1) 使用from:step:to方式生成向量 from、step和to分别表示开始值、步长和结束值。当step省略时则默认为step=1。,(2) 使用linspace和logspace函

5、数linspace(a,b,n) a、b、n分别表示开始值、结束值和元素个数,n如果省略则默认值为100 。 logspace(a,b,n) a、b、n分别表示开始值10a 、结束值10b和数据个数,n,如果省略则默认值为50 。,3. 由矩阵生成函数产生特殊矩阵,1. 矩阵的下标(Subscript) (1) 全下标方式 一个mn的a矩阵的第i行第j列的元素表示为a(i,j)。 (2) 单下标方式 以mn的矩阵a为例,若元素a(i,j)则对应的“单下标”为s= (j-1)mi。,2.2.2 矩阵元素,a(1,2) a(4),a(2,3) a(8),2. 子矩阵块的产生子矩阵是从对应矩阵中取出

6、一部分元素构成的。子矩阵也可以利用逻辑矩阵(logical matrix)来标识。,3. 矩阵的赋值矩阵的赋值有:全下标方式、单下标方式和全元素方式。 4. 矩阵元素的删除 可以对矩阵的单个元素、子矩阵块和所有元素赋值为空矩阵进行删除操作 ,就是简单地将其赋值为空矩阵(用表示)。 EX: a(:,3)= %删除一列元素 a(1)= %删除一个元素,矩阵变为向量 a= %删除所有元素为空矩阵,5. 生成大矩阵 可以通过方括号“”实现将小矩阵生成一个较大的矩阵。例:a;a 与a,a的区别6. 矩阵的翻转 可以通过矩阵翻转函数对矩阵进行翻转。,2.2.3 字符串(Character Arrays),

7、一个字符串由多个字符组成,用单引号()来界定。字符串是按行向量进行存储的。 1. 字符串占用的字节 每一个字符会占用两个字节。 str2=I like MATLAB %重复单引号来输入含有单引号的字符串,2. 字符串函数 length:用来计算字符串的长度。 double:用来查看字符串的ASCII码储存内容。 char:用来将ASCII码转换成字符串形式。 class或ischar:用来判断某一个变量是否为字符串。,3. 使用一个变量来储存多个字符串 (1) 多个字符串组成一个新的行向量 将多个字符串变量直接用“,”连接。 (2) 使用二维字符数组 每个字符串放在一行构成二维字符。 (3)

8、使用strcat、strvcat和char函数,总是按最长的设置,不足的末尾用空格补齐。 例如: str4=strcat(str1,str2,str3),4.常用的字符串函数 strcat(s1,s2,s3)返回s1,s2,s3的连接字符串。 strvcat(s1,s2,s3)返回s1,s2,s3的垂直连接字符串。 strmatch(s1,s2)逐行搜索字符串s2,给出以s1开头的那些行的行号。 strrep(s1,s2,s3)吧字符串s1的所有出现s2的地方替换为s3。,strcmp(s1,s2)比较字符串s1,s2是否相等;是返回1,否则为0. strcmpi(s1,s2)在忽略字母大小写

9、的情况下,比较字符串s1,s2是否相等;是返回1,否则为0. strcmp(s1,s2,n)比较字符串s1,s2的前n个字符是否相等. strcmpi(s1,s2,n)在忽略字母大小写的情况下,比较字符串s1,s2的前n个字符是否相等.,5. 执行字符串 使用eval命令直接“执行”某一字符串。 EX: str9=a=2*5 eval(str9) %执行字符串 a =10 6. 显示字符串 直接使用disp命令显示字符串。 disp(请输入2*2的矩阵a),2.2.4矩阵和数组运算,1. 矩阵运算的函数 det(X):计算方阵行列式 rank(X):求矩阵的秩。 inv(X):求矩阵的逆阵。

10、inv(X)=X-1 v,d=eig(X):计算矩阵特征值和特征向量 diag(X):产生X矩阵的对角阵,2. 矩阵和数组的算术运算,(1) 矩阵和数组的加(addition)、减运算(subtraction) 矩阵加、减运算表达式分别为“A+B”、“A-B”。 (2) 矩阵和数组的乘法运算(muliplication) 矩阵的乘法运算表达式为“A*B” 。 矩阵A的列数必须等于矩阵B的行数,除非其中有一个是标量。 数组的乘法运算表达式为“A.*B” ,表示数组A和B中的对应元素相乘。A和B数组必须大小相同,除非其中有一个是标量。,(3) 矩阵和数组的除法(division) 矩阵的除法运算表

11、达式有两种:“AB”和“A/B”,运算符为“”和“/”分别表示左除和右除。 X=A/B是X*A=B的解,A/B=A*B-1。 X=AB是方程A*X=B的解, AB=A-1*B。 数组的除法运算表达式有两种:“A.B”和“A./B”,表示数组相应元素左除和右除。 A和B数组必须大小相同,除非其中有一个是标量。,【例2.12】已知方程组,用矩阵除法来解线性方程组。 将该方程变换成AX=B的形式。A=2 -1 3;3 1 -5;4 -1 1 B=5;5;9 X=AB, X=AB X =2-10,(4) 矩阵和数组的乘方(power) 矩阵乘方的运算表达式为“AB”,其中A可以是矩阵或标量。 数组乘方

12、的运算表达式“A.B”。3. 矩阵和数组的转置(transpose) 矩阵的转置运算表示为A 如果矩阵A是复数矩阵,则为共轭转置。 数组的转置运算表示为A. 如果数组A是复数数组,则不是共轭转置。,4. 矩阵和数组的数学函数 MATLAB中exp、sqrt、sin、cos等数学函数可以直接使用在数组上,这些运算是分别对数组的每个元素进行运算。 expm、sqrtm、logm等数学函数用于矩阵运算。比较:round 、fix 、floor 、ceil 比较:sqrt、sqrtm,5. 关系操作和逻辑操作,(1) 关系运算(relational operators) 关系操作符有:、=、 = =(

13、等于)、 =(不等于)。,关系运算规则: 如果两个标量,则结果为真(1)或假(0)。 如果比较的两个数组变量,则必须大小相同,数组的元素为0或1。 如果比较一个数组和一个标量,则把数组的每个元素分别与标量比较。 、=仅对变量的实部进行比较,而= = 和 = 则同时对实部和虚部进行比较。,(2) 逻辑运算(Logical Operators),逻辑操作符有:&(and)、|(or)、(not)和xor、&(先决与)、| (先决或) 。 【例2.16】数组的关系和逻辑运算。 实现半波整流。,6. 运算符优先级,在MATLAB中各种运算符的优先级如下:(矩阵转置)、(矩阵幂)和.(数组转置)、.(数

14、组幂) (逻辑非) *(乘)、/(左除)、(右除)和.*(点乘)、./(点左除)、.(点右除) +、-(加减): (冒号) 、=、= &(逻辑与) |(逻辑或) &(先决与) |(先决或),2.2.5多维数组 (Multidementional Arrays),三维数组用三个下标表示,在二维数组的基础上增加了一维称为页,三维数组可以看成“长方体”。 三维数组的元素存放遵循“单下标”的编号规则:第一页第一列下接该页的第二列,下面再接第三列,依此类推;第一页的最后列下面接第二页第一列。,多维数组的创建,(1) 通过“全下标”元素赋值方式创建 (2) 由函数ones、zeros、rand和randn

15、直接创建 (3) 利用函数生成数组 将一系列数组沿着特定的维连接成一个多维数组。 cat(维,p1,p2,) 按指定行列数放置模块数组生成多维数组repmat(p)。 在总元素的数目不变的前提下重新确定数组的行列数来重组数组。reshape(p),2.4 多项式(polynomial),多项式按降幂排列为: p(x)=anxn+an-1xn-1+a1x+a0 用行向量表示为:p=an an-1 a1 a0即把多项式的各项系数按降幂次序排放成行向量,如果多项式中缺某幂次项,则用零代替该幂次项的系数。 例如: x3+21x2+20x p1=1 21 20 0,2.4.1多项式的求值、求根和部分分式

16、,在MATLAB的polyfun函数库中,提供了有关多项式算术运算、求导、求根和积分运算的函数。 对多项式加法, MATLAB 没有提供直接函数。要求两个多项式向量长度相同,如阶次不同,低阶向量前补零。如 a=x3+21x2+20x+12; b=2x3-15x2+20x-30; c=5x2+20x+4; 则d=a+b;e=a+0 c;,MATLAB支持多项式乘法,conv(a,b) 表示求多项式a和b得乘积, a和b是多项式系数向量。 a=x3+21x2+20x+12; b=5x2+20x+4; c=conv(1 21 20 12,5 20 4),1. 导函数 r=polyder(p)求多项式

17、p的导函数r。 r=polyder(pxq)求多项式pxq的导函数r r,s=polyder(p,q)求p/q的导函数,,导函数的分母存入r ,分子存入s。 (1)求f(x)=x3+21x2+20x+12的导数 p=1 21 20 12; polyder(p) ans=3 42 20,(2)求(3x2-2x+1)(4x2+5x+6)的导数 p=3 -2 1; q=4 5 6; polyder(p,q) ans=48 21 24 -7 (3)求(3x2-2x+1)/(4x2+5x+6)的导数 p=3 -2 1; q=4 5 6; a,b=polyder(p,q) % 导数a/b a= 23 28

18、 -17; b= 16 40 73 60 36,2. 多项式求根 roots:用来计算多项式的根。 poly:根据多项式的根来计算多项式的系数。 (1)求f(x)=x4+8x3-10的根 p=1,8,0,0,-10; x=roots(p),(2) 已知f(x)= 3x5 +4x3 -5x2 -7.2x+5 计算f(x)= 0全部的根;由这些根构造多项式 p=3 0 4 -5 -7.2 5; x=roots(p) x= g=poly(x) g=,3. 多项式求值Y=polyval(p,x) 若x为一常数,则求多项式p在该点的值。 若x为向量或矩阵,则对向量或矩阵中的每个元素求多项式p的值,返回值

19、与自变量同型的向量或矩阵。 已知f(x)=x4+8x3-10分别计算x=1.2和时f(x)的值。 p=1,8,0,0,-10; x=1.2;Y=polyval(p,x) y=2 3 4;5 1 1;Y=polyval(p,y),已知当x=8时,求f(x)= (x-1) (x-2) (x-3) (x-4) p=poly(1 2 3 4); polyval(p,8) polyvalm(p,A)以方阵A为自变量求多项式P的值。 4. 特征多项式 函数poly计算矩阵的特征多项式的系数。 特征值用roots函数来计算。,5. 部分分式展开用residue函数来实现将分式表达式进行多项式的部分分式展开。

20、 r,p,k=residue(b,a) b,a=residue(r,p,k)例如: 展开,2.4.2多项式的乘除和微积分运算,1. 多项式的乘法和除法 多项式的乘法和除法运算分别使用函数conv和deconv来实现,这两个函数也可以对应于卷积和解卷运算。 p=conv(pl,p2) q,r = deconv(v,u) 例如,,2. 多项式的微分和积分 多项式的微分由polyder函数实现。 polyint(p,k) 返回多项式的不定积分。K为常数项(默认值为0)。 求 (3x2-2x+1)dx p=3 -2 1;polyint(p,2) ans=1 -1 1 2 polyint(p),2.4.

21、3多项式拟合和插值,1. 多项式拟合 拟合的准则是最小二乘法,找出使 最小的f(x)。,p=polyfit(x,y,n),2. 插值运算 (1)一维插值 一维插值是指对一个自变量的插值,interp1函数是用来进行一维插值的。 yi=interp1(x,y,xi,method) (2)二维插值 二维插值是指对两个自变量的插值。 zi=interp2(x,y,z,xi,yi,method),Ex0223,2.5元胞数组和结构数组 2.5.1元胞数组(Cell Array),元胞数组中的基本组成是元胞,每一个元胞可以看成是一个单元(Cell),用来存放各种不同类型的数据,如矩阵、多维数组、字符串、

22、元胞数组以及下一小节要介绍的结构数组。 使用。 EX: A=This is the first Cell.,1 2;3 4;eye(3),Tom,Jane,2.5.2结构数组,结构数组的基本组成是结构(Structure),每一个结构都包含多个域(Fields),结构数组只有划分了域以后才能使用。 例如多个图形对象构成结构数组,一个图形对象就是一个结构,一个属性(Name、Color、Position)就是一个域。 EX: ps(1)=struct(name,曲线1,color,red,position,0,0,300,300);,2.6 数据分析,2.6.1 统计分析 统计分析函数是data

23、fun函数库的一类数据分析函数。常用的统计分析函数: (1)向量的最大值和最小值 用法:y=max(x)返回向量x的最大值并存入y,如果x包含复数元素,则按模取最大值。 y,I =max(x)同上以外,最大值的序号存入I。,(2)矩阵的最大值和最小值 用法:max(A)返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。 Y,U= max(A)返回行向量Y和U , Y向量记录A的每列最大值,U向量记录每列最大值的行号。 max(A,dim)参数dim取1或2.取1同max(A);取2表示返回列向量。 max(max(A) 整个矩阵的最大值。,(3)平均值和中值 所谓中值,指在数据列中其

24、值的大小恰好在中间;如果为偶数个时,则中值等于中间的两项之平均值。 mean(x) 返回向量的算术平均值。 mean(A, dim)取1返回行向量,第i个元素是矩阵A的第i列的算术平均值;取2表示返回列向量(行的算术平均值)。 median(x) 向量中值 median(A, dim)矩阵中值,(4)求和与求积 sum(x) 返回向量x的各元素之和。 sum(A, dim)取1返回行向量,第i个元素是矩阵A的第i列的元素之和;取2表示返回列向量(行的元素之和)。 prod(x) 向量各元素的乘积 prod(A, dim)矩阵乘积,(5)累加和与累加积 cumsum(x) 返回向量x的累加和向量

25、。 cumsum(A, dim)取1返回矩阵,其第i列是A的第i列的累积和向量;取2表示返回矩阵,其第i行是A的第i行的累积和向量。 cumprod(x) 返回向量x的累乘积向量 cumprod(A, dim)矩阵累乘积,(6)标准方差 std(x,flag) 返回向量x的标准方差。当flag=0(可省略)时,按下式计算;当flag=1时,按下式计算;Y=std(A,flag,dim) 返回一个行向量,为矩阵各行或各列的标准方差。,(7)排序 sort(x) 返回对向量x中的元素按升序排列的新向量。 Y.I=sort(A, dim,MODE)对矩阵A的各列或各行重新排序,Y是排序后的矩阵,I是

26、排序前的位置。dim=1,列排序,dim=2,行排序。MODE为”ascend“升序,”descend“降序。,2.6.2 协方差和相关系数 cov(x) 求向量x的协方差。 cov(A) 求协方差矩阵,对角线元素是矩阵A中各列的方差。 cov(x,y) 求列向量x和y的协方差矩阵。 corrcoef(X) 返回从矩阵X形成的一个相关系数矩阵。,2.7矩阵操作,(1)矩阵的转置() a=1;2;3;b=a; (2)逆矩阵inv(A) a=-1 2 0;-2 3 0;3 0 2;inv(a) 然后可以求解方程。 (3)秩rank(A) (4)行列式det(A) (5)迹trace(A)矩阵的对角

27、线元素之和,也是矩阵的特征值之和。,(6)矩阵的特征值分析 eig(A) 求包含方阵A的特征值的向量。 X,D=eig(A) 产生一个方阵A的特征值在对角线上的对角矩阵D和矩阵X,它们的列是相应的特征向量,满足AX=XD。,练习:,下列变量名中_是合法变量。 A. char_1,i,j B. x*y , a.1 C. xy, a1234 D. end,1bcx,A,输入矩阵a= 使用全下标方式 取出元素“3”,使用单下标方式 取出元素“8”,用 取出后两行子矩阵块。,练习:,a(1,3),a(6),a(2 3,:),输入矩阵a = b =1 2 5 63 4 7 8 C=cat(1,a,b)C=cat(2,a,b)C=cat(3,a,b),练习:,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报