资源预览内容
第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
第9页 / 共31页
第10页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Matlab基础,向量与矩阵运算,向量与矩阵的生成,向量与矩阵运算,从矩阵中抽取行或列,向量与矩阵的生成(续),向量与矩阵运算,矩阵的生成,直接输入: A=1, 2, 3; 4, 5, 6; 7, 8, 9,由向量生成,由函数生成,通过编写m文件生成,例: C=magic(3),常见矩阵生成函数,矩阵操作,A(:) 与 A(:,:) 的区别 ?,如何获得由 A 的第一、三行和第一、二列组成的子矩阵?,矩阵操作,矩阵的旋转,fliplr(A) 左右旋转,flipud(A) 上下旋转,rot90(A) 逆时针旋转 90 度; rot90(A,k) 逆时针旋转 k90 度,矩阵操作,矩阵的转置与共轭转置,点与单引号之间不能有空格!,矩阵操作,改变矩阵的形状:reshape,reshape(A,m,n): 将矩阵元素按 列方向 进行重组,重组后得到的新矩阵的元素个数 必须与原矩阵元素个数相等!,矩阵操作,查看矩阵的大小:size,size(A) 列出矩阵 A 的行数和列数,size(A,1) 返回矩阵 A 的行数,size(A,2) 返回矩阵 A 的列数,length(x) 返回向量 X 的长度,length(A) 等价于 max(size(A),矩阵基本运算,矩阵的加减:对应分量进行运算,要求参与加减运算的矩阵具有 相同的维数,矩阵的普通乘法,要求参与运算的矩阵满足线性代数中矩阵相乘的原则,矩阵基本运算,矩阵的除法:/、 右除和左除,若 A 可逆方阵,则,AB A 的逆左乘 B inv(A)*B,B/A A 的逆右乘 B B*inv(A),X=AB A*X=B X=B/A X*A=B,通常,矩阵除法可以理解为,当 A 和 B 行数相等时即可进行左除 当 A 和 B 列数相等时即可进行右除,线性代数运算的MATLAB命令 MATLAB是矩阵化程序设计语言,所以处理矩阵和向量运算特别方便。关于矩阵和向量的一些基本运算命令已在前面有所介绍,常用的命令和函数还有,X=AB A*X=B X=B/A X*A=B,当A为方阵,其结果与inv(A)*B基本一致;,当A不为方阵,除法将分三种情况自动检测:若为超定方程组(既无解)除法将给出最小二乘意义上的近似解,即使向量AX-B的长度最小;若为不定方程组(即无穷多解),除法将给出一个具有最多零元素的特解(不是通解);若为唯一解,除法将给出这个解。用户对结果应有一个正确的认识。,例: 解下列方程组,解: A=1 1;1 -1;B=1;4;x=AB x = 2.5000 -1.5000 求得唯一解。 A=1 2 1;3 -2 1;B=1;4;x=AB x = 1.2500 -0.1250 0 仅求得一个特解。 A=1 2;3 -2;1 -1;B=1;4;2;x=AB x = 1.2838 -0.1757 求得一最小二乘近似解。, A=1 2;2 4;B=1;2;x=AB Warning: Matrix is singular to working precision. (Type “warning off MATLAB:singularMatrix“ to suppress this warning.) x = Inf Inf 可见,不能直接求解。 A=1 2;2 4;0 0;B=1;2;0;x=AB %增加0x+0y=0,使A不为方阵 Warning: Rank deficient, rank = 1 tol = 2.9790e-015. x = 0 0.5000 仍可求一特解。,例:求线性方程组的通解 解:在有无穷多解的情况可用三种方法求得通解。,方法一:用rref化为行最简形以后求解。 clear;a=1 -1 1 -1;-1 1 1 -1;2 -2 -1 1;b=1;1;-1; rank(a),rank(a,b) ans = 2 2 秩相等且小于,说明有无穷多解 rref(a,b) ans = 1 -1 0 0 0 0 0 1 -1 1 0 0 0 0 0 即通解为:小x1=x2,x3=x4+1(x2,x4自由),方法二:先用除法求出一个特解,再用null求得齐次组的基础解系。 clear;a=1 -1 1 -1;-1 1 1 -1;2 -2 -1 1;b=1;1;-1; x0=ab;x=null(a) Warning: Rank deficient, rank = 2 tol = 2.1756e-015. x = -0.7071 0 -0.7071 0 -0.0000 0.7071 -0.0000 0.7071 通解为k1*x(:,1)+k2*x(:,2)+x0 方法三:使用solve求解。(见第章),特征值和特征向量,例: A=1 2 3;2 3 4;2 4 5;V,D=eig(A),t=eig(A) V = -0.3957 -0.2167 + 0.5832i -0.2167 - 0.5832i -0.5765 0.6313 0.6313 -0.7149 -0.3914 - 0.2471i -0.3914 + 0.2471i D = 9.3329 0 0 0 -0.1665 + 0.2818i 0 0 0 -0.1665 - 0.2818i t = 9.3329 -0.1665 + 0.2818i -0.1665 - 0.2818i,矩阵的乘方,矩阵的乘方,若 a 是标量,A 是方阵,且 V,D = eig(A),则 aA V*(aD)/V,若 A, P 均是矩阵,则 AP 无定义,矩阵的 Kronecker 乘积,Kronecker 乘积的性质,是 npmq 矩阵;通常,任何两个矩阵都有 Kronecker 乘积,Kronecker乘积有时也称张量积,矩阵的数组运算,数组运算:对应元素进行运算,点与算术运算符之间不能有空格!,数组运算包括:点乘、点除、点幂,相应的数组运算符为: “.* ” , “./ ” , “. ” 和“ . ”,参与运算的对象必须具有相同的形状!,函数取值,设 x 是变量, f 是一个函数,当 x = a 是标量时,f(x) = f(a)也是一个标量,当 x = a, b, , c 是向量时,f(x)= f(a), f(b), , f(c),函数作用在矩阵上的取值,若 A 是矩阵,则 f(A) 是一个与 A 同形状的矩阵,f 作用在 x 的每个分量上,函数取值,怎样计算 eA ?,例:,矩阵的超越函数,Matlab 提供了三种矩阵函数:expm、sqrtm、logm,详情参见联机帮助(help expm / sqrtm / logm ),数与数组的点幂,x.y =14,25,36=1,32,729,x.2 =12,22,32=1,4,9,2 .x = ?,. 前面留个空格,例:x=1 2 3; y=4 5 6;,2 .x;y= ?,Matlab中的所有 标点符号必须在 英文状态下输入,Matlab中常见数学函数,log 是自然对数,即以 e 为底数 mod(x,y) 结果与 y 同号,rem(x,y) 则与 x 同号 max 等函数的参数是矩阵时,是作用在矩阵各列上,上机作业,试分别生成 5 阶的单位阵、8 阶随机矩阵及其 下三角矩阵 生产列向量 x=1, 3, 5, 7, 9, , 29 生成以 x 的元素为对角线的矩阵 A,并输出 A 的行数 生成一个与 A 同阶的正态分布的随机矩阵 B 输出 A 与 B 的 kronecker 乘积矩阵 C 生成由 A 与 B 点乘得到的矩阵 D 生成一个由 D 的第 8、4、10、13 行和第 7、1、6、9、2 列组成的子矩阵 E,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号