ch3Matlab矩阵的运算课件_第1页
ch3Matlab矩阵的运算课件_第2页
ch3Matlab矩阵的运算课件_第3页
ch3Matlab矩阵的运算课件_第4页
ch3Matlab矩阵的运算课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、Matlab矩阵的运算安徽工业大学数理学院侯为根1. 数学运算2. 逻辑运算三、 Matlab基本运算3. 比较运算4. 位运算符5. 集合运算符一、数学运算MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)、共轭转置()正号(+),负号(-)【注意】运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。2. 点运算点运算符有.*、./、.和.。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。 1. 基本算术运算1.转置(.),幂次(.).共轭转置(),矩阵幂次()2.正号(+),负号(-)3.乘法(.*),元素右除(./),元素

2、左除(.),矩阵乘法(*),矩阵右除(/),矩阵左除()4.加法(+),减法(-)5.冒号(:)(例如: x = 1:2:5 等)数学运算符之优先级:同一类的运算符均具有相同的优先度(Priority),因此在计算上,是由左至右依次完成矩阵的数学运算矩阵的数学运算 矩阵的加减与一般标量(Scalar)的加减类似 相加或相减的矩阵必需具有相同的维度 A = 12 34 56 20;B = 1 3 2 4;C = A + BC1= A-B 例1: 加减法运算矩阵与纯量可以直接进行加减,MATLAB 会直接将加减应用到每一个元素 A=1 2 3 2 1 + 5矩阵的加减法运算矩阵的乘法与除法标量对矩

3、阵的乘或除,可比照一般写法 A = 1 2 3; 4 4 2; C = A/3 B = 2*A欲进行矩阵相乘,必需确认第一个矩阵的列数( Column Dimension) 必需等于第二个矩阵的行数(Row Dimension) 例2:矩阵的乘法A = 1; 2; B = 3, 4, 5; C = A*B 矩阵除法若A为非奇异方阵,则X=A-1B若A为非奇异方阵,则X=BA-1矩阵左除:AX = B,求 XMATLAB 求解:X=AB最小二乘解矩阵右除:XA = B,求 XMATLAB求解:X=B/A最小二乘解注:若A为非奇异方阵,则A-1在Matlab中为inv(A)矩阵的次方运算矩阵的次方

4、运算,可由“”来达成,但矩阵必需是方阵,其次方运算才有意义 A = magic(3);B = A2例3:复数矩阵z,其“共轭转置”矩阵(Conjugate Transpose)可表示成矩阵z 转置和共轭转置矩阵i = sqrt(-1);% 单位虚数单位虚数z = 1+i, 2; 3, 1+2i;w = z % 共轭转置共轭转置(注意注意z后面的单引号后面的单引号) 例4: 矩阵共轭转置i = sqrt(-1);% 单位虚数单位虚数z = 1+i, 2; 3, 1+2i;w = z.% 单纯转置单纯转置(注意注意z后面的句点及单引号后面的句点及单引号)想得到任何矩阵z的转置(Transpose)

5、,则可表示成矩阵矩阵z.例5:矩阵的转置若z为实数,则z和z.的结果是一样的size(A) %矩阵的大小inv(A) %矩阵的逆det(A) %矩阵的行列式rank(A) %矩阵的秩rref(A) %矩阵列的极大无关组orth(A) %矩阵化为正交阵trace(A) %矩阵的迹chol(A) %三角分解,A=L*LTlu(A) %A对称,A=L*U U,S,V=svd(A) %A=U*S*Vqr(A) %A=q*r(q正交阵,r三角阵)norm(A,1|2|p|inf|fro) %矩阵的模cond(A) %矩阵的条件数eig(A) %A*x= *xV,D=eig(A) %A*V=V*Deig(

6、A,B) %A*x= *B*xV,D=eig(A,B) %A*V=B*V*D例:设A=pascal(4),B=magic(4),并使用下列函数进行计算向量的p-norm一个向量a的p-norm可以定义为 11ip,aa/ppipp=2 时,此即为向量 a 的长度,或称欧氏长度(Euclidean Length) 欲求一向量的p-norm,可使用norm指令norm(x,p)a = 3 4;x = norm(a, 1) % x = 7y = norm(a, 2) % y = 5z = norm(a, inf) iia)norm(a,1ia)norm(a,imaxinf 注意: 矩阵A的p-nor

7、m可以定义如下:ppxpxAxAmax例9: normMatrixnorm 指令亦可用于计算矩阵的 p-normA = 1 2 3; 4 5 6; 7 8 9;norm(A, 2)Cholesky分解是将一个对称的正定矩阵分解为一个上三角矩阵和其转置的乘积。X=pascal(5)R=chol(X)C=R*RLU分解是将原正方 (square) 矩阵分解成一个上三角形矩阵或是排列(permuted) 的上三角形矩阵和一个 下三角形矩阵,这样的分解法又称为三角分解。命令格式为:L,U=lu(A)L,U,P=lu(A)例如:B=1 3 2; -2 -6 1; 2 5 7L,U=lu(B)L*UL,U

8、,P=lu(B)P*L*UQR分解法是将矩阵分解成一个正规正交矩阵与上三角形矩阵,矩阵A不必为正方矩阵。 A=1 3 2 5; -2 -6 1 6; 2 5 7 2Q,R=qr(A)Q*QQ*R奇异值分解 (sigular value decomposition,SVD) 是另一种正交矩阵分解法;SVD是最可靠的分解法,但是它比QR 分解法要花上近十倍的计算时间。U,S,V=svd(A),其中U和V代表二个相互正交矩阵,而S代表一对角矩阵。 和QR分解法相同者, 原矩阵A不必为正方矩阵。A=1,2;3,1S,V,D=svd(A)函数含义min(x)向量x的极小值max(x) 向量x的极大值me

9、an(x)向量x的平均值median(x) 向量x的中位数sum(x) 向量x的总和 sort(x) 向量x的排序Matlab关于向量运算的函数x=randi(0,20, 1,7) y1=sum(x)y2=sort(x) 2、点运算矩阵对应元素的直接运算 例如A =1 2 3;4 5 6;7 8 0B = A.ABAC* .ijijijbac BAC/ .ijijijbac/BAC .ijijijabc/BAC.ijijijbaca=1:5 d1=1./a %求求a中元素的倒数中元素的倒数d2=a.2 %求求a中元素的平方中元素的平方d3=2.a %求求2的的a中元素的幂中元素的幂niSnni

10、in1) 1(41312111) 1(111?求100S例:设x=1:100; s1=sum(-1).(x+1).*(1./x)x=1:100; s1= (-1).(x+1) *(1./x) 方法1方法2 3MATLAB数组运算函数1. 规则:设X=(xij)mn,则 f (X)=(f (xij)mnsin cos tan cot sec csc asin acos atan acot asec acsc2. 常用数学函数三角与反三角与反三角函数三角函数exp log log10 sqrt pow2ceil fix floor round rem signabs angle conj imag

11、 real指数与对数指数与对数复变函数复变函数取整函数取整函数cart2sph cart2pol pol2cart sph2pol 坐标转换坐标转换注:若要对函数进行矩阵运算,方法为:funm(X,f)例:求sin(x)在x=0,/4, /2, 3/4, 时的值x=0:pi/4:pi y=x.*sin(x.2) 例:求y=xsin(x2) 在x=0,/4, /2, 3/4, 时的值x=0:pi/4:pi y=sin(x) 矩阵的比较运算, =, , 5aba=b关系运算符的用法:关系运算符的用法A=1 2 3; 4 5 6;7 8,0b=A5A(b)3、同维矩阵间比较;返回0-1矩阵2、矩阵与

12、一数比较返回0-1矩阵例2:给出矩阵A中大与5的元素值例3: 接上例,设B=magic(3)B=magic(3);BAfind指令 : 可传回非零元素索引,显示一维索引或下标 元素索引元素索引index=find(A5) 可以将关系运算符返回的0-1矩阵,来进行矩阵的索(Indexing)求出在A矩阵中,满足Aij Bij的元素 x = 0 1 2; 0 0 3 index = find(x) x(index) x(index)则是非零元素所形成的向量 要找出满足某条件的二维索引或下标2维索引idx1,idx2=find(x5) idx1和idx2分别是符合条件之矩阵元素的列索引(Row In

13、dex)及行索引(Column Index)例:如何找出介于7和11的元素?x = magic(5)x(find(7x&x11) 【例2.4 】产生5阶随机方阵A,其元素为10,90区间的随机整数,然后判断A的元素是否能被3整除并取出这些元素。 (1) 生成5阶随机方阵A。A=fix(90-10+1)*rand(5)+10)(2) 判断A的元素是否可以被3整除。P=rem(A,3)=0(3) 取出A中能被3整除的元素。A1=A(P)矩阵的逻辑运算矩阵的逻辑运算MATLAB提供了4种逻辑运算符:逻辑变量&(与)、|(或)、(非)和xor。对 double 变量来说,非 0 表示逻辑 1设A与B为

14、两个命题逻辑运算(相应元素间的运算)n与运算n或运算n非运算n异或运算 A&BA|BAXor(A,B)数值为1则为True,数值为0则为False当所有向量元素所有向量元素为”真”(非零),则all指令传回1,否则为0。当任一向量元素任一向量元素为”真”(非零),则any指令传回1,否则为0。 相关的指令有all及any:a = 0 1 2 3 result1 = all(a)retult2 = any(a)result3 = any(a0) 范例all 及 any 指令也可以接受矩阵输入,此时他们会对每一个行向量进行运算 【例2.5】在0,3区间,求y=sin(x)的值:要求消去负半波方法方

15、法1:x=0:pi/100:3*pi; y=sin(x);y1=(x2*pi).*y; %消去负半波消去负半波q=(xpi/3&x7*pi/3&x=0).*y; %消去负半波消去负半波p=sin(pi/3);y2=(y=p)*p+(yp).*y1; %按要求处理第按要求处理第(2)步步MATLAB 的位运算符(Bitwise Operators)可对非负整数进行位对位的逻辑运算 位运算符位运算符 说明 bitand 位对位的 AND bitcmp每个位的 NOT bitor位对位的 OR bitmax最大浮点整数值 bitxor位对位的 XOR bitset设定某位 bitget取得某位bitshift 位平移 数字10的二进制表示法是1010,数字4的二进制表示法是0100,因此数字10和数字4的 bitor 应传回1110 的十进制数值,即数字14 数字18的二进制表示法向左平移一个单位,其效果相当乘2 bitor(10,4)bitshift(18, 1)MATLAB 的集合运算符(Set Operators)可将向量视为集合,来进行各种集合运算 集合运算符集合运算符 说明 union并集 intersect交集

温馨提示

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

评论

0/150

提交评论