《基2matlab背景基础之二矩阵理论及其matlab实现》由会员分享,可在线阅读,更多相关《基2matlab背景基础之二矩阵理论及其matlab实现(79页珍藏版)》请在金锄头文库上搜索。
1、2013.03.23MatlabMatlab背景基础之二背景基础之二1 1*什么是矩阵什么是矩阵*矩阵的运算矩阵的运算*方程组的矩阵表示方程组的矩阵表示*函数数值化后的矩阵表示函数数值化后的矩阵表示*状态及其演化的矩阵表示状态及其演化的矩阵表示2 246467512列向量7x1矩阵3 3学生人数统计学生人数统计4 4学生人数统计学生人数统计6x4矩阵行:班级列:年级5 5定义定义1 由 个数 排成的行列的数表, 称为 行 列的矩阵,简称 矩阵. 记作:1.1 矩阵的定义6 6几种特殊形式的矩阵 1.行矩阵与列矩阵 2.同型矩阵与矩阵的相等两个矩阵行数相等、列数也相等时,称为同型矩阵.如果矩阵
2、与矩阵 是同型矩阵,且它们的对应元素相等,即那么就称这两个矩阵相等.记作 7 73.零矩阵元素都是零的矩阵称为零矩阵.记作 注意:不同型的零矩阵是不同的.或4.方阵行数与列数都等于 的矩阵称为 阶矩阵或 阶方阵阶方阵的元素 称为主对角线元素8 85.上(下)三角矩阵 6.对角矩阵 9 97.单位矩阵 10101.2 矩阵的运算 1.2.1 矩阵的加法 1.定义定义2 2.运算规律 11113.负矩阵 4.矩阵的减法 例例112121.2.2 数与矩阵的乘法1.定义定义3 数 与矩阵 的乘积记作 或 规定为注:与 为同型矩阵.2.运算规律 1313例例2 设 求 解解: 14141.2.3 矩阵
3、与矩阵的乘法 1. 定义定义4 其中 注意:(1)(2)只有当第一个矩阵的列数等于第二个矩阵的行数时,两个矩阵才能相乘 的元素 就是第一个矩阵二个矩阵 的第 列的对应元素的乘积和.的第 行与第1515例例3 设 求 解解: 记 则 设 则:1616注:(1)矩阵的乘法一般不满足交换律,即一般来说,(2)进行矩阵乘法时,一定要注意乘的次序,不能随意改变 例例4 设求 与 .解解: 1717例例5 设求 与 .解解: 注意: 1818注:对于两个 阶矩阵,若 则称方阵 是可以交换的.如: 19192. 运算规律(假定运算都是可行的) :,(其中为数) (左分配律) (右分配律) 20203. 矩阵
4、的幂 为正整数. 矩阵的幂满足下列运算规律: 注: 一般来说 2121例例6 例例7 解:解: 解:解:则则 求求 .,求,求 .22221.2.4 矩阵的转置1.定义定义6 设称为矩阵的转置矩阵. 即把矩阵的行换成同序号的列得到的一个新矩阵. 23232.运算规律(假定运算都是可行的): 如 2424例例9 解:解: . . 25251.2.5 逆矩阵1. 定定义义11 设为阶方阵,若存在阶方阵,使,则称方阵可逆,称为的逆矩阵. 注:注: (1)如果矩阵是可逆矩阵,那么的逆矩阵是惟一的, 的逆矩阵记作,即 (2)满足的与互为逆矩阵, 即. , 2626线性方程组线性方程组 若设 则其矩阵形式
5、为: 1.3 方程组的矩阵表示27272828xyUU=2929303031313232*矩阵的创建、标识、查询和定位矩阵的创建、标识、查询和定位*矩阵的运算和操作矩阵的运算和操作*“无穷大无穷大”、“非数非数”和和“空空”矩阵矩阵3333*矩阵的创建矩阵的创建1、逐个元素输入法、逐个元素输入法2、冒号、冒号“:”生成法生成法3、定数线性采样法(、定数线性采样法(linspace函数)函数)4、定数对数采样法、定数对数采样法(logspace函数函数)5、中等规模矩阵的矩阵编辑器创建法、中等规模矩阵的矩阵编辑器创建法6、中等规模矩阵的、中等规模矩阵的M脚本文件创建法脚本文件创建法7、利用、利用
6、MATLAB函数创建矩阵函数创建矩阵*矩阵的标识矩阵的标识*矩阵的查询和定位矩阵的查询和定位34342.1 2.1 矩阵的创建、标识、查询和定位矩阵的创建、标识、查询和定位v矩阵的创建:多种矩阵的创建:多种1 1、逐个元素输入法、逐个元素输入法 例如:例如: 产生复数矩阵产生复数矩阵 B=1+9i,2+8i,3+7i;4+6i,5+5i,6+4i;7+3i,8+2i,9+1iB = 1.0000 + 9.0000i 2.0000 + 8.0000i 3.0000 + 7.0000i 4.0000 + 6.0000i 5.0000 + 5.0000i 6.0000 + 4.0000i 7.000
7、0 + 3.0000i 8.0000 + 2.0000i 9.0000 + 1.0000i352、冒号、冒号“:”生成法生成法其格式:其格式: X=a:inc:b 其中其中a为矩阵第一个元素,为矩阵第一个元素,b为最后一个,为最后一个,inc为采样为采样点的间隔,即步距。点的间隔,即步距。例:以例:以1为初值,为初值,0.3为步距,为步距,3.9为终值,产生一个为终值,产生一个“行行”矩阵。矩阵。 a=1:0.3:3.9a = 1.0000 1.3000 1.6000 1.9000 2.2000 2.5000 2.8000 3.1000 3.4000 3.7000363、定数线性采样法(、定数
8、线性采样法(linspace函数)函数)其格式:其格式: X=linspace(a,b,n) 其中其中a为矩阵第一个元素,为矩阵第一个元素,b为最后一个,为最后一个,n为采样点数。为采样点数。例:以例:以-1为起始值,为起始值, 3为终值,产生一个具有为终值,产生一个具有11个采样点个采样点的的“行行”矩阵。矩阵。 x=linspace(-1,3,11)x =Columns 1 through 10 -1.0000 -0.6000 -0.2000 0.2000 0.6000 1.0000 1.4000 1.8000 2.2000 2.6000Column 11 3.0000374、定数对数采样
9、法、定数对数采样法(logspace函数函数)其格式:其格式: X=logspace(a,b,n) 其中其中10a为矩阵第一个元素,为矩阵第一个元素, 10b为最后一个,为最后一个,n为采样为采样点数。点数。例:以例:以10-1为起始值,为起始值, 103为终值,产生一个具有为终值,产生一个具有11个采个采样点的样点的“行行”矩阵。矩阵。 y=logspace(-1,3,11)y = Columns 1 through 8 0.1 0.25119 0.63096 1.5849 3.9811 10 25.119 63.096 Columns 9 through 11 158.49 398.11
10、1000Plot(x,y,*);385、中等规模矩阵的矩阵编辑器创建法、中等规模矩阵的矩阵编辑器创建法例:根据现有数据创建一个(3x8)的矩阵39右键:new40416、中等规模矩阵的、中等规模矩阵的M脚本文件创建法脚本文件创建法例:创建和保存矩阵例:创建和保存矩阵AM的的MyMatrix.m文件。文件。(1)打开)打开M文件编辑器,并在空白处填写所需数据文件编辑器,并在空白处填写所需数据(2)在首行编写文件名和简单说明)在首行编写文件名和简单说明(3)保存并给文件起名)保存并给文件起名(4)以后调用矩阵)以后调用矩阵AM时,只需键入时,只需键入MyMatrix ,矩阵矩阵AM就会自动生成于就
11、会自动生成于MATLAB工作空间。工作空间。42437、利用、利用MATLAB函数创建矩阵函数创建矩阵右右表表列列出出了了最最常常 用用 的的 函函 数数函数函数含义含义diag()diag()产生对角矩阵(对高维不适用)产生对角矩阵(对高维不适用)eye()eye()产生单位矩阵(对高维不适用)产生单位矩阵(对高维不适用)magic()magic()产生魔方矩阵(对高维不适用)产生魔方矩阵(对高维不适用)rand()rand()产生均匀分布的随机矩阵产生均匀分布的随机矩阵randn()randn()产生正态分布的随机矩阵产生正态分布的随机矩阵ones()ones()产生全产生全1 1矩阵矩阵
12、zeros()zeros()产生全产生全0 0矩阵矩阵random(random() )产生各种分布的随机矩阵产生各种分布的随机矩阵randsrcrandsrc()()在指定字符集上生成,产生均匀分在指定字符集上生成,产生均匀分布的随机矩阵布的随机矩阵44v例:例: ones(2,4) % ones(2,4) %产生(产生(产生(产生(2x42x4)的全)的全)的全)的全1 1矩阵矩阵矩阵矩阵vans =v 1 1 1 1v 1 1 1 1v randn(state,0) %将正态随机数发生器置将正态随机数发生器置0v randn(2,3) %产生(产生(2x3)的)的正态随机正态随机矩阵矩阵
13、vans =v -0.4326 0.1253 -1.1465v -1.6656 0.2877 1.190945 M=randn(2,3) %产生(产生(2x3)的正态随机)的正态随机矩阵矩阵M = -0.2913 -0.5087 0.3622 -0.6519 -1.1937 -0.2016 mesh(M) numel(M)ans = 6 N=reshape(M,6,1)N = -0.2913 -0.6519 -0.5087 -1.1937 0.3622 -0.2016 hist(N)46 M=randn(100,100); %产生(产生(2x3)的正态随机)的正态随机矩阵矩阵 mesh(M)N
14、=reshape(M,numel(M),1); hist(N) hist(M) hist(randn(10000,1)47 randn(state,0); M=randn(3,3)M = -0.4326 0.2877 1.1892 -1.6656 -1.1465 -0.0376 0.1253 1.1909 0.3273 M=randn(3,3)M = 0.1746 -0.5883 0.1139 -0.1867 2.1832 1.0668 0.7258 -0.1364 0.0593 randn(state,0); M=randn(3,3)M = -0.4326 0.2877 1.1892 -1.
15、6656 -1.1465 -0.0376 0.1253 1.1909 0.327348v例:例: ones(2,4) % ones(2,4) %产生(产生(产生(产生(2x42x4)的全)的全)的全)的全1 1矩阵矩阵矩阵矩阵vans =v 1 1 1 1v 1 1 1 1v randn(state,0) %将正态随机数发生器置将正态随机数发生器置0v randn(2,3) %产生(产生(2x3)的正态随机)的正态随机矩阵矩阵vans =v -0.4326 0.1253 -1.1465v -1.6656 0.2877 1.1909v D=eye(3) %产生(产生(3x3)的单位阵)的单位阵v
16、D =v 1 0 0v 0 1 0v 0 0 1v diag(D) %取取D阵的对角元素阵的对角元素vans =v 1v 1v 149v diag(diag(D) %内内diag取取D阵的对角元素,外阵的对角元素,外diag利用它生成利用它生成对角阵对角阵vans =v 1 0 0v 0 1 0v 0 0 1v randsrc(3,20,-3,-1,1,3,1) %在在-3,-1,1,3字符集上产生(字符集上产生(3x20)的)的 %均匀分布矩阵,随机数发生器的状态设置为均匀分布矩阵,随机数发生器的状态设置为1 vans =v Columns 1 through 18 3 1 3 -1 -3
17、3 -3 -3 -1 3 -1 -1 -3 1 1 -3 3 -11 3 1 3 -1 1 1 1 1 1 1 1 3 -1 -1 -3 -1 -13 -1 -3 -1 1 -1 3 -1 -1 1 1 -1 -3 3 -1 -1 3 -1v Columns 19 through 20 v 1 3v 1 -3v 3 3统计其中统计其中-3, -1, 1, 3-3, -1, 1, 3各有多少个数各有多少个数50*矩阵的创建矩阵的创建1、逐个元素输入法、逐个元素输入法2、冒号、冒号“:”生成法生成法3、定数线性采样法(、定数线性采样法(linspace函数)函数)4、定数对数采样法、定数对数采样法
18、(logspace函数函数)5、中等规模矩阵的矩阵编辑器创建法、中等规模矩阵的矩阵编辑器创建法6、中等规模矩阵的、中等规模矩阵的M脚本文件创建法脚本文件创建法7、利用、利用MATLAB函数创建矩阵函数创建矩阵*矩阵的标识矩阵的标识*矩阵的查询和定位矩阵的查询和定位5151v矩阵的标识:矩阵的标识:v矩阵按列存储,可以采用矩阵按列存储,可以采用全下标方式全下标方式和和单下标方式单下标方式进行标识。进行标识。全下标方式:全下标方式:用行下标和列下标来表示矩阵元素的位置;用行下标和列下标来表示矩阵元素的位置;单下标方式:单下标方式:只用一个下标来指明元素所在矩阵的位置,具体只用一个下标来指明元素所在
19、矩阵的位置,具体将矩阵的所有列按照将矩阵的所有列按照“先左后右先左后右”顺序连接成顺序连接成“一维一维”长列。长列。例如例如:(mxn)矩阵矩阵A中元素中元素A(i,j)对应的单下标为对应的单下标为l=(j-1)*m+i。例:v A=1,2;3,4;5,6vA =v A(3,3)v? Index exceeds matrix dimensions.v A(5)vans =v 452v矩阵的查询和定位矩阵的查询和定位学会使用学会使用find指令进行矩阵元素的定位,以及指令指令进行矩阵元素的定位,以及指令length 和和 size 的用法。的用法。v A=1,3,5,7,9;2,4,6,8,0;
20、B=1,2,3,4,5,6;vA =v 1 3 5 7 9v 2 4 6 8 0vB =v 1 2 3 4 5 6v m,n=find(A6)vm =v 1v 2v 1vn =v 4v 4v 5vfind(A6)vans =v 7v 8v 9v k=length(B)vk= v 653v矩阵的查询和定位矩阵的查询和定位学会使用学会使用find指令进行矩阵元素的定位,以及指令指令进行矩阵元素的定位,以及指令length 和和 size 的用法。的用法。v C=11,12,13;21,22,23;31,32,33;41,42,43;vC =v 11 12 13v 21 22 23v 31 32 3
21、3v 41 42 43v m,n=size(C),l=length(C)vm = 4vn = 3vl = 4其中其中 length(A) ,若若A为二维矩阵或多为二维矩阵或多维矩阵,则其等效为:维矩阵,则其等效为:max(size(A)。54*矩阵的代数运算矩阵的代数运算1.矩阵与标量的运算矩阵与标量的运算2.转置运算转置运算3.矩阵加减法运算矩阵加减法运算4.矩阵乘法运算矩阵乘法运算5.矩阵除法运算矩阵除法运算6.矩阵点运算矩阵点运算7.矩阵求幂运算矩阵求幂运算*矩阵的块操作矩阵的块操作*矩阵的翻转操作矩阵的翻转操作*矩阵运算的常用数学函数矩阵运算的常用数学函数55552.2 矩阵的运算和操
22、作矩阵的运算和操作v矩阵的代数运算矩阵的代数运算1.1.矩阵与标量的运算:矩阵与标量的运算: + 加;加;-减;减;*乘;乘;/左除;左除;乘方乘方v例例1 1: A=1,2,3;4,5,6vA =v 1 2 3v 4 5 6v A-2vans =v -1 0 1v 2 3 4v A*2vans =v 2 4 6v 8 10 12v A/2vans =v 0.5000 1.0000 1.5000v 2.0000 2.5000 3.00005657584.矩阵乘法运算:矩阵乘法运算: A*Bans = 50 122595.矩阵除法运算:矩阵除法运算:左除左除“”和右除和右除“/”。左除:左除:A
23、B表示表示A-1B,A为方阵;为方阵;右除:右除: A/B表示表示AB-1,B为方阵。为方阵。v例:例: A=1,2;3,4,.B=1,3,5;2,4,6,.C=1,1,3;1,2,3;4,5,6vA =v 1 2v 3 4vB =v 1 3 5v 2 4 6vC =v 1 1 3v 1 2 3v 4 5 6v ABvans =v 0 -2.0000 -4.0000v 0.5000 2.5000 4.5000v B/Cvans =v 0.0000 2.3333 -0.3333v 0 2.0000 0606162*矩阵的代数运算矩阵的代数运算1.矩阵与标量的运算矩阵与标量的运算2.转置运算转置运
24、算3.矩阵加减法运算矩阵加减法运算4.矩阵乘法运算矩阵乘法运算5.矩阵除法运算矩阵除法运算6.矩阵点运算矩阵点运算7.矩阵求幂运算矩阵求幂运算*矩阵的块操作矩阵的块操作*矩阵的翻转操作矩阵的翻转操作*矩阵运算的常用数学函数矩阵运算的常用数学函数6363v矩阵的块操作矩阵的块操作:元素更改,插入子块,提取子块,重元素更改,插入子块,提取子块,重排子块,扩充子块,扩充矩阵排子块,扩充子块,扩充矩阵等,重点学会使用等,重点学会使用“:”的应用。的应用。例:例: A=1,2,3;4,5,6,.A=1,2,3;4,5,6,. B= 7,8,9 B= 7,8,9A =A = 1 2 3 1 2 3 4 5
25、 6 4 5 6B =B = 7 8 9 7 8 9 A(1,:)=B A(1,:)=BA =A = 7 8 9 7 8 9 4 5 6 4 5 6 A(:,:)=2 A(:,:)=2A =A = 2 2 2 2 2 2 2 2 2 2 2 264v A(2,2)=15vA =v 2 2 2v 2 15 2v A(4,5)=20vA =v 2 2 2 0 0v 2 15 2 0 0v 0 0 0 0 0v 0 0 0 0 20v C=A(1:3,2:3)vC =v 2 2v 15 2v 0 065v矩阵的翻转操作矩阵的翻转操作: :v例:例:A =v 2 2 2 0 0v 2 15 2 0 0
26、v 0 0 0 0 0v 0 0 0 0 20v B=flipud(A) %上下翻转上下翻转vB =v 0 0 0 0 20v 0 0 0 0 0v 2 15 2 0 0v 2 2 2 0 066v C=fliplr(A) %左右翻转左右翻转vC =v 0 0 2 2 2v 0 0 2 15 2v 0 0 0 0 0v 20 0 0 0 0v rot90(A) %顺时针顺时针90旋转旋转vans =v 0 0 0 20v 0 0 0 0v 2 2 0 0v 2 15 0 0v 2 2 0 067v矩阵运算的常用数学函数矩阵运算的常用数学函数: :v例:例:v A=1,2;3,4,B=1+2i,
27、-3,2i;2-2i,-4+0.5i,0vA =v 1 2v 3 4vB =v 1.0000 + 2.0000i -3.0000 0 + 2.0000iv 2.0000 - 2.0000i -4.0000 + 0.5000i 0 v C=exp(A), D=sqrt(A) ,E=abs(B) vC =v 2.7183 7.3891v 20.0855 54.5982vD =v 1.0000 1.4142v 1.7321 2.0000vE =v 2.2361 3.0000 2.0000v 2.8284 4.0311 068*矩阵的创建、标识、查询和定位矩阵的创建、标识、查询和定位*矩阵的运算和操作
28、矩阵的运算和操作*“无穷大无穷大”、“非数非数”和和“空空”矩阵矩阵69692.3 2.3 “无穷大无穷大”、“非数非数”和和“空空”矩阵矩阵v“无穷大无穷大”: :表示表示infinite,infinite,是由一个非零数除以是由一个非零数除以0 0得到,得到,或者计算溢出得到或者计算溢出得到例子:例子:v N=2/0vWarning: Divide by zero.vN =v Inf70v“非数非数”:表示表示“Not a number”。v例子:例子: A=0/0,B=0*log(0),C=inf-infvWarning: Divide by zero.vA =v NaNvWarning
29、: Log of zero.vB =v NaNvC =v NaNv 10*A,5-A,cos(A)vans =v NaNvans =v NaNvans =v NaN plot(log(0:0.1:10)Warning: Log of zero.71A = NaNB = NaNC = NaN72v空矩阵:空矩阵:介绍其产生、查询及应用。介绍其产生、查询及应用。v例:例:v x=1:6;y=find(x7) x=1:6;y=find(x7) %的产生的产生vy =y =v Empty matrix: 1-by-0 Empty matrix: 1-by-0v m,n=size(y),size() m
30、,n=size(y),size() %维数的查询维数的查询vm =m =v 1 1vn =n =v 0 0vans =ans =v 0 0 0 073 A=1,2,3,4,5;6,7,8,9,0 %的应用的应用vA =v 1 2 3 4 5v 6 7 8 9 0v A(:,2,4)=vA =v 1 3 5v 6 8 074*矩阵的创建、标识、查询和定位矩阵的创建、标识、查询和定位*矩阵的运算和操作矩阵的运算和操作*“无穷大无穷大”、“非数非数”和和“空空”矩阵矩阵7575 振幅相同、频率接近的两简谐振动合成形成振幅相同、频率接近的两简谐振动合成形成的拍现象。的拍现象。利用利用MATLABMATLAB绘图演示:绘图演示:76761. 点电荷的电势和电场强度分布?点电荷的电势和电场强度分布?2. 偶极子的电势和电场强度分布?偶极子的电势和电场强度分布?利用利用MATLABMATLAB绘制:绘制:77771 第二章%20矩阵及其运算.ppt2 78787979