1第四讲MATLAB矩阵推荐课件_第1页
1第四讲MATLAB矩阵推荐课件_第2页
1第四讲MATLAB矩阵推荐课件_第3页
1第四讲MATLAB矩阵推荐课件_第4页
1第四讲MATLAB矩阵推荐课件_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

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

文档简介

1、2021/8/221友情提示友情提示2021/8/222第四讲第四讲 MATLABMATLAB矩阵运算矩阵运算 MATLAB MATLAB 具有出色的矩阵运算能具有出色的矩阵运算能力,可以解决线性代数中关于矩阵的力,可以解决线性代数中关于矩阵的一切运算!一切运算!2021/8/223引例:一个实际问题引例:一个实际问题 某食品厂收到某种食品的订单,要求这某食品厂收到某种食品的订单,要求这种食品由甲、乙、丙、丁四种原料做成,种食品由甲、乙、丙、丁四种原料做成,且该食品中含蛋白质、脂肪和碳水化合且该食品中含蛋白质、脂肪和碳水化合物的比例分别为物的比例分别为1515、5 5和和1212。而甲、。而甲

2、、乙、丙、丁原料中含蛋白质、脂肪和碳乙、丙、丁原料中含蛋白质、脂肪和碳水化合物的百分比由下表给出。水化合物的百分比由下表给出。2021/8/224一个实际问题一个实际问题甲甲乙乙丙丙丁丁蛋白质()蛋白质()2020161610101515脂肪()脂肪()3 38 82 25 5碳水化合物碳水化合物1010252520205 5问:如何用这四种原料配置出满问:如何用这四种原料配置出满足要求的食品?足要求的食品?2021/8/225方程的建立方程的建立12341234123412341234123412341234120%16%10%15%15%3%8%2%5%5%10%25%20%5%12%12

3、01610151538255102520512xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2021/8/226分析方程组的解分析方程组的解u需要研究线性方程组的下列几个问题:需要研究线性方程组的下列几个问题:u方程组是否有解?有解时,解的个数是多少?方程组是否有解?有解时,解的个数是多少?如何解?也就是解的存在性和唯一性问题。如何解?也就是解的存在性和唯一性问题。u有多解时,这些解之间的关系如何?所得的有多解时,这些解之间的关系如何?所得的解针对实际问题是否合理?解针对实际问题是否合理?u无解时,如何找出最接近实际问题的近似解?无解时,如何找出最接近实际问题的近似解?202

4、1/8/227线性方程组解的情况线性方程组解的情况2021/8/228学习内容学习内容l变量和数据操作变量和数据操作l数组和矩阵的创建数组和矩阵的创建l数组和矩阵的寻访和操作数组和矩阵的寻访和操作l数组和矩阵运算数组和矩阵运算2021/8/229一、变量和数据操作一、变量和数据操作l 变量命名变量命名u 在在MATLAB MATLAB 中中, ,变量名是以变量名是以字母开头字母开头, ,后接后接字母、数字或下划线字母、数字或下划线的字符序列,但的字符序列,但不得不得使用空格和标点符号使用空格和标点符号, ,最多最多6363个字符。如个字符。如my_var_201my_var_201是合法的变量

5、而是合法的变量而my,var201my,var201就就不是变量名不是变量名2021/8/2210变量命名命名规则(续)变量命名命名规则(续)u在在MATLAB中中,变量名区分字母的大小变量名区分字母的大小写写,如变量如变量myvar和和MyVar表示两个不同表示两个不同的变量的变量,sin是是MATLAB定义的正弦函数定义的正弦函数名名,但但SIN,Sin等都不是。等都不是。2021/8/22112 2赋值语句赋值语句格式:格式:变量变量= =表达式表达式 其中表达式是用运算符将有关运算量连接其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。起来的式子,其结果是一个矩阵。 如

6、如:X=3;X=1 2;3 4;Z=a+X:X=3;X=1 2;3 4;Z=a+X2021/8/22122 2赋值语句(续)赋值语句(续)注注: :只要是赋过值的变量只要是赋过值的变量, ,不管是否在屏幕上不管是否在屏幕上显示过显示过, ,都存储在工作空间中,以后可随时都存储在工作空间中,以后可随时显示或调用。变量名尽可能不要重复显示或调用。变量名尽可能不要重复, ,否则否则会覆盖会覆盖 。注注: :当一个指令或矩阵太长时,可用当一个指令或矩阵太长时,可用,续行续行2021/8/22133.预定义常量预定义常量u在在MATLABMATLAB工作空间中,还驻留几个由系统本工作空间中,还驻留几个由

7、系统本身定义的常量。例如,用身定义的常量。例如,用pipi表示圆周率表示圆周率的的近似值,用近似值,用i i,j j表示虚数单位。表示虚数单位。u预定义常量有特定的含义,在使用时,应尽预定义常量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。量避免对这些变量重新赋值。uMATLABMATLAB预定义的变量还有预定义的变量还有ans,eps(ans,eps(机器零阀机器零阀值值),Inf/inf,NaN/nan,realmax,realmin),Inf/inf,NaN/nan,realmax,realmin2021/8/2214附:附:MATLABMATLAB中常见的预定义变量表中常见的预

8、定义变量表2021/8/2215实例演示实例演示例例: :计算下列表达式的值计算下列表达式的值, ,并显示计算结果。并显示计算结果。x=1+2i;x=1+2i;y=3-sqrt(17);y=3-sqrt(17);z=(cos(abs(x+y)-z=(cos(abs(x+y)-sin(78sin(78* *pi/180)/(x+abs(y)pi/180)/(x+abs(y)其中其中pipi和和i i都是都是MATLABMATLAB预先定义的变量预先定义的变量, ,表表示圆周率示圆周率和虚数单位。和虚数单位。输出结果是:输出结果是:z =-0.3488 + 0.3286iz =-0.3488 +

9、0.3286i2021/8/22164.4.内存变量的管理内存变量的管理1) 1) 内存变量的删除与修改内存变量的删除与修改 MATLABMATLAB工作空间窗口专门用于内存变量的管理。工作空间窗口专门用于内存变量的管理。在在工作空间窗口中可以显示所有内存变量的属工作空间窗口中可以显示所有内存变量的属性。性。当选中某些变量后,再单击当选中某些变量后,再单击DeleteDelete按钮,按钮,就能删除这些变量。当选中某些变量后,再单就能删除这些变量。当选中某些变量后,再单击击OpenOpen按钮,将进入变量编辑器。通过变量编按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可

10、修辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。改变量中的具体元素。2021/8/22174.内存变量的管理内存变量的管理u 2)clear2)clear命令命令-用于删除用于删除MATLABMATLAB工作工作空间中的变量。(注意与空间中的变量。(注意与clcclc命令的区别)命令的区别)u 3)who3)who和和whoswhos命令命令-用于显示在用于显示在MATLABMATLAB工作空间中已经驻留的变量名清工作空间中已经驻留的变量名清单。单。u whowho命令只显示出驻留变量的名称命令只显示出驻留变量的名称u whoswhos在给出变量名的同时,还给出它们在给出变量名的

11、同时,还给出它们的大小、所占字节数及数据类型等信息。的大小、所占字节数及数据类型等信息。2021/8/22184.内存变量的管理内存变量的管理u4)4)保存和加载内存变量文件保存和加载内存变量文件u常用格式为:常用格式为:save save 文件名文件名 变量名表变量名表 load load 文件名文件名 变量名表变量名表 2021/8/22194.内存变量的管理内存变量的管理u注注1 1:变量名表中的变量个数不限,只要内变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分存或文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变隔。当变量名表省略时,保存或

12、装入全部变量。量。u注注2 2:内存变量文件的扩展名为内存变量文件的扩展名为.mat.mat。MATMAT文文件的生成和装入由件的生成和装入由savesave和和loadload命令来完成。命令来完成。2021/8/22205.5.数据的输出格式数据的输出格式uMATLABMATLAB用十进制数表示一个常数,具体用十进制数表示一个常数,具体可采用日常记数法和科学记数法可采用日常记数法和科学记数法( (如如3.5e5)3.5e5)两种表示方法。两种表示方法。u 在一般情况下,在一般情况下,MATLABMATLAB内部每一个数据内部每一个数据元素都是用双精度数来表示和存储的。元素都是用双精度数来表

13、示和存储的。2021/8/22215.5.数据的输出格式数据的输出格式u数据输出时用户可以用数据输出时用户可以用formatformat命令设置或命令设置或改变数据输出格式改变数据输出格式, , uformatformat命令的格式为命令的格式为:format+:format+格式符格式符注注: :格式符决定数据的输出格式格式符决定数据的输出格式, ,格式符的格式符的形式可以为形式可以为 compact; losse;bank; compact; losse;bank; short;long;short e;long eshort;long;short e;long e等。等。u实例:实例:以

14、不同的格式显示以不同的格式显示pipi的值的值2021/8/2222学习内容学习内容l变量和数据操作变量和数据操作l数组和矩阵的创建数组和矩阵的创建l数组和矩阵的寻访和操作数组和矩阵的寻访和操作l数组和矩阵运算数组和矩阵运算2021/8/2223MATLABMATLAB矩阵简介矩阵简介u从结构上讲,矩阵(数组)是从结构上讲,矩阵(数组)是MATLABMATLAB数数据存储的基本单元。据存储的基本单元。u从运算角度讲,矩阵形式的数据有多种从运算角度讲,矩阵形式的数据有多种运算形式,例如向量运算,矩阵运算,运算形式,例如向量运算,矩阵运算,数组运算等。数组运算等。2021/8/2224二、矩阵的创

15、建二、矩阵的创建1.1.直接输入法直接输入法u 最简单的建立矩阵的方法是从键盘直接输最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。入矩阵的元素。将矩阵的元素用将矩阵的元素用方括方括号号括起来,按矩阵行的顺序输入各元素,括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用同一行的各元素之间用空格或逗号空格或逗号分隔,分隔,不同行的元素之间用不同行的元素之间用分号分号分隔。如果只输分隔。如果只输入一行则就形成一个入一行则就形成一个数组数组(又称作向量)(又称作向量)u a=1 2 3;4 5 6 b=1 2 3 4 5 6a=1 2 3;4 5 6 b=1 2 3 4 5 62021/8/2

16、225二、二、矩阵的创建矩阵的创建u注:注:矩阵或数组中的元素可以是任何矩阵或数组中的元素可以是任何MATLABMATLAB表达式表达式 , ,可以是实数可以是实数 , ,也可以是也可以是复数。复数。u例如例如 x=2 pi/2;sqrt(3) 3+5ix=2 pi/2;sqrt(3) 3+5i2021/8/2226二、二、矩阵的创建矩阵的创建2.2.利用利用M M文件建立矩阵文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它对于比较大且比较复杂的矩阵,可以为它专门建立一个专门建立一个M M文件。文件。例例 mymatrix1.mmymatrix1.m 2021/8/2227利用利用M M文件

17、建立矩阵(续)文件建立矩阵(续) 对以文本格式存储的数据对以文本格式存储的数据MATLABMATLAB也可以也可以使用相关命令读取数据。详细信息同学使用相关命令读取数据。详细信息同学们可以参阅们可以参阅MATLABMATLAB帮助信息!相关命令帮助信息!相关命令有有 dlmread;textread;fopendlmread;textread;fopen等命令等命令2021/8/2228二、矩阵(二、矩阵(数组数组)的创建)的创建3.3.利用冒号表达式建立一个数组(向量)注意利用冒号表达式建立一个数组(向量)注意向量也是特殊的矩阵向量也是特殊的矩阵 一般格式是:一般格式是:e1:e2:e3e1

18、:e2:e3其中其中e1e1为初始值,为初始值,e2e2为步长,为步长,e3e3为终止值为终止值2021/8/2229冒号表达式创建矩阵(续)冒号表达式创建矩阵(续)u注:注:e3e3为尾元素数值限,而非元素值。为尾元素数值限,而非元素值。u 如如x=1x=1:2 2:7 7u 若步长若步长e2e2为为1 1,则可省略此项输入。,则可省略此项输入。u 如如x=1:5x=1:5u 若若e1e1小于小于e3e3则则e2e2必须大于必须大于0 0,如,如x=1:2:12x=1:2:12u 若若e1e1大于大于e3e3则则e2e2必须小于必须小于0,0,如如x=12:-2:1x=12:-2:1u 若若

19、e1e1等于等于e3e3则只有一个元素则只有一个元素, ,u 如如x=1:2:1x=1:2:1则只输出则只输出1 12021/8/2230二、创建矩阵二、创建矩阵u4.4.采用定数线性采样函数产生向量采用定数线性采样函数产生向量u调用格式为:调用格式为:x=linspace(a,b,n)x=linspace(a,b,n)u其中其中a a和和b b是生成向量的第一个和最后一个元素是生成向量的第一个和最后一个元素,n,n是元素总数。是元素总数。u作用:作用:a a和和b b之间产生一个等分的之间产生一个等分的n n维向量维向量, ,如果省如果省略略n,n,则系统默认则系统默认n n等于等于100.

20、100.u如:如:x=linspace(1,100,6);x=linspace(1,100,6); x=linspace(1,100) x=linspace(1,100)2021/8/2231定数线性采样函数产生向量(续)定数线性采样函数产生向量(续)注:注:它与冒号表达式的区别是:它与冒号表达式的区别是: linspacelinspace是维数已知的情况下产生向量,是维数已知的情况下产生向量,冒号表达式冒号表达式是维数未知,间隔已知。是维数未知,间隔已知。2021/8/2232二、二、创建矩阵创建矩阵u5.5.采用定数对数采样函数产生向量采用定数对数采样函数产生向量u调用格式为:调用格式为:

21、 y=logspace(a,b,n);y=logspace(a,b,n);u其中其中a a和和b b是生成向量的第一个和最后一个是生成向量的第一个和最后一个元素元素,n,n是元素总数。是元素总数。u作用作用: :是是10a10a和和10b10b之间产生一等分的之间产生一等分的n n维维向量向量, ,如果省略如果省略n,n,则系统默认则系统默认n n等于等于50.50.102222021/8/2233定数对数采样函数产生向量(续)定数对数采样函数产生向量(续)u如如x=logspace(0,5,6);x=logspace(0,5)x=logspace(0,5,6);x=logspace(0,5)

22、u注:注:此命令主要用在数字信号处理中,此命令主要用在数字信号处理中,在其中又时需要产生对数刻度坐标在其中又时需要产生对数刻度坐标2021/8/2234 5.5.用用MATLABMATLAB函数创建矩阵函数创建矩阵u空阵空阵 MATLAB MATLAB允许输入空阵,当一项允许输入空阵,当一项操作无结果时,返回空阵。操作无结果时,返回空阵。urand() rand() 随机矩阵随机矩阵 , ,元素值在(元素值在(0 0,1 1)内)内u思考:如何创建一个在任意区间(思考:如何创建一个在任意区间(a,ba,b)上取值)上取值的随机矩阵的随机矩阵ua+(b-a)a+(b-a)* *rand()ran

23、d()ueye() eye() 单位矩阵单位矩阵?2021/8/22355.用用MATLAB函数创建矩阵函数创建矩阵uzeros ()zeros ()全部元素都为全部元素都为0 0的矩阵;的矩阵;uones() ones() 全部元素都为全部元素都为1 1的矩阵;的矩阵;urandn() randn() 产生均值为产生均值为0 0,方差为,方差为1 1的标的标准正态分布随机矩阵。准正态分布随机矩阵。u注:注:randn(state,0)randn(state,0)表示将正态随机表示将正态随机数发生器置数发生器置0 02021/8/22365.用用MATLAB函数创建矩阵函数创建矩阵u注注: :

24、()()中如果输入中如果输入(m m,n n)则说明产生一个则说明产生一个m m行行n n列列的矩阵(的矩阵(eye()eye()函数除外函数除外) u如果输入如果输入(m m)则产生一个则产生一个m m行行m m列列的方阵的方阵u如果输入(如果输入(m,n,p,m,n,p,)则产生)则产生m m* *n n* *p p* *阶的阶的矩阵(此项用在产生高维矩阵)矩阵(此项用在产生高维矩阵)u如果输入如果输入(size(A)size(A))则产生一个与则产生一个与A A大小相大小相同的矩阵同的矩阵2021/8/22374.用用MATLAB函数创建矩阵函数创建矩阵 注:注:还有还有伴随矩阵、稀疏矩

25、阵、魔方矩阵、伴随矩阵、稀疏矩阵、魔方矩阵、对角矩阵、范德蒙等矩阵对角矩阵、范德蒙等矩阵的创建,这些特殊的创建,这些特殊矩阵在矩阵在MATLABMATLAB中有专门的函数可以建立,在中有专门的函数可以建立,在此就不一一介绍了。特殊矩阵的建立见相关此就不一一介绍了。特殊矩阵的建立见相关MATLABMATLAB参考书或帮助文件。参考书或帮助文件。2021/8/2238实例演示实例演示例例: :建立与矩阵建立与矩阵A A同样大小的零矩阵。设矩阵同样大小的零矩阵。设矩阵A A为为2 23 3矩阵。矩阵。 具体命令如下:具体命令如下:A=1 2 3;4 5 6; A=1 2 3;4 5 6; % %产生

26、一个产生一个2 23 3阶矩阵阶矩阵A Azeros(size(A) zeros(size(A) % %产生一个与矩阵产生一个与矩阵A A同样大小的零矩阵同样大小的零矩阵2021/8/2239学习内容学习内容l变量和数据操作变量和数据操作l数组和矩阵的创建数组和矩阵的创建l数组和矩阵的寻访和操作数组和矩阵的寻访和操作l数组和矩阵运算数组和矩阵运算2021/8/22401.1.矩阵和数组拆分矩阵和数组拆分u 1.1.利用冒号表达式可获得一矩阵的子矩阵利用冒号表达式可获得一矩阵的子矩阵u A(i)A(i)表示取数组或者矩阵的第表示取数组或者矩阵的第i i个元素(矩阵个元素(矩阵的元素是的元素是按列

27、排序按列排序)u A(i,j)A(i,j)表示取表示取A A矩阵第矩阵第i i行、第行、第j j列的元素列的元素u A(e1:e2:e3)A(e1:e2:e3)表示取数组或矩阵表示取数组或矩阵A A的第的第e1e1元素开元素开始每隔始每隔e2e2步长一直到步长一直到e3e3的所有元素的所有元素2021/8/22411.1.矩阵和数组拆分矩阵和数组拆分uA(m n l)A(m n l)表示取数组或矩阵表示取数组或矩阵A A中的第中的第m, n, m, n, l l个元素个元素uA(:,j)A(:,j)表示取表示取A A矩阵的第矩阵的第j j列全部元素;列全部元素;uA(i,:)A(i,:)表示表

28、示A A矩阵第矩阵第i i行的全部元素;行的全部元素;uA(i:i+m,:)A(i:i+m,:)表示取表示取A A矩阵第矩阵第i ii+mi+m行的全部行的全部元素;元素;2021/8/22421.1.矩阵和数组拆分矩阵和数组拆分uA(:,k:k+m)A(:,k:k+m)表示取表示取A A矩阵第矩阵第k kk+mk+m列的全列的全部元素部元素; ;uA(i:i+m,k:k+m)A(i:i+m,k:k+m)表示取表示取A A矩阵第矩阵第i ii+mi+m行行内内, ,并在第并在第k kk+mk+m列中的所有元素列中的所有元素; ;u例:例:建立一个建立一个5 5阶的魔方矩阵,完成有关阶的魔方矩阵

29、,完成有关矩阵的寻访操作矩阵的寻访操作2021/8/22431.1.矩阵和数组拆分矩阵和数组拆分u注:注:还可利用一般向量和还可利用一般向量和endend运算符来表运算符来表示矩阵下标示矩阵下标, ,从而获得子矩阵。从而获得子矩阵。endend表示某表示某一维的末尾元素下标。一维的末尾元素下标。uA(i,end)A(i,end)表示取表示取A A矩阵矩阵i i行的最后一个元素行的最后一个元素uA(end,j)A(end,j)表示取表示取A A矩阵矩阵j j列的最后一个元素列的最后一个元素uA(i:end)A(i:end)表示取矩阵第表示取矩阵第i i个元素到最后一个元素到最后一个元素个元素20

30、21/8/22441.矩阵和数组拆分矩阵和数组拆分u 2.2.对角元素抽取函数对角元素抽取函数diagdiagu diag(X,kdiag(X,k)-)-抽取矩阵抽取矩阵X X的第的第k k条对角线的元素条对角线的元素, ,u k=0k=0时即为抽取主对角线时即为抽取主对角线, , k0 k0时为上方第时为上方第k k条对角线条对角线, , k0 k0时为下方第时为下方第k k条对角线条对角线 (注意矩阵对角线的计数方法)(注意矩阵对角线的计数方法)u diag(Xdiag(X)-)-相当于相当于diag(X,0)diag(X,0)2021/8/2245diagdiag命令(续)命令(续)u注

31、:注:diag命令还可以用来建立对角矩阵命令还可以用来建立对角矩阵(先要给出主对角线上(先要给出主对角线上 的元素)的元素)udiga(v,k)-使向量使向量v为所得矩阵的第为所得矩阵的第k条对条对角线元素角线元素udiag(v)-使得使得v为矩阵的主对角元素为矩阵的主对角元素2021/8/2246实例演示实例演示u利用初等变化求矩阵的秩利用初等变化求矩阵的秩121 02242662102333334A2021/8/2247步骤详解步骤详解uA=1 -2 -1 0 2;-2 4 2 6 -6;2 -1 0 A=1 -2 -1 0 2;-2 4 2 6 -6;2 -1 0 2 3;3 3 3 3

32、 4;%2 3;3 3 3 3 4;%输入矩阵数据输入矩阵数据uA(2,:)=A(2,:)+2A(2,:)=A(2,:)+2* *A(1,:);A(1,:);% %将第一行乘将第一行乘2 2加到第加到第2 2行上行上uA(3,:)=A(3,:)-2A(3,:)=A(3,:)-2* *A(1,:);A(1,:);% %将第一行乘将第一行乘-2-2加到第加到第3 3行上行上uA(4,:)=A(4,:)-3A(4,:)=A(4,:)-3* *A(1,:);A(1,:);% %将第一行乘将第一行乘-3-3加到第加到第4 4行上行上2021/8/2248步骤详解步骤详解uA(2 3,:)=A(3 2,:

33、);A(2 3,:)=A(3 2,:);% %交换第二行和第三行的数据交换第二行和第三行的数据uA(3 4,:)=A(4 3,:);A(3 4,:)=A(4 3,:);% %交换第三行和第四行的数据交换第三行和第四行的数据uA(3,:)=A(3,:)-3A(3,:)=A(3,:)-3* *A(2,:);A(2,:);% %将第二行乘以将第二行乘以-3-3加到第三行上加到第三行上uA(4,:)=A(4,:)+2A(4,:)=A(4,:)+2* *A(3,:);A(3,:);% %将第三行乘以将第三行乘以2 2加到第四行上加到第四行上2021/8/2249实例演示实例演示u对角元素抽取函数对角元素

34、抽取函数diagdiag实例实例ua=pascal(4) %a=pascal(4) %产生一个产生一个4 4阶阶pascalpascal矩阵矩阵uV=diag(a) %V=diag(a) %抽取矩阵抽取矩阵a a的主对角元素的主对角元素uV=diag(a,2) %V=diag(a,2) %抽取矩阵抽取矩阵a a的第二条对角线的第二条对角线上的元素上的元素uV=diag(diag(a) %V=diag(diag(a) %使的使的diag(a)diag(a)为矩阵的为矩阵的主对角元素,其余元素为主对角元素,其余元素为0 02021/8/22502.2.矩阵的修改矩阵的修改1 1)直接修改)直接修改

35、: :可用可用 键找到所要修改的矩阵,键找到所要修改的矩阵,用用键移动到要修改的矩阵元素上即可键移动到要修改的矩阵元素上即可修改修改。2 2)指令修改)指令修改: :可以用可以用A(A( , , )= )= 来修改。来修改。2021/8/22512.矩阵的修改矩阵的修改3 3) 利用空矩阵删除矩阵的元素利用空矩阵删除矩阵的元素在在MATLABMATLAB中,定义中,定义为空矩阵。给变量为空矩阵。给变量X X赋空矩阵的语句为赋空矩阵的语句为X=X=。 注:注:X=X=与与clear Xclear X不同,不同,clearclear是将是将X X从工作空间中删除,而空矩阵则存在于从工作空间中删除,

36、而空矩阵则存在于工作空间中,只是维数为工作空间中,只是维数为0 0。2021/8/2252实例演示实例演示例如:例如:a=1 2 0;3 0 5;7 8 9a=1 2 0;3 0 5;7 8 9a = 1 2 0a = 1 2 0 3 0 5 3 0 5 7 8 9 7 8 9a(3,3)=0a(3,3)=0a = 1 2 0a = 1 2 0 3 0 5 3 0 5 7 8 0 7 8 02021/8/2253学习内容学习内容l变量和数据操作变量和数据操作l数组和矩阵的创建数组和矩阵的创建l数组和矩阵的寻访和操作数组和矩阵的寻访和操作l数组和矩阵运算数组和矩阵运算2021/8/22541.矩

37、阵加、减(矩阵加、减(,)运算)运算规则:规则:u 两个矩阵相加或减是指有相同的行和两个矩阵相加或减是指有相同的行和列两矩阵的对应元素相加减。列两矩阵的对应元素相加减。u 允许参与运算的两矩阵之一是标量允许参与运算的两矩阵之一是标量(常量)。标量与矩阵的所有元素分别(常量)。标量与矩阵的所有元素分别进行加减操作。进行加减操作。2021/8/22552.矩阵乘(矩阵乘( )运算运算u A A矩阵的列数必须等于矩阵的列数必须等于B B矩阵的行数矩阵的行数, ,若若A A为为m mn n矩阵,矩阵,B B为为n np p矩阵,则矩阵,则C=AC=A* *B B为为m mp p矩阵。矩阵。u 标量可与

38、任何矩阵相乘。即矩阵的所有标量可与任何矩阵相乘。即矩阵的所有元素都与标量相乘元素都与标量相乘, ,u 例如例如:a=1 2 3;4 5 6;7 8;b=1;2;3;:a=1 2 3;4 5 6;7 8;b=1;2;3;u c=ac=a* *b d=3b d=3* *a a2021/8/22563.3.矩阵除法矩阵除法u在在MATLABMATLAB中,有两种矩阵除法运算:中,有两种矩阵除法运算: 和和/ /,分别表示左除和右除。分别表示左除和右除。u如果如果A A矩阵是非奇异方阵(矩阵是非奇异方阵(det(A)det(A)不为不为0 0),),则则ABAB和和B/AB/A运算可以实现。运算可以实

39、现。u对于矩阵来说,左除和右除表示两种不同对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般阵运算,一般ABB/AABB/A2021/8/22573.矩阵除法矩阵除法u左除:左除:ABAB等效于等效于A A的逆左乘的逆左乘B B矩阵矩阵, ,也就是也就是inv(A)inv(A)* *B B注:注:左除用来求解线性方程组左除用来求解线性方程组A A* *X=BX=BuA/BA/B等效于等效于A A左乘左乘B B的逆矩阵的逆矩阵, ,也就是也就是inv(A)inv(A)* *B B注:注:右除用来求解线性方程组右除用来求解线性方

40、程组X X* *A=BA=BuB/AB/A等效于等效于A A矩阵的逆右乘矩阵的逆右乘B B矩阵矩阵, ,也就是也就是B B* *inv(A)inv(A)2021/8/22583.矩阵除法矩阵除法u对于含有标量的运算,两种除法运算的结果对于含有标量的运算,两种除法运算的结果相同,如相同,如3/4=433/4=43有相同的值,都等于有相同的值,都等于0.75.0.75.u设设a=10.5,25a=10.5,25, 则则a/5=5a=2.1000 5.0000a/5=5a=2.1000 5.0000u注:注:3/43/4不等于不等于34342021/8/22594.4.矩阵其他常见的运算矩阵其他常见

41、的运算4.4.矩阵的乘方矩阵的乘方: :一个矩阵的乘方运算可以表一个矩阵的乘方运算可以表示成示成AxAx,要求,要求A A为方阵,为方阵,x x为标量。为标量。5.5.矩阵的逆矩阵的逆: :矩阵矩阵A A的逆为的逆为inv(A)inv(A)6.6.矩阵的秩矩阵的秩: :矩阵矩阵A A的秩为的秩为rank(A)rank(A)2021/8/22604.4.矩阵其他常见的运算矩阵其他常见的运算7.7.矩阵矩阵A A的行列式为:的行列式为:det(A)det(A)8.8.矩阵矩阵A A的基础解系为的基础解系为null(A)null(A)9.9.伴随矩阵:引入伴随矩阵的概念,为了求伴随矩阵:引入伴随矩阵

42、的概念,为了求逆阵,一般数学软件都有求逆阵的函数。逆阵,一般数学软件都有求逆阵的函数。 如果如果A A可逆,则可逆,则A A* *=|A|A(-1)=|A|A(-1) 2021/8/22614.矩阵其他常见的运算矩阵其他常见的运算10.10.方阵的迹方阵的迹: :方阵方阵A A的迹为的迹为trace(A)trace(A)注:注:矩阵的迹指矩阵主对角线上所有元素之和。矩阵的迹指矩阵主对角线上所有元素之和。11.11.化矩阵为最简阶梯型矩阵:化矩阵为最简阶梯型矩阵:rref(A)rref(A)12.12.求矩阵求矩阵A A的特征多项式:的特征多项式:poly(A)poly(A)13.13.求矩阵求

43、矩阵A A的正交化矩阵:的正交化矩阵:orth(A)orth(A)例:例:写出一个写出一个5 5阶阶pascalpascal矩阵矩阵, ,完成上述运算完成上述运算2021/8/22625.5.矩阵的特征值与特征向量矩阵的特征值与特征向量 在在MATLABMATLAB中中, ,计算矩阵计算矩阵A A的特征值和特征向量的特征值和特征向量的函数是的函数是eig(A),eig(A),常用的调用格式有常用的调用格式有3 3种:种:(1) E=eig(A)(1) E=eig(A) 求矩阵求矩阵A A的全部特征值的全部特征值, ,构成向量构成向量E E。(2) V,D=eig(A)(2) V,D=eig(A

44、) 求出矩阵求出矩阵A A的全部特征值,构成对角阵的全部特征值,构成对角阵D D,并,并求求A A的特征向量构成的特征向量构成V V的列向量。的列向量。2021/8/22635.5.矩阵的特征值与特征向量矩阵的特征值与特征向量 (3)V,D=eig(A,nobalance) (3)V,D=eig(A,nobalance) 注:注:与第与第2 2种格式用法类似种格式用法类似 但第但第2 2种格式中先对种格式中先对A A作相似变换后求矩阵作相似变换后求矩阵 A A的特征值和特征向量,的特征值和特征向量, 格式格式3 3是直接求矩阵是直接求矩阵A A的特征值和特征向量的特征值和特征向量2021/8/

45、2264实例演示实例演示例例: :用求特征值的方法解方程。用求特征值的方法解方程。3x3x5 5-7x-7x4 4+5x+5x2 2+2x-18=0+2x-18=0命令如下:命令如下:p=3,-7,0,5,2,-18;p=3,-7,0,5,2,-18;A=compan(p); %AA=compan(p); %A的伴随矩阵的伴随矩阵x1=eig(A) %x1=eig(A) %求求A A的特征值的特征值x2=roots(p) %x2=roots(p) %直接求多项式直接求多项式p p的零点的零点2021/8/2265实例演示实例演示u讨论向量组讨论向量组a1=(1 3 3 2,);a2=(2 6

46、9 a1=(1 3 3 2,);a2=(2 6 9 5);a3=(-1 -3 3 0)5);a3=(-1 -3 3 0)的线性相关性的线性相关性uA=1 3 3 2;2 6 9 5;-1 -3 3 0A=1 3 3 2;2 6 9 5;-1 -3 3 0 % %将向量按列排成矩阵将向量按列排成矩阵uRank(A)%Rank(A)%结果结果=2=2所以向量线性相关所以向量线性相关注:注:或用或用rref(A)rref(A)化为阶梯型求出秩再判断。化为阶梯型求出秩再判断。还可从最简阶梯型看出向量组的极大无关组。还可从最简阶梯型看出向量组的极大无关组。2021/8/2266附:附:Compan命令的

47、使用命令的使用ucompan(u)compan(u)用来求多项式用来求多项式u u对应的伴随矩阵对应的伴随矩阵uu = 1 0 -7 6%u = 1 0 -7 6%对应多项式对应多项式x3-7x3-7* *x+6x+6uA = compan(u)%A = compan(u)%求多项式求多项式u u对应的伴随矩阵对应的伴随矩阵ueig(compan(u) eig(compan(u) u% %求多项式求多项式u u对应的伴随矩阵的特征向量对应的伴随矩阵的特征向量uThis is also roots(u).This is also roots(u).2021/8/2267讨论线性方程组是否有解的讨

48、论线性方程组是否有解的MATLABMATLAB方法方法u对线性方程组对线性方程组AX=bAX=b,在,在MATLABMATLAB软件里先软件里先给系数矩阵给系数矩阵A A和常数列矩阵和常数列矩阵b b赋值,赋值,u利用命令利用命令rank(A)rank(A),rank(Arank(A,b)b)求出系数求出系数矩阵和增广矩的秩。矩阵和增广矩的秩。u再根据下属定理进行判断线性方程组解再根据下属定理进行判断线性方程组解的情况的情况. .2021/8/2268讨论线性方程组是否有解的讨论线性方程组是否有解的MATLABMATLAB方法方法u定理定理l:l:u(1)(1)若若r(A)r(A|b)r(A)

49、r(A|b),则线性方程组无解,则线性方程组无解; ;u(2)(2)若若r(A)=r(A|b)=nr(A)=r(A|b)=n,则线性方程组存,则线性方程组存在唯一解在唯一解: :u(3)(3)若若r(A)=r(A|b)nr(A)=r(A|b)n,则线性方程组有,则线性方程组有无穷多个解。无穷多个解。2021/8/2269利用左除命令给出线性方程组的利用左除命令给出线性方程组的特解特解u对线性方程组对线性方程组AX=bAX=b,“Ab”Ab”给出该线性方给出该线性方程组的一个特解。程组的一个特解。注注1 1:若若A A为方阵,则为方阵,则AbAb和和inv(A)inv(A)* *b b基本一致基

50、本一致; ; 若若A A不为方阵,不为方阵,AbAb命令使命令使MatlabMatlab软件自软件自动选择适当的方法来求解。动选择适当的方法来求解。2021/8/2270利用左除命令给出线性方程组的利用左除命令给出线性方程组的特解特解u 若若AX=bAX=b无解,命令无解,命令“Ab”Ab”将给出一个最将给出一个最小二乘意义上的近似解,即使小二乘意义上的近似解,即使AX-bAX-b的长度的长度达到最小。达到最小。u AX=bAX=b有无穷解,命令有无穷解,命令“Ab”Ab”将给出一个将给出一个具有最多零元素的特解。具有最多零元素的特解。u 若若AX=bAX=b有唯一解,则命令有唯一解,则命令“

51、Ab”Ab”给出这给出这个唯一解。个唯一解。2021/8/2271线性方程组求解的步骤线性方程组求解的步骤u为求线性方程组为求线性方程组AX=bAX=b的通解的通解, ,需先判断方需先判断方程组是否有解。程组是否有解。u若有解则用若有解则用“Ab”Ab”求出一个特解求出一个特解u再用命令再用命令“null(A)”null(A)”求出导出组求出导出组AX=0AX=0的的一个基础解系得出其通解,然后利用定理一个基础解系得出其通解,然后利用定理的结论给出的结论给出AX=bAX=b的通解的通解. .2021/8/2272附:线性方程组解的基本定理附:线性方程组解的基本定理u定理:对线性方程组的导出组定

52、理:对线性方程组的导出组AX=bAX=b,若,若r(A)=rnr(A)=rn,则导出组的基础解系含有则导出组的基础解系含有n n一一r r个解向量个解向量u(1)(1)若若1,2 ,n-r1,2 ,n-r为导出组的基础解系,则为导出组的基础解系,则k11,+k22 +kn-rn-rk11,+k22 +kn-rn-r就是导出组就是导出组AX=0AX=0的全的全部解,也称为通解部解,也称为通解; ;u(2)(2)若若00是是Ax=bAx=b的一个特解,则的一个特解,则0 0 +k11,+k22 +kn-rn-r+k11,+k22 +kn-rn-r就是就是AX=BAX=B的通解的通解2021/8/2

53、273实例演示实例演示l例:求下面线性方程组的解例:求下面线性方程组的解1234512345234512345732222623543312xxxxxxxxxxxxxxxxxxx2021/8/2274实例演示实例演示u(l)(l)先判断线性方程组解的情况。先判断线性方程组解的情况。u输入并运行输入并运行:a=;b=:a=;b=url=rank(a)rl=rank(a),r2=rank(a,b)r2=rank(a,b)u运行结果为运行结果为rl=r2=35rl=r2=35,说明该线性方,说明该线性方程组有无穷多个解。程组有无穷多个解。2021/8/2275实例演示实例演示u(2)(2)先求出线性

54、方程组的一个特解先求出线性方程组的一个特解x0=abx0=abu(3)(3)再求出导出组再求出导出组ax=0ax=0的一个基础解系的一个基础解系 xx=null(a)xx=null(a)u(4)(4)由定理写出该线性方程组的通解由定理写出该线性方程组的通解2021/8/22766.6.对角阵与三角阵介绍对角阵与三角阵介绍u对角阵对角阵: :只有对角线上有非只有对角线上有非0 0元素的矩阵元素的矩阵称为对角矩阵称为对角矩阵u对角线上的元素相等的对角矩阵称为对角线上的元素相等的对角矩阵称为数数量矩阵量矩阵u对角线上的元素都为对角线上的元素都为1 1的对角矩阵称为的对角矩阵称为单位矩阵单位矩阵202

55、1/8/22776.6.对角阵与三角阵介绍对角阵与三角阵介绍u三角阵三角阵: :三角阵又进一步分为上三角阵三角阵又进一步分为上三角阵和下三角阵,和下三角阵,u所谓上三角阵,即矩阵的主对角线所谓上三角阵,即矩阵的主对角线以下以下的元素全为的元素全为0 0的一种矩阵,的一种矩阵,u下三角阵则是主对角线下三角阵则是主对角线以上以上的元素全为的元素全为0 0的一种矩阵。的一种矩阵。2021/8/22786.6.对角阵的构造对角阵的构造u(1)(1)构造对角矩阵构造对角矩阵: :设设V V为具有为具有m m个元素的向量个元素的向量udiag(V)-diag(V)-将产生一个对角矩阵将产生一个对角矩阵,

56、,其主对角其主对角线元素为向量线元素为向量V V的元素。的元素。udiag(V,k)-diag(V,k)-产生一个对角阵,其第产生一个对角阵,其第k k条对条对角线的元素即为向量角线的元素即为向量V V的元素。的元素。2021/8/22796. 6. 三角阵的构造三角阵的构造(2)(2)上三角矩阵上三角矩阵-triu(A)triu(A)triu(A,k)triu(A,k)是求矩阵是求矩阵A A的第的第k k条对角线以上的条对角线以上的 元素。元素。(3)(3)下三角矩阵下三角矩阵-tril(A)tril(A) tril(A,k) tril(A,k),用法,用法triu(A,k)triu(A,k

57、)完全相同。完全相同。2021/8/2280实例演示实例演示ua=pascal(4) %a=pascal(4) %产生一个产生一个4 4阶阶pascalpascal矩阵矩阵u解释下列命令的结果解释下列命令的结果ux=triu(a)x=triu(a)uy=triu(a,2)y=triu(a,2)uz=tril(a)z=tril(a)um=tril(a,-1)m=tril(a,-1)2021/8/2281实例演示实例演示例例 建立建立5 55 5矩阵矩阵A A,然后将,然后将A A的第一行元素的第一行元素乘以乘以1 1,第二行乘以,第二行乘以2 2,第五行乘以,第五行乘以5 5。分析:分析: 相当

58、于乘了一个主对角元素分别为相当于乘了一个主对角元素分别为1 1到到5 5的方阵的方阵2021/8/2282实例演示实例演示 具体命令:具体命令:A=17,0,1,0,15;23,5,7,14,16;4,0,13,A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19;0,22;10,12,19,21,3;11,18,25,2,19;D=diag(1:5);D=diag(1:5);D D* *A %A %用用D D左乘左乘A A,对,对A A的每行乘以一个指的每行乘以一个指定常数定常数2021/8/22837.7.点运

59、算点运算u 在在MATLABMATLAB中,有一种特殊的运算,因为中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,其运算符是在有关算术运算符前面加点,所以叫点运算。所以叫点运算。u点运算符有点运算符有. .* *、././、.和和.。u两矩阵或数组进行点运算是指它们的两矩阵或数组进行点运算是指它们的对应对应元素进行相关运算元素进行相关运算,要求两矩阵的维参数,要求两矩阵的维参数相同。相同。2021/8/2284实例演示实例演示u比较下列运算的结果说出他们的异同比较下列运算的结果说出他们的异同ua=1 2 3;2 3 4;3 4 5;b=1 1 1;2 2 a=1 2 3;2 3

60、4;3 4 5;b=1 1 1;2 2 2;3 3 3;c=82;3 3 3;c=8ua+b; a.+b; c+a; c.+a; a.+ca+b; a.+b; c+a; c.+a; a.+cuab;a.b;a/b;a./b;ac;a.cab;a.b;a/b;a./b;ac;a.cua a* *b;a.b;a.* *b;c.b;c.* *a;ca;c* *a auac;a.3ac;a.32021/8/22858.8.关系运算关系运算uMATLABMATLAB提供了提供了6 6种关系运算符:种关系运算符:u(小于小于) )、=(大于大于) )、=(=(大于或等于大于或等于) )、=(=(等于等于) )、=(=(不等不等于于)

温馨提示

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

评论

0/150

提交评论