MATLAB课件第3_4章.ppt
《MATLAB课件第3_4章.ppt》由会员分享,可在线阅读,更多相关《MATLAB课件第3_4章.ppt(96页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章章 MATLAB的数值计算的数值计算矩阵的构建矩阵的构建矩阵元素矩阵元素矩阵运算矩阵运算矩阵的关系运算和逻辑运算矩阵的关系运算和逻辑运算多项式运算多项式运算13.1 矩阵的构建矩阵的构建3.1.1 直接输入创建矩阵直接输入创建矩阵 创建矩阵最简单的方法就是直接输入矩阵元素,输创建矩阵最简单的方法就是直接输入矩阵元素,输入格式有以下的要求:入格式有以下的要求:整个整个矩阵以矩阵以“”作为首尾;作为首尾;行行与行之间用分号与行之间用分号“;”或回车键分隔;或回车键分隔;每每行中的元素用行中的元素用“,”或空格分隔;或空格分隔;矩阵矩阵中的元素可以是数字或者表达式;中的元素可以是数字或者表达
2、式;如果如果矩阵中没有元素,这样的矩阵称为空阵(矩阵中没有元素,这样的矩阵称为空阵(Empty Matrix)。)。2 a=1 2 3;4 5 6;7 8 9a=1 2 3 4 5 6 7 8 9 b=1 sin(pi/6)sqrt(9)3+5 6 0b=1.0000 0.5000 3.0000 8.0000 6.0000 033.1.2 利用内部函数产生矩阵利用内部函数产生矩阵 利用内部函数可以很利用内部函数可以很容易生成一些容易生成一些常见的特殊矩阵,常见的特殊矩阵,常用函数如下:常用函数如下:eye(m,n)产生单位矩阵产生单位矩阵zeros(m,n)产生元素全为产生元素全为0的矩阵的矩
3、阵ones(m,n)产生元素全为产生元素全为1的矩阵的矩阵rand(m,n)产生均匀分布的随机元素矩阵,范围产生均匀分布的随机元素矩阵,范围01randn(m,n)产生正态分布的随机元素矩阵产生正态分布的随机元素矩阵diag(x)产生矩阵产生矩阵x的对角阵的对角阵magic(m)产生魔术矩阵产生魔术矩阵说明说明:当:当eye、zeros、ones、rand、randn函数函数只有一个参数只有一个参数n时,则产生时,则产生nn的方阵。的方阵。4 eye(3)ans=1 0 0 0 1 0 0 0 1 eye(3,4)ans=1 0 0 0 0 1 0 0 0 0 1 0 zeros(3)ans=
4、0 0 0 0 0 0 0 0 0 ones(3,4)ans=1 1 1 1 1 1 1 1 1 1 1 1 a=magic(3)a=8 1 6 3 5 7 4 9 2 diag(a)ans=8 5 253.1.3 数组的构建数组的构建 在在MATLAB中数组可以看作行向量,即只有一行中数组可以看作行向量,即只有一行的矩阵,的矩阵,MATLAB创建数组可用以下特殊命令:创建数组可用以下特殊命令:1.冒号生成法冒号生成法(初值:步长:终值初值:步长:终值)0:0.4:2ans=0 0.4000 0.8000 1.2000 1.6000 2.0000初值初值=0,终值,终值=2,步长,步长=0.4
5、,步长若省略,默认间隔,步长若省略,默认间隔1 a=1:4;b=1:2:7;c=a bc=1 2 3 4 1 3 5 7 d=a 9 10d=1 2 3 4 9 1062.linspace函数函数 linspace(a,b,n)差值差值=(b-a)/(n-1)a=linspace(0,1,4)a=0 0.3333 0.6667 1.0000初值初值=0,终值,终值=1,元素个数,元素个数=43.logspace函数函数 logspace(a,b,n)公比公比=10(b-a)/(n-1)logspace(0,2,5)ans=1.0000 3.1623 10.0000 31.6228 100.00
6、00初值初值=100,终值,终值=102,元素个数,元素个数=5,公比,公比=100.53.1.4 从外部的数据文件中导入矩阵从外部的数据文件中导入矩阵73.2 矩阵的元素矩阵的元素3.2.1 矩阵元素的下标表示矩阵元素的下标表示 1.全下标表示全下标表示 一一个个mn矩阵矩阵A的第的第i行,第行,第j列元素表示为列元素表示为A(i,j),即由行下标和列下标表示,行列数从即由行下标和列下标表示,行列数从1开开始。始。注意注意:当给元素赋值时,如果超出矩阵范围,则自动扩:当给元素赋值时,如果超出矩阵范围,则自动扩充矩阵;当取值时,若超出矩阵范围,则提示错误。充矩阵;当取值时,若超出矩阵范围,则提
7、示错误。a=1 2;3 4;a(1,2)=9;a(2,3)=8;aa=1 9 0 3 4 8 a(2,4)?Index exceeds matrix dimensions.82.单下标表示单下标表示 将矩阵的所有列按从左到右的顺序接成将矩阵的所有列按从左到右的顺序接成“一维长列一维长列”,然后对元素进行编号。一个,然后对元素进行编号。一个mn矩阵矩阵A的元素的元素A(i,j)对应的下标为对应的下标为(j-1)*m+i。a=1 2 3;4 5 6;a(1,2)ans=2 a(3)ans=2 a(5)=10a=1 2 10 4 5 693.2.2 子矩阵子矩阵 1.全下标表示全下标表示(1)a(i
8、 j,k l):行数为:行数为i、j,列数为,列数为k、l的元素的元素构构成子矩阵成子矩阵(2)a(i:j,k:l):取行数为:取行数为ij,列数为,列数为kl的元素构成的元素构成的子矩阵的子矩阵(3)a(i:j,:):取行数为:取行数为ij,所有列的元素构成的子矩,所有列的元素构成的子矩阵阵(4)a(end,k:j):取行数最大值,列数为:取行数最大值,列数为kj的元素构的元素构成的子矩阵成的子矩阵2.单下标表示单下标表示a(i j;k l):取单下标为:取单下标为i、j、k、l的元素构成子矩阵。的元素构成子矩阵。10 a=magic(5)a=17 24 1 8 15 23 5 7 14 1
9、6 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 a(1 2,3 4)ans=1 8 7 14 a(1:2,3:5)ans=1 8 15 7 14 16 a(1:2,:)ans=17 24 1 8 15 23 5 7 14 16 a(end,1:2)ans=11 18 a(1 3;4 5)ans=17 4 10 11113.2.3 矩阵元素的删除矩阵元素的删除 删除矩阵元素可以简单的将该元素赋值为空矩阵删除矩阵元素可以简单的将该元素赋值为空矩阵(用(用 表示)。表示)。a=rand(3,4)a=0.4565 0.4447 0.9218 0.4057 0.018
10、5 0.6154 0.7382 0.9355 0.8214 0.7919 0.1763 0.9169 a(2)=a=Columns 1 through 6 0.4565 0.8214 0.4447 0.6154 0.7919 0.9218 Columns 7 through 11 0.7382 0.1763 0.4057 0.9355 0.9169123.2.4 矩阵元素的数量矩阵元素的数量1.numel函数函数 n=numel(a):计算矩阵:计算矩阵a中元素的总数中元素的总数2.size函数函数d=size(a):d=m n,m为为a的行数,的行数,n为为a的列数的列数m n=size(a
11、):m为为a的行数,的行数,n为为a的列数的列数m=size(a,dim):m为矩阵为矩阵a的第的第dim维元素的数量(维元素的数量(1表示表示列,列,2表示行)表示行)a=rand(2,3)a=0.2844 0.0648 0.5828 0.4692 0.9883 0.4235 d=size(a)d=2 3 m=size(a,2)m=3 numel(a)ans=6133.3 矩阵与矩阵与数组运算数组运算MATLAB算术运算算术运算矩阵算术运算矩阵算术运算数组算术运算数组算术运算矩阵算术运算矩阵算术运算:按照线性代数运算法则定义:按照线性代数运算法则定义数组算术运算数组算术运算:按照元素逐个执行
12、:按照元素逐个执行143.3.1 矩阵的运算矩阵的运算+加法加法 -减法减法 *乘法乘法 幂幂 左除左除 /右除右除 转置转置1.矩阵的加减法矩阵的加减法 矩阵的加减法是对应元素的加减法,只有当两个矩阵的加减法是对应元素的加减法,只有当两个矩阵维数相同或者其中一个为标量时,矩阵维数相同或者其中一个为标量时,才可以进行加才可以进行加减法运算。减法运算。a=1 2;3 4;b=5 6;7 8;a+bans=6 8 10 12 3+aans=4 5 6 7 b-3ans=2 3 4 5152.矩阵的乘法矩阵的乘法 矩阵的乘法使用矩阵的乘法使用“*”运算符,两个矩阵要相乘,运算符,两个矩阵要相乘,只有
13、当前一矩阵的列数与后一矩阵行数相等或者其中只有当前一矩阵的列数与后一矩阵行数相等或者其中一个为标量时才能进行。一个为标量时才能进行。a=1 2;3 4;b=5 6 7;8 9 10;a*bans=21 24 27 47 54 61 b*a?Error using=*Inner matrix dimensions must agree.3*aans=3 6 9 12163.矩阵的除法矩阵的除法 矩阵的除法有左除和右除两种,分别用矩阵的除法有左除和右除两种,分别用“”和和“/”表示。通常矩阵除法可以用来表示。通常矩阵除法可以用来求未知矩阵求未知矩阵。若若 A*X=B,则,则 X=AB 若若 X*A
14、=B,则,则 X=B/A a=1 2;3 4;b=5 6 7;8 9 10;c=a*bc=21 24 27 47 54 61 acans=5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 c/bans=1.0000 2.0000 3.0000 4.000017例例:求解以下方程:求解以下方程 A=1 3 2;2 2 3;3 1 1A=1 3 2 2 2 3 3 1 1 B=1;10;7B=1 10 7 ABans=2 -3 4184.矩阵的乘方矩阵的乘方 矩阵的乘方使用矩阵的乘方使用“”运算符,如运算符,如AP,当,当P为整为整数时,该指令运算结果可做如下解
15、释:数时,该指令运算结果可做如下解释:当当P0,表示方阵,表示方阵A直接自乘直接自乘P次;次;当当P a=1 2;3 4a=1 2 3 4 a2ans=7 10 15 22 a0ans=1 0 0 1 a(-2)ans=5.5000 -2.5000 -3.7500 1.7500195.矩阵的转置矩阵的转置 矩阵的转置使用矩阵的转置使用“”运算符,矩阵的转置就是运算符,矩阵的转置就是将第将第i行第行第j列的元素和第列的元素和第j行第行第i列的元素进行互换。列的元素进行互换。对于有复数元素的矩阵对于有复数元素的矩阵A,A为为共轭转置,共轭转置,A.为为非共轭转置。非共轭转置。a=1 2;3 4a=
16、1 2 3 4 aans=1 3 2 4 a=1+i 2+i;3+i 4+i;aans=1.0000-1.0000i 3.0000-1.0000i 2.0000-1.0000i 4.0000-1.0000i a.ans=1.0000+1.0000i 3.0000+1.0000i 2.0000+1.0000i 4.0000+1.0000i206.矩阵的逆(矩阵的逆(inv)在在MATLAB中,使用函数中,使用函数inv计算矩阵的逆矩阵。计算矩阵的逆矩阵。A是可逆矩阵的充分必要条件是是可逆矩阵的充分必要条件是|A|0,即可逆矩阵是,即可逆矩阵是非奇异方阵。非奇异方阵。a=magic(3)a=8 1
17、 6 3 5 7 4 9 2 inv(a)ans=0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 a*inv(a)ans=1.0000 0 -0.0000 -0.0000 1.0000 0 0.0000 0 1.0000 a(-2)ans=0.0293 -0.0124 -0.0124 -0.0124 0.0293 -0.0124 -0.0124 -0.0124 0.0293 inv(a2)ans=0.0293 -0.0124 -0.0124 -0.0124 0.0293 -0.0124 -0.0124 -0.
18、0124 0.0293217.方阵方阵的行列式(的行列式(det)方阵和行列式是两个不同的概念,方阵和行列式是两个不同的概念,n阶方阵是阶方阵是n2个个数按一定方式排成的数表,数按一定方式排成的数表,n阶行列式则是这些数按一阶行列式则是这些数按一定的运算法则确定的一个数。在定的运算法则确定的一个数。在MATLAB中,求方阵中,求方阵的行列式的函数是的行列式的函数是det。a=magic(3)a=8 1 6 3 5 7 4 9 2 det(a)ans=-360228.矩阵矩阵的特征值(的特征值(eig)在在MATLAB中,以函数中,以函数eig计算矩阵的特征值,并计算矩阵的特征值,并以向量的形式
19、以向量的形式存放。存放。如果如果AX=X存在非零解向量,则称存在非零解向量,则称为为A的一个的一个特特征值征值,相应的非零解向量,相应的非零解向量X称为与称为与相对应的相对应的特征向量特征向量。G=1 2 0;2 5-1;4 10-1;eig(G)ans=3.7321 0.2679 1.0000 p,q=eig(G)p=-0.2440 -0.9107 0.4472 -0.3333 0.3333 0.0000 -0.9107 -0.2440 0.8944q=3.7321 0 0 0 0.2679 0 0 0 1.0000239.矩阵矩阵的特征多项式(的特征多项式(poly)在在MATLAB中,以
20、中,以函数函数poly计算矩阵的特征多项计算矩阵的特征多项式。式。设设A为为n阶方阵,如果阶方阵,如果和和n维非零列向量维非零列向量X使关系使关系式式AX=X成立,那么(成立,那么(A-E)X=0称为矩阵称为矩阵A的特征的特征方程,方程,|A-E|称为方阵称为方阵A的特征多项式。的特征多项式。a=-2 1 1;0 2 0;-4 1 3;poly(a)ans=1 -3 0 4 roots(ans)ans=2.0000+0.0000i 2.0000-0.0000i -1.0000 eig(a)ans=-1 2 22410.矩阵的秩(矩阵的秩(rank)在在MATLAB中,以函数中,以函数rank计
21、算计算矩阵的秩。矩阵的秩。设在矩阵设在矩阵A中存在一个不等于中存在一个不等于0的的r阶子式阶子式D,且所,且所有(有(r+1)阶子式全为)阶子式全为0,那么称,那么称D为方阵为方阵A的最高阶非的最高阶非零子式,零子式,r为矩阵为矩阵A的秩。的秩。a=magic(4)a=16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 rank(a)ans=3 det(a)ans=0253.3.2 数组的运算数组的运算.+加法加法.-减法减法 .*乘法乘法 .幂幂 .左除左除 ./右除右除 .转置转置 数组的运算操作都是对元素逐个进行的。数组运数组的运算操作都是对元素逐个进行的。数组
22、运算符与矩阵运算符的区别便是多一个小黑点。算符与矩阵运算符的区别便是多一个小黑点。a=1 2 3;b=4 5 6;a.*bans=4 10 18 a.2ans=1 4 9 a.bans=4.0000 2.5000 2.0000 a=1+j 2+j 3+ja=1.0000+1.0000i 2.0000+1.0000i 3.0000+1.0000i a.ans=1.0000+1.0000i 2.0000+1.0000i 3.0000+1.0000i26 a=ones(3);b=magic(3)b=8 1 6 3 5 7 4 9 2 a*bans=15 15 15 15 15 15 15 15 15
23、 a.*bans=8 1 6 3 5 7 4 9 2 b2ans=91 67 67 67 91 67 67 67 91 b.2ans=64 1 36 9 25 49 16 81 4273.4 矩阵关系运算与逻辑运算矩阵关系运算与逻辑运算说明说明:(1)表达式输入:非)表达式输入:非0“逻辑真逻辑真”,0“逻辑假逻辑假”(2)表达式输出:)表达式输出:1“逻辑真逻辑真”,0“逻辑假逻辑假”3.4.1 关系运算关系运算两个维数相同的矩阵进行比较两个维数相同的矩阵进行比较:相对应:相对应元素元素进行比较,结果为一个同维数矩阵;进行比较,结果为一个同维数矩阵;矩阵和标量进行比较矩阵和标量进行比较:标量
24、和矩阵中的每一:标量和矩阵中的每一个个元素进行比较,结果为一个同维数矩阵。元素进行比较,结果为一个同维数矩阵。28关关 系系 操操 作作 符符=大于等于大于等于大于大于=等于等于 a=1 2;3 4;b=1 3;4 4;a abans=0 0 0 0 a=bans=1 0 0 1 a=2ans=0 1 0 0 a=bans=1 1 1 1 、=仅比较实部,而仅比较实部,而=、=同时比同时比较实部和虚部。较实部和虚部。293.4.2 逻辑运算逻辑运算 如果如果A和和B是维数相同的矩阵,或者其中一个是标是维数相同的矩阵,或者其中一个是标量,则可以对矩阵进行逻辑运算。量,则可以对矩阵进行逻辑运算。与
25、与A&B或或and(A,B)或或A|B或或or(A,B)非非A或或not(A)异或异或xor(a,b)a=0 1 0 1;b=0 1 1 0;and(a,b)ans=0 1 0 0 a&bans=0 1 0 0 a|bans=0 1 1 1 xor(a,b)ans=0 0 1 1 a&1ans=0 1 0 1303.5 各种运算符的优先级各种运算符的优先级 MATLAB对各种运算的优先级别做了规定。计算时,对各种运算的优先级别做了规定。计算时,遵守的规定是较高优先级先于较低优先级,相同优先级遵守的规定是较高优先级先于较低优先级,相同优先级遵从从左到右原则。遵从从左到右原则。优先级优先级运算符运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 课件 _4
限制150内