《矩阵运算的基础.ppt》由会员分享,可在线阅读,更多相关《矩阵运算的基础.ppt(41页珍藏版)》请在三一办公上搜索。
1、第二章 矩阵运算的基础,MATLAB提供了一种计算机高级编程语言M语言MATLAB提供了不同类型的数据MATLAB专门以矩阵作为基本的运算单位MATLAB提供了关于数组和矩阵不同的运算方法,一.概述,在M语言中最常用的数据类型表现手段和形式就是变量和常量M语言的基本处理单位是数值矩阵或者数值向量回顾有关概念变量和常量数组向量矩阵,变量和常量变量:程序运行过程中需要改变数值的量每一个变量都具有一个名字变量在内存中占据一定的空间变量必须以字母开头,后面可以是字母、数字或者下划线的组合MATLAB仅识别前面N个字符,在不同的操作系统下可以识别的字符个数不同常量:在程序运行的过程中不需要改变数值的量常
2、量具有名字在M语言中不存在常量的定义,只在MATLAB中提供一些常用的常数作为常量,数组是有序数据的集合数组的每一个成员(元素)都属于同一种数据类型,它们使用同一个数组名称和不同的下标来唯一确定数组中的成员(元素)。在MATLAB中元胞数组比较特殊,数组中的元素可以是不同的数据类型。,向量从编程语言的角度上看,向量其实就是一维数组从数学的角度上看,向量就是1N或者N1的矩阵,即行向量或列向量 b1,1 b2,1 B=b3,1 和B=b1,1 b1,2 b1,3 b1,n bn,1,矩阵是用一对圆括号或方括号括起来,符合一定规则的数学对象 b11 b12 b13 B=b21 b22 b23 b3
3、1 b32 b33对于编程语言,矩阵就是二维的数组,二.矩阵和向量创建,1.向量的创建(1)在命令窗口逐个输入元素 X=1 3 pi 3+5i(2)利用冒号运算符创建向量X=J:INC:KJ为向量的第一个元素,K为向量的最后一个元素,INC为向量元素递增的步长J、INC、K之间必须用“:”间隔若忽略INC,则默认的递增步长为1INC可以为正数,也可以为负数 X=1:10 X=1:0.01:1.1,(3)定数线性采样法:在设定的“总点数”下,均匀采 样生成向量(一维“行”数组)使用函数linspace 和logspacelinspace是用来创建线性间隔向量的函数linspace 的基本语法 X
4、=linespace(X1,X2,n)X1为向量的第一个元素,X2为向量的最后一个元素,n为向量具有的元素个数,函数将根据n的数值平均计算元素之间的间隔,间隔计算公式为若在表达式中忽略参数n,则系统默认地将向量设置为100个元素,使用linspace函数创建向量X=linspace(1,2,5)X=1.0000 1.2500 1.5000 1.7500 2.0000,logspace是用来创建对数空间的向量logspace 的基本语法 X=logspace(X1,X2,n)该函数创建的向量第一个元素值为10X1,而最后一个元素的数值为10X2,n为向量的元素个数,元素彼此之间的间隔按照对数空间
5、的间隔设置若在表达式中忽略参数n,则系统默认地将向量设置为50个元素,例使用logspace函数创建向量X=logspace(1,3,3)X=10 100 1000,创建列向量使用分号作为元素与元素之间的间隔使用转置运算符“”例2-6:A=1;2;3;4;5;6或A=(1:6),2.创建矩阵矩阵的元素可以为任意MATLAB数据类型的数值或对象创建矩阵的方法直接输入法使用数组编辑器,(1)直接输入法规则:整个矩阵的元素必须用 括住同一行的矩阵元素之间必须用逗号或空格分隔在 内矩阵的行与行之间必须用分号分隔,也可以在需要分行的地方用回车键间隔矩阵元素可以是任何MATLAB表达式,可以是实数,也可以
6、是复数,复数用i,j 输入 例2-7:A=1,2,3;4,5,6;7,8,9 X=2 pi/2;sqrt(3)3+5i,逗号和分号的作用逗号和分号可作为指令间的分隔符,MATLAB允许多条语句在同一行出现。分号如果出现在指令后,屏幕上将不显示结果。只要是赋过值的变量,不管是否在屏幕上显示过,都会存储在工作空间中,以后可随时显示或调用。变量名尽可能不要重复,否则会覆盖。例2-8:A=1,2,3;4,5,6;7,8,9,X=2 pi/2;sqrt(3)3+5i?A=1,2,3;4,5,6;7,8,9;X=2 pi/2;sqrt(3)3+5i?,例:A=1,2,3;4,5,6;7,8,9,X=2 p
7、i/2;sqrt(3)3+5iA=1 2 3 4 5 6 7 8 9X=2.0000 1.5708 1.7321 3.0000+5.0000i A=1,2,3;4,5,6;7,8,9;X=2 pi/2;sqrt(3)3+5iX=2.0000 1.5708 1.7321 3.0000+5.0000i,冒号的作用 用于生成等间隔的向量,默认间隔为1。例2-9:y=1:3;4:6;7:9,矩阵的基本运算函数基本数学运算规则数组的运算运算函数运算指令,三.基本运算,矩阵生成函数示例 A=zeros(3)A=0 0 0 0 0 0 0 0 0 A=ones(3)A=1 1 1 1 1 1 1 1 1,A
8、=eye(3)A=1 0 0 0 1 0 0 0 1 A=rand(3)A=0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214,A=randn(3)A=-0.4326 0.2877 1.1892-1.6656-1.1465-0.0376 0.1253 1.1909 0.3273,矩阵生成函数示例 A=magic(3)A=8 1 6 3 5 7(15)4 9 2 A=magic(4)A=16 2 3 13 5 11 10 8(34)9 7 6 12 4 14 15 1,基本矩阵运算,1.矩阵加、减运算(AB、AB)规则:相
9、加、减的两矩阵必须有相同的行和列,两矩阵对应元素相加减。MATLAB允许参与运算的两矩阵之一是标量,标量与矩阵的所有元素分别进行加减操作。例:A=1 2 3;4 5 6 B=3 4 5;7 8 9 C=3 A+B=4 6 8;11 13 15 A+C=4 5 6;7 8 9 B+C=6 7 8;10 11 12,2.矩阵乘运算 A*B:A矩阵的列数必须等于B矩阵的行数。s*A 或 A*s:标量可与任何矩阵相乘,标量s分别与矩阵A每个元素相乘。例:A=1 2 3;4 5 6;7 8 0;B=1;2;3;C=A*B C=14 32 23 D=-1;0;2;F=pi*D F=-3.1416 0 6.
10、2832,基本矩阵运算(续),3.矩阵除运算及线性方程组的解 在线性代数中没有矩阵的除运算,只有矩阵逆的运算,在MATLAB中有两种矩阵除运算。A/B 矩阵右除,相当于 Ainv(B)AB 矩阵左除,相当于 inv(A)B 因此,x=AB 是线性方程组Ax=B的解。例:求解方程组 3x1+x2-x3=3.6 x1+2x2+4x3=2.1-x1+4x2+5x3=-1.4 A=3 1-1;1 2 4;-1 4 5;B=3.6;2.1;-1.4;x=AB x=1.4818-0.4606 0.3848,基本矩阵运算(续),4.矩阵乘方 An A自乘n次幂 例a=1,2,3;4,5,6;7,8,9;a2
11、 ans=30 36 42 66 81 96 102 126 150,基本矩阵运算(续),数组运算指元素对元素的算术运算,与通常意义上的由符号表示的线性代数矩阵运算不同。1.数组加减(+,-)运算规则:相加、减的两数组必须有相同的行和列,两数组对应元素相加减。MATLAB允许参与运算的两数组之一是标量,标量与数组的所有元素分别进行加减操作 A+B A-B,基本数组(元素群)运算,与矩阵加减运算等效,数组之一也可为标量。,2.数组乘()运算AB A,B两数组必须有相同的行和列,两数组相应元素相乘。sA 或 As 标量与数组相乘,标量s分别与数组A每个元素相乘,与 sA 或 As 相同。例16:A
12、=1 2 3;4 5 6;7 8 9;B=2 4 6;1 3 5;7 9 10;A.*B ans=2 8 18 4 15 30 49 72 90,A=1 2 3;4 5 6;7 8 9;B=2 4 6;1 3 5;7 9 10;A*Bans=25 37 46 55 85 109 85 133 172,3.数组除(/,)运算C=A./B 数组右除 C(i,j)=A(i,j)/B(i,j)C=A.B 数组左除 C(i,j)=B(i,j)/A(i,j)A./B=B.AA./s=s.A A的元素分别被标量s除s./A=A.s 标量s分别被A的元素除例:A=1 2 3;B=4 5 6;C1=A./B C
13、1=0.2500 0.4000 0.5000 C2=B.A C2=0.2500 0.4000 0.5000 C3=A.B C3=4.0000 2.5000 2.0000,A=1 2 3;B=4 5 6;A/Bans=0.4156 ABans=0 0 0 0 0 0 1.3333 1.6667 2.0000,4.数组乘方(.)A.n A的每个元素自乘n次A.p 对A各元素分别求非整数幂p.A 以p为底,分别以A的元素为指数求幂值C=A.B 元素对元素的幂C(i,j)=A(i,j).B(i,j)例:A=1 2 3;B=4 5 6;X=A.2 X=1.00 4.00 9.00 Y=A.0.5 Y=1
14、.0000 1.4142 1.7321,C=3.B Y=81.00 243.00 729.00 34 35 36Z=A.B Z=1.00 32.00 729.00 14 25 36,5.数组转置(.)例:A=1 3 5;2 4 6 A=1 3 5 2 4 6 A ans=1 2 3 4 5 6 A.ans=1 2 3 4 5 6,结论:对于实数矩阵,矩阵转置和数组转置的计算结果是一致的。,例:A=A*i A=0+1.0000i 0+3.0000i 0+5.0000i 0+2.0000i 0+4.0000i 0+6.0000i A ans=0-1.0000i 0-2.0000i 0-3.0000
15、i 0-4.0000i 0-5.0000i 0-6.0000i A.ans=0+1.0000i 0+2.0000i 0+3.0000i 0+4.0000i 0+5.0000i 0+6.0000i,结论:对于复数矩阵,矩阵转置和数组转置的计算结果不一致。矩阵转置运算共轭转置 数组转置运算非共轭转置,函数的主要类别三角函数指数运算函数复数运算函数圆整和求余函数函数在处理参数时,是按照数组运算的规则进行的,基本数学函数,三角函数,指数运算函数,复数运算函数,圆整和求余函数,用于矩阵(数组)操作的常用函数,矩阵(数组)操作函数,多维数组,多维数组:用全下标表示元素时,下标超过了两个的数组第一维行(Row)第二维列(Column)第三维页(Page)第四维箱(Box)三维数组的每一页上的数组必须具有同样的行数和列数介绍的内容创建多维数组多维数组的操作函数,创建多维数组使用直接赋值的方法创建多维数组使用MATLAB函数创建多维数组,
链接地址:https://www.31ppt.com/p-6229650.html