1、u 向量的生成向量的生成 直接输入直接输入: a=1,2,3,4 冒号冒号运运算符算符a=1:4 = = a=1, 2, 3, 4b=0:pi/3:pi = b=0, 1.0472, 2.0944, 3.1416c=6:-2:0 = c = 6, 4, 2, 0例例: 从矩阵中抽取行或列从矩阵中抽取行或列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)q 提取矩阵的部分元
2、素:提取矩阵的部分元素: 冒号运算符冒号运算符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) 左右旋转左右旋转u flipud(A)
3、 上下旋转上下旋转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 改变矩阵的形状:改变矩阵的形状:reshapereshape(A,m,n): 将矩阵元素按将矩阵元素按 列方向列方
4、向 进行重组进行重组重组后得到的新矩阵的元素个数重组后得到的新矩阵的元素个数必须与原矩阵元素个数相等必须与原矩阵元素个数相等! q 查看矩阵的大小:查看矩阵的大小:sizeu 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 矩阵的加减矩阵的加减:对应分量进
5、行运算对应分量进行运算要求参与加减运算的矩阵具有要求参与加减运算的矩阵具有 相同的维数相同的维数例例: A=1 2 3; 4 5 6; B=3 2 1; 6 5 4 C=A+B; D=A-B;q 矩阵的普通乘法矩阵的普通乘法要求参与运算的矩阵满足线性代数中矩阵相乘要求参与运算的矩阵满足线性代数中矩阵相乘的的原则原则例例: A=1 2 3; 4 5 6; B=2 1; 3 4; C=A*Bq 矩阵的矩阵的除法除法:/、 右除和左除右除和左除 若 A 可逆方阵,则AB A 的逆左乘的逆左乘 B = inv(A)*BB/A A 的逆右乘的逆右乘 B B*inv(A)X=AB A*X=BX=B/A X
6、*A=B 通常,矩阵除法可以理解为 当当 A 和和 B 行数相等行数相等时即可进行时即可进行左除左除 当当 A 和和 B 列数相等列数相等时即可进行时即可进行右除右除线性代数运算的线性代数运算的MATLAB命令命令MATLAB是矩阵化程序设计语言,所以处理矩阵和向量运算特别方便。关于矩阵和向量的一些基本运算命令已在前面有所介绍,常用的命令和函数还有zeros 生成0矩阵 eig 特征值、特征向量ones 生成1矩阵 diag 对角矩阵eye 生成单位矩阵 trace 方阵的迹linspace 生成等距行向量 rank 矩阵的秩rand 生成随机矩阵 rref 行最简形det 方阵的行列式 or
7、th 正交规范 inv 方阵的逆 null 求基础解系norm 范数 jordan Jordan 分解cond 方阵的条件数 X=AB A*X=BX=B/A X*A=B q当A为方阵,其结果与inv(A)*B基本一致;q当A不为方阵,除法将分三种情况自动检测:若为超定方程组(既无解)除法将给出最小二乘意义上的近似解,即使向量AX-B的长度最小;若为不定方程组(即无穷多解),除法将给出一个具有最多零元素的特解(不是通解);若为唯一解,除法将给出这个解。用户对结果应有一个正确的认识。例:例: 解下列方程组11(4212324213324(2214242xyxyxyzxyzxyxyxyxyxy()定
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=ABWarning: Matrix is singular to working precision.(Type warning off MATLAB:singul
9、arMatrix to suppress this warning.) x = Inf Inf可见,不能直接求解。 A=1 2;2 4;0 0;B=1;2;0;x=AB %增加0 x+0y=0,使A不为方阵Warning: Rank deficient, rank = 1 tol = 2.9790e-015. x = 0 0.5000仍可求一特解。例:例:求线性方程组的通解解解:在有无穷多解的情况可用三种方法求得通解。 12341234123411221xxxxxxxxxxxx方法一方法一:用rref化为行最简形以后求解。 clear;a=1 -1 1 -1;-1 1 1 -1;2 -2 -1
10、 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.70
11、71 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.3957 -0.2167 + 0.5832i
12、-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.2818iu A 是方阵,p 是正整数Ap 表示 A 的 p 次幂,即 p 个 A 相乘。 u 若 A 是方阵,p 不是正整数 Ap 的计算涉及到的计算涉及到 A 的特征值分解,即若的特征值分解,即若 A = V*D*V-1 则 A
13、p=V*(D.p)/Vu 若 a 是标量,A 是方阵,且 V,D = eig(A),则 aA V*(aD)/Vu 若 A, P 均是矩阵,则 AP 无定义u 若 a 是标量, ndddD00000021ndadadaDa00000021则q 矩阵矩阵 Kronecker 乘积乘积的定义的定义 设A是nm矩阵,B是pq矩阵,则A与B的kronecker乘积为:mmnnnma Ba BaBa Ba BaBCABa Ba BaB111212122212q Kronecker 乘积乘积的性质的性质u 是是 npmq 矩阵;矩阵;通常通常BAABBAu 任何两个矩阵都有任何两个矩阵都有 Kronecke
14、r 乘积乘积 u Matlab 中实现两个矩阵中实现两个矩阵 Kronecker 相乘的函数为相乘的函数为kron(A,B)Kronecker乘积有时也称张量积乘积有时也称张量积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=
15、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 函数作用在矩阵上的取值函数作用在矩阵上的取值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);
16、)exp()exp()exp()exp()exp()exp()exp()exp()exp()exp(212222111211mnmmnnaaaaaaaaaA例例:q Matlab 提供了三种矩阵函数:expm、sqrtm、logm详情参见联机帮助(详情参见联机帮助(help expm / sqrtm / logm )q 更一般的矩阵函数: funmu 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 = ? . 前面留个空格前面留个空格例
17、例:x=1 2 3; y=4 5 6;2 .x;y= ?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此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!