matlab02向量与矩阵运算_第1页
matlab02向量与矩阵运算_第2页
matlab02向量与矩阵运算_第3页
matlab02向量与矩阵运算_第4页
matlab02向量与矩阵运算_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、数学实验第二讲第二讲 向量与矩阵运算向量与矩阵运算本讲主要内容本讲主要内容 l 向量与矩阵的生成l 矩阵的相关运算:u 基本操作(旋转、转置、求矩阵的行数与列数等)u 基本运算(+ - * / 等)u 点运算( .* ./ .)l 常见的数学函数q 2.1.1 通过语句和函数产生通过语句和函数产生l向量的产生向量的产生(4种常用方法种常用方法) 直接输入直接输入: a=1, 2, 3, 4, c=2;4;6;8 用用冒号冒号运运算符算符 : % 很常用!很常用! 例:例: a=1:4(方括号可以省略)(方括号可以省略) = = a=1, 2, 3, 4 b=0:pi/3:pi = b=0, 1

2、.0472, 2.0944, 3.1416 由取等分点函数由取等分点函数linspace()生成生成: 一般格式: x=linspace(a,b,n) % n省略取省略取100个等分点个等分点% 功能:在区间功能:在区间a,b上取上取n个等分点,包含端点个等分点,包含端点a,b 从矩阵中抽取从矩阵中抽取 例:例: a=A(2,:), b=A(:,1) % 考虑考虑a和和b的含义?的含义? 2.1 向量与矩阵的生成向量与矩阵的生成l 向量的常用操作(回顾与扩展)向量的常用操作(回顾与扩展)a=1 2 3 4 % 向量元素的访问:向量元素的访问: a(3) % 向量的扩充:向量的扩充: a(8)=

3、3% 向量元素或向量子部分的删除:向量元素或向量子部分的删除: a(2)=, a(2:4)= A=1:10 %向量子部分的抽取:向量子部分的抽取:B=A(1:3),C=A(5:end),D=A(2 4 6),E=A(2 6 4),%交换向量元素:交换向量元素:A(2 5)=A(5 2)%向量的向量的逆序逆序 A=A(end:-1:1)l 矩阵的产生(矩阵的产生(4种常用方法)种常用方法) 直接输入直接输入: A=1, 2, 3 4, 5, 6 7, 8, 9 大矩阵可以由向量或矩阵拼合而成大矩阵可以由向量或矩阵拼合而成 例例:1 1) x=1,2,3;y=2,3,4; A=x,y, B=x;y

4、 % 考虑考虑A和和B的区别?的区别? 通过编写通过编写m文件生成文件生成: 通常是较大或元素较为繁琐的矩阵通常是较大或元素较为繁琐的矩阵 例例:试试做一个名为做一个名为data.mdata.m的命令文件,在其中输入:的命令文件,在其中输入: A=1, 2, 3; 4, 5, 6; 7, 8, 0 并在并在matlab命令窗口中,执行命令窗口中,执行 data data 命令。命令。 由函数生成的特殊矩阵由函数生成的特殊矩阵 例例: c=magic(3)%魔方矩阵魔方矩阵l 矩阵的常用操作(回顾与扩展)矩阵的常用操作(回顾与扩展) A=1 3 5;7 9 11;13 15 17% 矩阵元素的访

5、问矩阵元素的访问:A(1,2), A(5) % 矩阵的扩展矩阵的扩展 A(4,3)=6, A(6,6)=11 A=1 3 5;7 9 11;13 15 17% 矩阵的拼合矩阵的拼合:A=A 2 4 6 , A=A1;2;3;4,B=A,A, C=A;A%子矩阵的抽取子矩阵的抽取 x=A(2,:),B=A(:), C=A(:) D=A(:), E=A(:), % 子矩阵的删除:子矩阵的删除: A(2,:)=, A(:)= % 矩阵行的交换:矩阵行的交换:A(1 3,:)= A(3 1,:)常见矩阵生成函数常见矩阵生成函数zeros(m,n)zeros(m,n)生成一个生成一个 m * n 的零矩

6、阵;的零矩阵; - 全全0矩阵矩阵zeros(n) 生成一个生成一个 n * n 的零矩阵;的零矩阵; zeros(size(A)生成一个生成一个 与与A同样大小的零矩阵。同样大小的零矩阵。ones(m,n)生成一个生成一个 m 行行 n 列的元素全为列的元素全为 1 的矩阵的矩阵, - 全全1矩阵矩阵 m=n 时可写为时可写为 ones(n)eye(m,n)生成一个主对角线全为生成一个主对角线全为 1 的的 m 行行 n 列矩阵列矩阵, m=n 时可简写为时可简写为 eye(n),即为即为 n 维单位矩阵维单位矩阵diag(X)diag(X,n)若若 X 是矩阵,则是矩阵,则 diag(X)

7、 为为 X 的主对角线向量的主对角线向量若若 X 是向量,是向量,diag(X) 产生以产生以 X 为主对角线的对角矩阵为主对角线的对角矩阵产生以产生以 X 为为n-对角线的矩阵对角线的矩阵,即将即将X放到主对角线向上第放到主对角线向上第n条对角线的位置条对角线的位置tril(A)提取一个矩阵的下三角部分提取一个矩阵的下三角部分 - 包含对角线元素包含对角线元素triu(A)提取一个矩阵的上三角部分提取一个矩阵的上三角部分 - 包含对角线元素包含对角线元素rand(m,n)产生产生 01 间均匀分布的随机矩阵,间均匀分布的随机矩阵, m=n 时简写为时简写为 rand(n)randn(m,n)

8、 产生均值为产生均值为0,方差为,方差为1的标准正态分布随机矩阵的标准正态分布随机矩阵m=n 时简写为时简写为 randn(n)其它特殊矩阵生成函数:其它特殊矩阵生成函数:magic、hilb、pascal教材教材P53 :Ex5 - 如何建立下列矩阵如何建立下列矩阵解:解:A1=eye(10)*200410102004.000.200400.02004) 1 (10100.101010.01010.100)2(解:解:A2=(ones(10)-eye(10)*1010102004.111.200411.12004)3(解:解:A3=ones(10)+eye(10)*2003101010.10

9、1010.101010.1010)4(解:解:A4=-10*ones(10)+eye(10)*20教材教材P53 :Ex5 - 如何建立下列矩阵如何建立下列矩阵解:解:A5=tril(eye(10)+diag(9:10:99)1010100.110.2010.010)5(20040000502004000040200400003020040000202004)7(解:解:A7=eye(5)*2004+diag(20:10:50,1)试一试:试一试:A7=eye(5)*2004+diag(20:10:50, -1 )A7=eye(5)*2004+diag(20:10:40, 2 )教材教材P53

10、 :Ex5 - 如何建立下列矩阵如何建立下列矩阵101020112111112141311113121.)6(解:解: 观察:此矩阵是观察:此矩阵是Hilbert矩阵矩阵的一部分,先观察的一部分,先观察hilb(5)%求所需矩阵求所需矩阵format rat %设置有理数格式显示设置有理数格式显示h=hilb(11); %生成生成11阶的阶的h矩阵矩阵h(1,:)=; %删除第一行删除第一行h(:,end)= %删除最后一列删除最后一列format %恢复系统默认显示恢复系统默认显示9181917171616151514171615141316151413121514131211)5(hilb

11、例:利用冒号运算可以生成简易表格例:利用冒号运算可以生成简易表格x=(0.0 : 0.05: pi/4);% 生成一个点列并转置成列向量生成一个点列并转置成列向量xy=x,sin(x),cos(x),tan(x)% 生成相应的函数值列向量生成相应的函数值列向量y并显示在窗口中并显示在窗口中向量与矩阵运算的一个应用向量与矩阵运算的一个应用y =y = 0 0 1.0000 0 0 0 1.0000 0 0.0500 0.0500 0.9988 0.0500 0.0500 0.0500 0.9988 0.0500 0.1000 0.0998 0.9950 0.1003 0.1000 0.0998

12、0.9950 0.1003 0.1500 0.1494 0.9888 0.1511 0.1500 0.1494 0.9888 0.1511 0.2000 0.1987 0.9801 0.2027 0.2000 0.1987 0.9801 0.2027 0.2500 0.2474 0.9689 0.2553 0.2500 0.2474 0.9689 0.2553 0.3000 0.2955 0.9553 0.3093 0.3000 0.2955 0.9553 0.3093 0.3500 0.3429 0.9394 0.3650 0.3500 0.3429 0.9394 0.3650 0.4000

13、 0.3894 0.9211 0.4228 0.4000 0.3894 0.9211 0.4228 0.4500 0.4350 0.9004 0.4831 0.4500 0.4350 0.9004 0.4831 0.5000 0.4794 0.8776 0.5463 0.5000 0.4794 0.8776 0.5463 0.5500 0.5227 0.8525 0.6131 0.5500 0.5227 0.8525 0.6131 0.6000 0.5646 0.8253 0.6841 0.6000 0.5646 0.8253 0.6841 0.6500 0.6052 0.7961 0.760

14、2 0.6500 0.6052 0.7961 0.7602 0.7000 0.6442 0.7648 0.8423 0.7000 0.6442 0.7648 0.8423 0.7500 0.6816 0.7317 0.9316 0.7500 0.6816 0.7317 0.93162.2 矩阵操作矩阵操作: 矩阵的提取、旋转、转置和变维矩阵的提取、旋转、转置和变维q 提取矩阵的部分元素:提取矩阵的部分元素: 冒号运算符冒号运算符u A(:) A的所有元素的所有元素u A(:,:) 二维矩阵二维矩阵A的所有元素的所有元素u A(:,k) A的第的第 k 列,列, A(k,:) A的第的第 k 行

15、行u A(k:m) A的第的第 k 到第到第 m 个元素个元素u A(:,k:m) A的第的第 k 到第到第 m 列组成的子矩阵列组成的子矩阵 建立一个建立一个5阶的魔方矩阵,试一试上边的冒号运算。阶的魔方矩阵,试一试上边的冒号运算。 A(:) 与与 A(:,:) 的区别的区别 ? 如何获得由如何获得由 A 的第一、三行和第一、二列组成的子矩阵?的第一、三行和第一、二列组成的子矩阵?自己动手q 矩阵的旋转矩阵的旋转u fliplr(A) 左右旋转左右旋转u flipud(A) 上下旋转上下旋转u rot90(A) 逆时针旋转逆时针旋转 90 度;度;u rot90(A,k) 逆时针旋转逆时针旋

16、转 k90 度度例例: A=1,2,3;4,5,6;7,8,9 B=fliplr(A) C=flipud(A) D=rot90(A), E=rot90(A,-1) A=1,2,3;4,5,6;7,8,9A=1,2,3;4,5,6;7,8,9A=A=1 12 23 34 45 56 67 78 89 9101011111212q 矩阵的转置与共轭转置矩阵的转置与共轭转置u 共轭转置共轭转置u . 转置,矩阵元素不取共轭转置,矩阵元素不取共轭例例: A=1 2;2i 3i B=A C=A.点与单引号之间不能有空格点与单引号之间不能有空格!q 变维操作变维操作 :reshapereshape(A,m

17、,n): 将矩阵元素按将矩阵元素按 列方向列方向 进行重组进行重组重组后得到的新矩阵的元素个数重组后得到的新矩阵的元素个数必须与原矩阵元素个数相等必须与原矩阵元素个数相等! A=1 2 3;4 5 6;7 8 9;10 11 12A=1 2 3;4 5 6;7 8 9;10 11 12A=A=1 12 23 34 45 56 67 78 89 9101011111212 reshape(A,3,4)reshape(A,3,4)A=A=1 110108 86 64 42 211119 97 75 53 31212 reshape(A,2,6)reshape(A,2,6)q 查看矩阵的大小:查看矩

18、阵的大小: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) m,nm,n=size(A) %双输出变量,双输出变量,“多元赋值语句多元赋值语句”! ones(size(A)u length(x) 返回返回向量向量 X 的的长度长度 u length(A) 等价于等价于 max(size(A)矩阵操作一览表矩阵操作一览表冒号运算符:冒号运算符:A(:)A(:)A

19、 A的所有元素构成的列向量的所有元素构成的列向量A(:,:)A(:,:)二维矩阵二维矩阵A A的所有元素的所有元素A(kA(k,:),:) , A(:,kA(:,k) )A A的第的第 k k 行,行,A A的第的第 k k 列列A(k:mA(k:m) )A A的第的第 k k 到第到第 m m 个元素个元素A(:,k:mA(:,k:m) )A A的第的第 k k 到第到第 m m 列组成的子矩阵列组成的子矩阵A(k1 k2 k3A(k1 k2 k3 km,:) km,:)A A的第的第 k1 k2 k1 k2 km km 行组成的矩阵行组成的矩阵矩阵的旋转:矩阵的旋转: fliplrflip

20、lr(A(A) ) 左右旋转左右旋转flipudflipud(A(A) )上下旋转上下旋转rot90(A)rot90(A)逆时针旋转逆时针旋转 90 90 度度rot90(A,k)rot90(A,k)逆时针旋转逆时针旋转 k k90 90 度度共轭转置共轭转置.转置,矩阵元素不取共轭转置,矩阵元素不取共轭reshape(A,m,nreshape(A,m,n) )将矩阵元素按将矩阵元素按 列方向列方向 重组成重组成m m* *n n矩阵矩阵查看矩阵的大小:查看矩阵的大小: m,nm,n=size(Asize(A) )列出矩阵列出矩阵 A A 的的行数和列数行数和列数size(A,1) size(

21、A,1) ,size(A,size(A,2 2) ) 返回矩阵返回矩阵 A A 的的行数行数 返回矩阵返回矩阵 A A 的的列列数数length(xlength(x) )返回返回向量向量 X X 的的长度长度length(Alength(A) )等价于等价于 max(size(Amax(size(A)2.3 矩阵基本运算:矩阵基本运算:+、-、*、/、q 3.3.1 矩阵加减矩阵加减:对应分量进行运算对应分量进行运算 % 要求参与加减运算的矩阵具有要求参与加减运算的矩阵具有 相同的维数相同的维数 例例: A=1 2 3; 4 5 6; B=3 2 1; 6 5 4 C=A+B, D=A-B %

22、 特别:标量特别:标量可以与任意维数的矩阵相加减。可以与任意维数的矩阵相加减。标量与每个元素相加减标量与每个元素相加减。q 3.3.2 矩阵乘法矩阵乘法l 矩阵的普通乘法矩阵的普通乘法 %要求参与要求参与运算的矩阵满足线性代数中矩阵相乘运算的矩阵满足线性代数中矩阵相乘的的原则原则:内阶数相同:内阶数相同 例例: A=1 2 3; 4 5 6; B=2 1; 3 4; C=A*B % 对于标量,可以与任意维数的矩阵相乘。标量与每个元素相乘。对于标量,可以与任意维数的矩阵相乘。标量与每个元素相乘。l 矩阵矩阵 Kronecker 乘积乘积(张量积)(张量积): kron(A,B)设A是nm矩阵,B

23、是pq矩阵,则A与B的kronecker乘积为npmq矩阵:mmnnnma Ba BaBa Ba BaBCABa Ba BaB111212122212例:例: A=1 2; 3 4; B=1 3 2; 2 4 6; C=kron(A,B)则运行结果:则运行结果: C = 1 3 2 2 6 4 2 4 6 4 8 12 3 9 6 4 12 8 6 12 18 8 16 24u 矩阵矩阵除法:除法:左除:如 C=AB 求出的是:使得 A*C=B的矩阵C右除:如 C=B/A 求出的是:使得 C*A=B的矩阵Cu 若 A 可逆方阵,则AB inv(A)*B B/A B*inv(A)u 关于线性方程

24、组矩阵形式: A*x=B 显然有:x=AB 就是就是 A*x=B 的解。的解。x=B/A 就是就是 x*A=B 的解。的解。注意:当注意:当 A 和和 B 行数相等行数相等时即可进行时即可进行左除左除 当当 A 和和 B 列数相等列数相等时即可进行时即可进行右除右除 2.3.3 矩阵矩阵除法除法: (左除左除)、/(右除右除)例:求下列线性方程组的解例:求下列线性方程组的解x1+2x2+3x3=14x1+5x2+6x3=37x1+8x2 =5解:线性方程组可以用矩阵形式来表达:解:线性方程组可以用矩阵形式来表达: 线性方程组表为矩阵相乘:线性方程组表为矩阵相乘:如果如果A非奇异(可以用非奇异(

25、可以用rank(A)验证一下),则:验证一下),则:x=x1;x2;x3=Ab,即:,即: A=1 2 3;4 5 6;7 8 0 % A是线性方程组的系数矩阵是线性方程组的系数矩阵 b=1;3;5 % b是线性方程组的常数项列向量是线性方程组的常数项列向量 x=Ab % x=Ab是线性方程组的解是线性方程组的解% 方法方法2:用逆矩阵求:用逆矩阵求 x=inv(A)*bbxxxXA531321087654321*回顾:前面所讲内容回顾:前面所讲内容l 向量与矩阵的生成(各自4种常用方法,特别是特殊矩阵的生成函数)l 矩阵的相关运算:u 基本操作(提取、旋转、转置、变维、求矩阵的行数与列数等)

26、u 基本运算(+ - * / 等)u A 是方阵,p 是正整数Ap 表示 A 的 p 次幂,即 p 个 A 相乘 % 强调:此时A是看成一个整体,这是真正的矩阵乘积。u 若a 是标量, D 是对角矩阵:u 若 a 是标量,A 是方阵,且 V,D = eig(A),则规定: aA V*(aD)/V %此时A是看成一个整体u 若 A, P 均是矩阵,则 AP 无定义ndddD00000021ndadadaDa00000021则规定:2.3.4 矩阵矩阵乘方乘方q 函数在矩阵上的取值: f 作用在作用在 A 的的 %对于任意函数对于任意函数f例例: x=0:pi/4:pi; A=1 2 3; 4 5

27、 6; y1=sin(x)y2=exp(A)y3=sqrt(A)exp()exp()exp()exp()exp()exp()exp()exp()exp()exp(212222111211mnmmnnaaaaaaaaaA如,如, 怎样计算怎样计算 eA ? 与上边的与上边的exp(A)相同吗?相同吗? 不相同,此时矩阵不相同,此时矩阵A作为一个整体:它是按照前面的矩阵乘方的底为作为一个整体:它是按照前面的矩阵乘方的底为标量的规则来计算的!标量的规则来计算的!矩阵的超越函数矩阵的超越函数 矩阵作为一个矩阵作为一个整体整体来运算来运算q Matlab 提供了三种矩阵函数:expm、sqrtm、log

28、m如,比较如,比较 A=magic(3); B= expm(A), B1=exp(A) % expm(A)即为即为 eA V,D = eig(A); B2= V*(exp(1)D)/V % 比较前边规定比较前边规定 A=magic(3), D=logm(B) %矩阵的对数函数仍与指数函数互逆矩阵的对数函数仍与指数函数互逆又如,又如,B=sqrtm(A),则是使得,则是使得B*B=A的矩阵的矩阵B。验证一下:验证一下: A=1 2;3 4,B=sqrtm(A), B*Bq 更一般的矩阵函数: funmu funm(A,fun)参数参数 fun 的可以是的可以是 exp,,log,cos,sin,

29、cosh,sinh % cos,sin,是利用泰勒展式化为指数级数计算的是利用泰勒展式化为指数级数计算的2.3.6 数组运算(点运算)数组运算(点运算)q 数组运算:数组运算: Matlab所特有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% 特别注意:特别注意:参与运算的对象必须具有相同的形状!参与运算的对象必须具有相同的形状!或者:其中至少有

30、一个是标量。或者:其中至少有一个是标量。例例:x=1 2 3; y=4 5 6; 1./y =1/4,1/5,1/6x.y =14,25,36=1,32,729 x.2 =12,22,32=1,4,9 2.x = ?% % 特别注意:特别注意: 当点运算前面是一个数字的时候,当点运算前面是一个数字的时候,点点 前一定要留个空格!前一定要留个空格!l 向量与矩阵的生成(各自4种常用方法,特别是特殊矩阵的生成函数)l 矩阵的相关运算:u 基本操作(旋转、转置、求矩阵的行数与列数等)u 基本运算(+ - * / 等)u 点运算( .* ./ .)回顾:本章内容回顾:本章内容 向量与矩阵运算向量与矩阵

31、运算矩阵矩阵常用基本运算一览表常用基本运算一览表矩阵矩阵的常用基本运算与相关函数有的常用基本运算与相关函数有:+ - * /(左除左除) (右除右除) (乘方乘方) kron(A,B) (张量积张量积) round(x) 四舍五入取整四舍五入取整floor(x) 高斯取整:不超过x的最大整数fix(x) 截尾取整ceil(x) 大于x的最小整数mod(x)取余取余,符号与除数相同符号与除数相同 rem(x) 取余取余,符号与被除数相同符号与被除数相同函数函数f在矩阵上的取值在矩阵上的取值: f作用在作用在A的每个分量上的每个分量上矩阵矩阵的的点运算点运算: (矩阵对应元素的运算矩阵对应元素的运

32、算).*(点乘)点乘)、./(点除)点除)、 .(点幂)点幂)特别注意:特别注意:1)对于点运算)对于点运算,运算矩阵必须形状相同,或者其中至少有一个是标量。运算矩阵必须形状相同,或者其中至少有一个是标量。2) 点与算术运算符之间不能有空格!点与算术运算符之间不能有空格!3) 当点运算前面是一个数字的时候,当点运算前面是一个数字的时候,点点 前一定要留个空格。前一定要留个空格。关系运算:关系运算:、=、=(等于等于)、=(不等于不等于)逻辑运算:逻辑运算:&(与与)、|(或或)、(非非)MATLAB 常用函数介绍常用函数介绍sin 正弦函数正弦函数 sinh 双曲正弦函数双曲正弦函数exp(x) 自然指数自然指数asin 反正弦函数反正弦函数 asinh 反双曲正弦函数反双曲正弦函数log(x) e为底的对数为底的对数cos 余弦函数余弦函数 cosh 双曲余弦函数双

温馨提示

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

最新文档

评论

0/150

提交评论