matlab矩阵运算

上传人:fe****16 文档编号:116864105 上传时间:2019-11-17 格式:PPT 页数:31 大小:275KB
返回 下载 相关 举报
matlab矩阵运算_第1页
第1页 / 共31页
matlab矩阵运算_第2页
第2页 / 共31页
matlab矩阵运算_第3页
第3页 / 共31页
matlab矩阵运算_第4页
第4页 / 共31页
matlab矩阵运算_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《matlab矩阵运算》由会员分享,可在线阅读,更多相关《matlab矩阵运算(31页珍藏版)》请在金锄头文库上搜索。

1、Matlab基础 向量与矩阵运算 q 向量与矩阵的生成 向量与矩阵运算 u 向量的生成 直接输入: a=1,2,3,4 冒号运算符 a=1:4 = a=1, 2, 3, 4 b=0:pi/3:pi = b=0, 1.0472, 2.0944, 3.1416 c=6:-2:0 = c = 6, 4, 2, 0 例: 从矩阵中抽取行或列 q 向量与矩阵的生成(续) 向量与矩阵运算 u 矩阵的生成 直接输入: A=1, 2, 3; 4, 5, 6; 7, 8, 9 由向量生成 由函数生成 通过编写m文件生成 例: x=1,2,3;y=2,3,4; A=x,y, B=x;y 例: C=magic(3)

2、 常见矩阵生成函数 zeros(m,n)生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n) ones(m,n)生成一个 m 行 n 列的元素全为 1 的矩阵, m=n 时可写为 ones(n) eye(m,n)生成一个主对角线全为 1 的 m 行 n 列矩阵, m=n 时可简写为 eye(n),即为 n 维单 位矩阵 diag(X)若 X 是矩阵,则 diag(X) 为 X 的主对角线向量 若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵 tril(A)提取一个矩阵的下三角部分 triu(A)提取一个矩阵的上三角部分 rand(m,n)产生 01 间均匀分布

3、的随机矩阵 m=n 时简 写为 rand(n) randn(m,n)产生均值为 0,方差为1的标准正态分布随机矩阵 m=n 时简 写为 randn(n) 矩阵操作 q 提取矩阵的部分元素: 冒号运算符 u A(:) A的所有元素 u A(:,:) 二维矩阵A的所有元素 u A(:,k) A的第 k 列, A(k,:) A的第 k 行 u A(k:m) A的第 k 到第 m 个元素 u A(:,k:m) A的第 k 到第 m 列组成的子矩阵 A(:) 与 A(:,:) 的区别 ? 如何获得由 A 的第一、三行和第一、二列组成的子矩阵? 自己动手 矩阵操作 q 矩阵的旋转 u fliplr(A)

4、左右旋转 u flipud(A) 上下旋转 u rot90(A) 逆时针旋转 90 度; rot90(A,k) 逆时针旋转 k90 度 例: A=1 2 3;4 5 6 B=fliplr(A) C=flipud(A) D=rot90(A), E=rot90(A,-1) 矩阵操作 q 矩阵的转置与共轭转置 u 共轭转置 u . 转置,矩阵元素不取共轭 例: A=1 2;2i 3i B=A C=A. 点与单引号之间不能有空格! 矩阵操作 q 改变矩阵的形状:reshape reshape(A,m,n): 将矩阵元素按 列方向 进行重组 重组后得到的新矩阵的元素个数 必须与原矩阵元素个数相等! 矩阵

5、操作 q 查看矩阵的大小:size u size(A) 列出矩阵 A 的行数和列数 u size(A,1) 返回矩阵 A 的行数 u size(A,2) 返回矩阵 A 的列数 例: A=1 2 3; 4 5 6 size(A) size(A,1) size(A,2) u length(x) 返回向量 X 的长度 u length(A) 等价于 max(size(A) 矩阵基本运算 q 矩阵的加减:对应分量进行运算 要求参与加减运算的矩阵具有 相同的维数 例: A=1 2 3; 4 5 6; B=3 2 1; 6 5 4 C=A+B; D=A-B; q 矩阵的普通乘法 要求参与运算的矩阵满足线性

6、代数中矩阵相乘的原则 例: A=1 2 3; 4 5 6; B=2 1; 3 4; C=A*B 矩阵基本运算 q 矩阵的除法:/、 右除和左除 若 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是矩阵化程序设计语言,所以处理矩阵和向量运算特别 方便。关于矩阵和向量的一些基本运算命令已在前面有所介绍,常 用的命令和函数还有 zeros 生成0矩阵

7、 eig 特征值、特征向量 ones 生成1矩阵 diag 对角矩阵 eye 生成单位矩阵 trace 方阵的迹 linspace 生成等距行向量 rank 矩阵的秩 rand 生成随机矩阵 rref 行最简形 det 方阵的行列式 orth 正交规范 inv 方阵的逆 null 求基础解系 norm 范数 jordan Jordan 分解 cond 方阵的条件数 X=AB A*X=B X=B/A X*A=B q 当A为方阵,其结果与inv(A)*B基本一致; q 当A不为方阵,除法将分三种情况自动检测:若为 超定方程组(既无解)除法将给出最小二乘意义上的 近似解,即使向量AX-B的长度最小;

8、若为不定方程组 (即无穷多解),除法将给出一个具有最多零元素的 特解(不是通解);若为唯一解,除法将给出这个解 。用户对结果应有一个正确的认识。 例: 解下列方程组 解: 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 t

9、o 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

10、 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.1756

11、e-015. x = -0.7071 0 -0.7071 0 -0.0000 0.7071 -0.0000 0.7071 通解为k1*x(:,1)+k2*x(:,2)+x0 方法三:使用solve求解。(见第章) 特征值和特征向量 V,D=eig(A) 返回方阵A的特征值和特征向量。其中D为特 征值构 成的对角阵,每个特征值对应的V的为属于该特征值的一个 特征向量,每个特征向量都是单位向量,并且属于同一特 征值 的线性无关特征向量已正交化。 eig(A) 返回方阵A的特征值构成的列向量。 例: A=1 2 3;2 3 4;2 4 5;V,D=eig(A),t=eig(A) V = -0.395

12、7 -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 矩阵的乘方 u A 是方阵,p 是正整数 Ap 表示 A 的 p 次幂,即 p 个 A 相乘。 u 若 A 是方阵,p 不是正整数 Ap 的计算涉及到 A 的特征值分解,即若 A

13、= V*D*V-1 则 Ap=V*(D.p)/V 矩阵的乘方 u 若 a 是标量,A 是方阵,且 V,D = eig(A),则 aA V*(aD)/V u 若 A, P 均是矩阵,则 AP 无定义 u 若 a 是标量, 则 矩阵的 Kronecker 乘积 q 矩阵 Kronecker 乘积的定义 设A是nm矩阵,B是pq矩阵,则A与B的kronecker乘积为: q Kronecker 乘积的性质 u 是 npmq 矩阵;通常 u 任何两个矩阵都有 Kronecker 乘积 u Matlab 中实现两个矩阵 Kronecker 相乘的函数为 kron(A,B) Kronecker乘积有时也称

14、张量积 矩阵的数组运算 q 数组运算:对应元素进行运算 点与算术运算符之间不能有空格! u 数组运算包括:点乘、点除、点幂 u 相应的数组运算符为: “.* ” , “./ ” , “. ” 和“ . ” 参与运算的对象必须具有相同的形状! 例: A=1 2 3; 4 5 6; B=3 2 1; 6 5 4; C=A.*B; D=A./B; E=A.B; F=A.B; 函数取值 设 x 是变量, f 是一个函数 u 当 x = a 是标量时,f(x) = f(a)也是一个标量 u 当 x = a, b, , c 是向量时,f(x)= f(a), f(b), , f(c) q 函数作用在矩阵上的

15、取值 u 若 A 是矩阵,则 f(A) 是一个与 A 同形状的矩阵 f 作用在 x 的每个分量上 函数取值 怎样计算 eA ? 例: x=0:pi/4:pi; A=1 2 3; 4 5 6; y1=sin(x); y2=exp(A); y3=sqrt(A); 例: 矩阵的超越函数 q Matlab 提供了三种矩阵函数:expm、sqrtm、logm 详情参见联机帮助(help expm / sqrtm / logm ) q 更一般的矩阵函数: funm u funm(A,fun) 参数 fun 的可以是 exp,,log,cos,sin,cosh,sinh 数与数组的点幂 x.y =14,25,36=1,32,729 x.2 =12,22,32=1,4,9 2 .x = ? . 前面留个空格 例:x=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号