《MATLAB矩阵学习教程.pptx》由会员分享,可在线阅读,更多相关《MATLAB矩阵学习教程.pptx(105页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四讲 MATLABMATLAB矩阵运算 MATLAB MATLAB 具有出色的矩阵运算能具有出色的矩阵运算能力,可以解决线性代数中关于矩阵的力,可以解决线性代数中关于矩阵的一切运算!一切运算!第1页/共105页引例:一个实际问题 某食品厂收到某种食品的订单,要求这种食品由甲、乙、丙、丁四种原料做成,且该食品中含蛋白质、脂肪和碳水化合物的比例分别为1515、5 5和1212。而甲、乙、丙、丁原料中含蛋白质、脂肪和碳水化合物的百分比由下表给出。第2页/共105页一个实际问题甲甲乙乙丙丙丁丁蛋白质()蛋白质()2020161610101515脂肪()脂肪()3 38 82 25 5碳水化合物碳水化
2、合物1010252520205 5问:如何用这四种原料配置出满足要求的食品?第3页/共105页方程的建立第4页/共105页分析方程组的解u需要研究线性方程组的下列几个问题:u方程组是否有解?有解时,解的个数是多少?如何解?也就是解的存在性和唯一性问题。u有多解时,这些解之间的关系如何?所得的解针对实际问题是否合理?u无解时,如何找出最接近实际问题的近似解?第5页/共105页线性方程组解的情况第6页/共105页学习内容1变量和数据操作2数组和矩阵的创建3数组和矩阵的寻访和操作4数组和矩阵运算第7页/共105页一、变量和数据操作1.变量命名u在MATLAB MATLAB 中,变量名是以字母开头,后
3、接字母、数字或下划线的字符序列,但不得使用空格和标点符号,最多6363个字符。如my_var_201my_var_201是合法的变量而my,var201my,var201就不是变量名第8页/共105页变量命名命名规则(续)u在MATLAB中,变量名区分字母的大小写,如变量myvar和MyVar表示两个不同的变量,sin是MATLAB定义的正弦函数名,但SIN,Sin等都不是。第9页/共105页2 2赋值语句格式:变量=表达式 其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。如:X=3;X=1 2;3 4;Z=a+X:X=3;X=1 2;3 4;Z=a+X第10页/共105页2
4、 2赋值语句(续)注:只要是赋过值的变量,不管是否在屏幕上显示过,都存储在工作空间中,以后可随时显示或调用。变量名尽可能不要重复,否则会覆盖 。注:当一个指令或矩阵太长时,可用,续行第11页/共105页3.预定义常量u在MATLABMATLAB工作空间中,还驻留几个由系统本身定义的常量。例如,用pipi表示圆周率的近似值,用i i,j j表示虚数单位。u预定义常量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。uMATLABMATLAB预定义的变量还有ans,eps(ans,eps(机器零阀值),Inf/inf,NaN/nan,realmax,realmin),Inf/inf,NaN/n
5、an,realmax,realmin第12页/共105页附:MATLABMATLAB中常见的预定义变量表第13页/共105页实例演示例:计算下列表达式的值,并显示计算结果。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(78*pi/180)/(x+abs(y)sin(78*pi/180)/(x+abs(y)其中pipi和i i都是MATLABMATLAB预先定义的变量,表示圆周率和虚数单位。输出结果是:z=-0.3488+0.3286iz=-0.3488+0.3286i第14页/共105页4
6、.4.内存变量的管理1)1)内存变量的删除与修改 MATLABMATLAB工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再单击DeleteDelete按钮,就能删除这些变量。当选中某些变量后,再单击OpenOpen按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。第15页/共105页4.内存变量的管理u2)clear2)clear命令-用于删除MATLABMATLAB工作空间中的变量。(注意与clcclc命令的区别)u3)who3)who和whoswhos命令-用于显示在MATLABMATLAB工作
7、空间中已经驻留的变量名清单。uwhowho命令只显示出驻留变量的名称uwhoswhos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。第16页/共105页4.内存变量的管理u4)4)保存和加载内存变量文件u常用格式为:save save 文件名 变量名表 load load 文件名 变量名表 第17页/共105页4.内存变量的管理u注1 1:变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。u注2 2:内存变量文件的扩展名为.mat.mat。MATMAT文件的生成和装入由savesave和loadload命令来完成
8、。第18页/共105页5.5.数据的输出格式uMATLABMATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法(如3.5e5)3.5e5)两种表示方法。u 在一般情况下,MATLABMATLAB内部每一个数据元素都是用双精度数来表示和存储的。第19页/共105页5.5.数据的输出格式u数据输出时用户可以用formatformat命令设置或改变数据输出格式,uformatformat命令的格式为:format+:format+格式符注:格式符决定数据的输出格式,格式符的形式可以为 compact;losse;bank;compact;losse;bank;short;long;s
9、hort e;long eshort;long;short e;long e等。u实例:以不同的格式显示pipi的值第20页/共105页学习内容1变量和数据操作2数组和矩阵的创建3数组和矩阵的寻访和操作4数组和矩阵运算第21页/共105页MATLABMATLAB矩阵简介u从结构上讲,矩阵(数组)是MATLABMATLAB数据存储的基本单元。u从运算角度讲,矩阵形式的数据有多种运算形式,例如向量运算,矩阵运算,数组运算等。第22页/共105页二、矩阵的创建1.1.直接输入法u最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间
10、用空格或逗号分隔,不同行的元素之间用分号分隔。如果只输入一行则就形成一个数组(又称作向量)ua=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 6第23页/共105页二、矩阵的创建u注:矩阵或数组中的元素可以是任何MATLABMATLAB表达式 ,可以是实数 ,也可以是复数。u例如 x=2 pi/2;sqrt(3)3+5ix=2 pi/2;sqrt(3)3+5i第24页/共105页二、矩阵的创建2.2.利用M M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个M M文件。例 mymatrix1.mmymatrix1.m 第25
11、页/共105页利用M M文件建立矩阵(续)对以文本格式存储的数据MATLABMATLAB也可以使用相关命令读取数据。详细信息同学们可以参阅MATLABMATLAB帮助信息!相关命令有 dlmread;textread;fopendlmread;textread;fopen等命令第26页/共105页二、矩阵(数组)的创建3.3.利用冒号表达式建立一个数组(向量)注意向量也是特殊的矩阵 一般格式是:e1:e2:e3e1:e2:e3其中e1e1为初始值,e2e2为步长,e3e3为终止值第27页/共105页冒号表达式创建矩阵(续)u注:e3e3为尾元素数值限,而非元素值。u 如x=1x=1:2 2:7
12、 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 若e1e1等于e3e3则只有一个元素,u 如x=1:2:1x=1:2:1则只输出1 1第28页/共105页二、创建矩阵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之间产生一个
13、等分的n n维向量,如果省略n,n,则系统默认n n等于100.100.u如:x=linspace(1,100,6);x=linspace(1,100,6);x=linspace(1,100)x=linspace(1,100)第29页/共105页定数线性采样函数产生向量(续)注:它与冒号表达式的区别是:linspacelinspace是维数已知的情况下产生向量,冒号表达式是维数未知,间隔已知。第30页/共105页二、创建矩阵u5.5.采用定数对数采样函数产生向量u调用格式为:y=logspace(a,b,n);y=logspace(a,b,n);u其中a a和b b是生成向量的第一个和最后一个
14、元素,n,n是元素总数。u作用:是10a10a和10b10b之间产生一等分的n n维向量,如果省略n,n,则系统默认n n等于50.50.第31页/共105页定数对数采样函数产生向量(续)u如x=logspace(0,5,6);x=logspace(0,5)x=logspace(0,5,6);x=logspace(0,5)u注:此命令主要用在数字信号处理中,在其中又时需要产生对数刻度坐标第32页/共105页 5.5.用MATLABMATLAB函数创建矩阵u空阵 MATLAB MATLAB允许输入空阵,当一项操作无结果时,返回空阵。urand()rand()随机矩阵 ,元素值在(0 0,1 1)
15、内u思考:如何创建一个在任意区间(a,ba,b)上取值的随机矩阵ua+(b-a)*rand()a+(b-a)*rand()ueye()eye()单位矩阵?第33页/共105页5.用MATLAB函数创建矩阵uzeros()zeros()全部元素都为0 0的矩阵;uones()ones()全部元素都为1 1的矩阵;urandn()randn()产生均值为0 0,方差为1 1的标准正态分布随机矩阵。u注:randn(state,0)randn(state,0)表示将正态随机数发生器置0 0第34页/共105页5.用MATLAB函数创建矩阵u注:()()中如果输入(m m,n n)则说明产生一个m m
16、行n n列的矩阵(eye()eye()函数除外)u如果输入(m m)则产生一个m m行m m列的方阵u如果输入(m,n,p,m,n,p,)则产生m*n*p*m*n*p*阶的矩阵(此项用在产生高维矩阵)u如果输入(size(A)size(A))则产生一个与A A大小相同的矩阵第35页/共105页4.用MATLAB函数创建矩阵 注:还有伴随矩阵、稀疏矩阵、魔方矩阵、对角矩阵、范德蒙等矩阵的创建,这些特殊矩阵在MATLABMATLAB中有专门的函数可以建立,在此就不一一介绍了。特殊矩阵的建立见相关MATLABMATLAB参考书或帮助文件。第36页/共105页实例演示例:建立与矩阵A A同样大小的零矩
17、阵。设矩阵A A为2323矩阵。具体命令如下:A=1 2 3;4 5 6;A=1 2 3;4 5 6;%产生一个2323阶矩阵A Azeros(size(A)zeros(size(A)%产生一个与矩阵A A同样大小的零矩阵第37页/共105页学习内容1变量和数据操作2数组和矩阵的创建3数组和矩阵的寻访和操作4数组和矩阵运算第38页/共105页1.1.矩阵和数组拆分u1.1.利用冒号表达式可获得一矩阵的子矩阵uA(i)A(i)表示取数组或者矩阵的第i i个元素(矩阵的元素是按列排序)uA(i,j)A(i,j)表示取A A矩阵第i i行、第j j列的元素uA(e1:e2:e3)A(e1:e2:e3
18、)表示取数组或矩阵A A的第e1e1元素开始每隔e2e2步长一直到e3e3的所有元素第39页/共105页1.1.矩阵和数组拆分uA(m n l)A(m n l)表示取数组或矩阵A A中的第m,m,n,ln,l个元素uA(:,j)A(:,j)表示取A A矩阵的第j j列全部元素;uA(i,:)A(i,:)表示A A矩阵第i i行的全部元素;uA(i:i+m,:)A(i:i+m,:)表示取A A矩阵第i ii+mi+m行的全部元素;第40页/共105页1.1.矩阵和数组拆分uA(:,k:k+m)A(:,k:k+m)表示取A A矩阵第k kk+mk+m列的全部元素;uA(i:i+m,k:k+m)A(
19、i:i+m,k:k+m)表示取A A矩阵第i ii+mi+m行内,并在第k kk+mk+m列中的所有元素;u例:建立一个5 5阶的魔方矩阵,完成有关矩阵的寻访操作第41页/共105页1.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个元素到最后一个元素第42页/共105页1.矩阵和数组拆分u2.2.对角元素抽取函数di
20、agdiagudiag(X,k)-diag(X,k)-抽取矩阵X X的第k k条对角线的元素,uk=0k=0时即为抽取主对角线,k0 k0时为上方第k k条对角线,k0 k0时为下方第k k条对角线 (注意矩阵对角线的计数方法)udiag(X)-diag(X)-相当于diag(X,0)diag(X,0)第43页/共105页diagdiag命令(续)u注:diag命令还可以用来建立对角矩阵(先要给出主对角线上 的元素)udiga(v,k)-使向量v为所得矩阵的第k条对角线元素udiag(v)-使得v为矩阵的主对角元素第44页/共105页实例演示u利用初等变化求矩阵的秩第45页/共105页步骤详解
21、uA=1-2-1 0 2;-2 4 2 6-6;2-1 A=1-2-1 0 2;-2 4 2 6-6;2-1 0 2 3;3 3 3 3 4;%0 2 3;3 3 3 3 4;%输入矩阵数据uA(2,:)=A(2,:)+2*A(1,:);A(2,:)=A(2,:)+2*A(1,:);%将第一行乘2 2加到第2 2行上uA(3,:)=A(3,:)-2*A(1,:);A(3,:)=A(3,:)-2*A(1,:);%将第一行乘-2-2加到第3 3行上uA(4,:)=A(4,:)-3*A(1,:);A(4,:)=A(4,:)-3*A(1,:);%将第一行乘-3-3加到第4 4行上第46页/共105页步
22、骤详解uA(2 3,:)=A(3 2,:);A(2 3,:)=A(3 2,:);%交换第二行和第三行的数据uA(3 4,:)=A(4 3,:);A(3 4,:)=A(4 3,:);%交换第三行和第四行的数据uA(3,:)=A(3,:)-3*A(2,:);A(3,:)=A(3,:)-3*A(2,:);%将第二行乘以-3-3加到第三行上uA(4,:)=A(4,:)+2*A(3,:);A(4,:)=A(4,:)+2*A(3,:);%将第三行乘以2 2加到第四行上第47页/共105页实例演示u对角元素抽取函数diagdiag实例ua=pascal(4)%a=pascal(4)%产生一个4 4阶pasc
23、alpascal矩阵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 0第48页/共105页2.2.矩阵的修改1 1)直接修改:可用 键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改。2 2)指令修改:可以用A(A(,)=)=来修改。第49页/共105页2.矩阵的修改3 3)利用空矩阵删除矩阵的元素在MATLABMATLAB中,定义为空矩阵。给变量X X赋
24、空矩阵的语句为X=X=。注:X=X=与clear Xclear X不同,clearclear是将X X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0 0。第50页/共105页实例演示例如: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 0第51页/共105页学习内容1变量和数据操作2数组和矩阵的创建3数组和矩阵的寻访和操作4数组和矩阵运算第52页/共105页1.矩阵加、减(,
25、)运算规则:u两个矩阵相加或减是指有相同的行和列两矩阵的对应元素相加减。u 允许参与运算的两矩阵之一是标量(常量)。标量与矩阵的所有元素分别进行加减操作。第53页/共105页2.矩阵乘()运算uA A矩阵的列数必须等于B B矩阵的行数,若A A为mnmn矩阵,B B为npnp矩阵,则C=A*BC=A*B为mpmp矩阵。u标量可与任何矩阵相乘。即矩阵的所有元素都与标量相乘,u例如:a=1 2 3;4 5 6;7:a=1 2 3;4 5 6;7 8;b=1;2;3;8;b=1;2;3;uc=a*b d=3*ac=a*b d=3*a第54页/共105页3.3.矩阵除法u在MATLABMATLAB中,
26、有两种矩阵除法运算:和/,分别表示左除和右除。u如果A A矩阵是非奇异方阵(det(A)det(A)不为0 0),则ABAB和B/AB/A运算可以实现。u对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般ABB/AABB/A第55页/共105页3.矩阵除法u左除:ABAB等效于A A的逆左乘B B矩阵,也就是inv(A)*Binv(A)*B注:左除用来求解线性方程组A*X=BA*X=BuA/BA/B等效于A A左乘B B的逆矩阵,也就是inv(A)*Binv(A)*B注:右除用来求解线性方程组X*A=BX*A=BuB/AB/A等效于A A矩阵的逆右乘B B矩阵
27、,也就是B*inv(A)B*inv(A)第56页/共105页3.矩阵除法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不等于3434第57页/共105页4.4.矩阵其他常见的运算4.4.矩阵的乘方:一个矩阵的乘方运算可以表示成AxAx,要求A A为方阵,x x为标量。5.5.矩阵的逆:矩阵A A的逆为inv(A)inv(A)6.6.矩阵的秩:矩阵A A的秩为rank(A)rank(A)第58
28、页/共105页4.4.矩阵其他常见的运算7.7.矩阵A A的行列式为:det(A)det(A)8.8.矩阵A A的基础解系为null(A)null(A)9.9.伴随矩阵:引入伴随矩阵的概念,为了求逆阵,一般数学软件都有求逆阵的函数。如果A A可逆,则A*=|A|A(-1)A*=|A|A(-1)第59页/共105页4.矩阵其他常见的运算10.10.方阵的迹:方阵A A的迹为trace(A)trace(A)注:矩阵的迹指矩阵主对角线上所有元素之和。11.11.化矩阵为最简阶梯型矩阵:rref(A)rref(A)12.12.求矩阵A A的特征多项式:poly(A)poly(A)13.13.求矩阵A
29、A的正交化矩阵:orth(A)orth(A)例:写出一个5 5阶pascalpascal矩阵,完成上述运算第60页/共105页5.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)求出矩阵A A的全部特征值,构成对角阵D D,并求A A的特征向量构成V V的列向量。第61页/共105页5.5.矩阵的特征值与特征向量(3)V,D=eig(A,nobalance
30、)(3)V,D=eig(A,nobalance)注:与第2 2种格式用法类似 但第2 2种格式中先对A A作相似变换后求矩阵 A A的特征值和特征向量,格式3 3是直接求矩阵A A的特征值和特征向量第62页/共105页实例演示例:用求特征值的方法解方程。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
31、p的零点第63页/共105页实例演示u讨论向量组a1=(1 3 3 2,);a2=(2 6 9 5);a3=a1=(1 3 3 2,);a2=(2 6 9 5);a3=(-1-3 3 0)(-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)化为阶梯型求出秩再判断。还可从最简阶梯型看出向量组的极大无关组。第64页/共105页附:Compan命令的使用ucompan(u)compan(u)用来求多
32、项式u u对应的伴随矩阵uu=1 0-7 6%u=1 0-7 6%对应多项式x3-7*x+6x3-7*x+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).第65页/共105页讨论线性方程组是否有解的MATLABMATLAB方法u对线性方程组AX=bAX=b,在MATLABMATLAB软件里先给系数矩阵A A和常数列矩阵b b赋值,u利用命令rank(A)rank(A),rank(
33、Arank(A,b)b)求出系数矩阵和增广矩的秩。u再根据下属定理进行判断线性方程组解的情况.第66页/共105页讨论线性方程组是否有解的MATLABMATLAB方法u定理l:l:u(1)(1)若r(A)r(A|b)r(A)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,则线性方程组有无穷多个解。第67页/共105页利用左除命令给出线性方程组的特解u对线性方程组AX=bAX=b,“Ab”Ab”给出该线性方程组的一个特解。注1 1:若A A为方阵,则Ab
34、Ab和inv(A)*binv(A)*b基本一致;若A A不为方阵,AbAb命令使MatlabMatlab软件自动选择适当的方法来求解。第68页/共105页利用左除命令给出线性方程组的特解u 若AX=bAX=b无解,命令“Ab”Ab”将给出一个最小二乘意义上的近似解,即使AX-bAX-b的长度达到最小。u AX=bAX=b有无穷解,命令“Ab”Ab”将给出一个具有最多零元素的特解。u 若AX=bAX=b有唯一解,则命令“Ab”Ab”给出这个唯一解。第69页/共105页线性方程组求解的步骤u为求线性方程组AX=bAX=b的通解,需先判断方程组是否有解。u若有解则用“Ab”Ab”求出一个特解u再用命
35、令“null(A)”null(A)”求出导出组AX=0AX=0的一个基础解系得出其通解,然后利用定理的结论给出AX=bAX=b的通解.第70页/共105页附:线性方程组解的基本定理u定理:对线性方程组的导出组AX=bAX=b,若r(A)=rnr(A)=rn,则导出组的基础解系含有n n一r r个解向量u(1)(1)若1,1,2,2,n-rn-r为导出组的基础解系,则k1k11,+k21,+k22+kn-r2+kn-rn-rn-r就是导出组AX=0AX=0的全部解,也称为通解;u(2)(2)若0 0是Ax=bAx=b的一个特解,则0+k10+k11,+k21,+k22+kn-r2+kn-rn-r
36、n-r就是AX=BAX=B的通解第71页/共105页实例演示例:求下面线性方程组的解第72页/共105页实例演示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,说明该线性方程组有无穷多个解。第73页/共105页实例演示u(2)(2)先求出线性方程组的一个特解x0=abx0=abu(3)(3)再求出导出组ax=0ax=0的一个基础解系 xx=null(a)xx=null(a)u(4)(4)由定理写出该线性方程组的通解第74页/共10
37、5页6.6.对角阵与三角阵介绍u对角阵:只有对角线上有非0 0元素的矩阵称为对角矩阵u对角线上的元素相等的对角矩阵称为数量矩阵u对角线上的元素都为1 1的对角矩阵称为单位矩阵第75页/共105页6.6.对角阵与三角阵介绍u三角阵:三角阵又进一步分为上三角阵和下三角阵,u所谓上三角阵,即矩阵的主对角线以下的元素全为0 0的一种矩阵,u下三角阵则是主对角线以上的元素全为0 0的一种矩阵。第76页/共105页6.6.对角阵的构造u(1)(1)构造对角矩阵:设V V为具有m m个元素的向量udiag(V)-diag(V)-将产生一个对角矩阵,其主对角线元素为向量V V的元素。udiag(V,k)-di
38、ag(V,k)-产生一个对角阵,其第k k条对角线的元素即为向量V V的元素。第77页/共105页6.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)完全相同。第78页/共105页实例演示ua=pascal(4)%a=pascal(4)%产生一个4 4阶pascalpascal矩阵u解释下列命令的结果ux=triu(a)x=triu(a)uy=triu(a,2)y=
39、triu(a,2)uz=tril(a)z=tril(a)um=tril(a,-1)m=tril(a,-1)第79页/共105页实例演示例 建立5555矩阵A A,然后将A A的第一行元素乘以1 1,第二行乘以2 2,第五行乘以5 5。分析:相当于乘了一个主对角元素分别为1 1到5 5的方阵第80页/共105页实例演示 具体命令:A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,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;19,21,3;11,18,25,2,19;D
40、=diag(1:5);D=diag(1:5);D*A%D*A%用D D左乘A A,对A A的每行乘以一个指定常数第81页/共105页7.7.点运算u 在MATLABMATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。u点运算符有.*.*、././、.和.。u两矩阵或数组进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。第82页/共105页实例演示u比较下列运算的结果说出他们的异同ua=1 2 3;2 3 4;3 4 5;b=1 1 1;2 2 2;3 3 a=1 2 3;2 3 4;3 4 5;b=1 1 1;2 2 2;3 3 3;c=83
41、;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*b;a.*b;c.*a;c*aa*b;a.*b;c.*a;c*auac;a.3ac;a.3第83页/共105页8.8.关系运算uMATLABMATLAB提供了6 6种关系运算符:u(小于)、=(大于)、=(=(大于或等于)、=(=(等于)、=(=(不等于)。u它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。第84页/共105页8.8.关系运算的法则关系运算符的运算法则为:(1)(1)
42、当两个比较量是标量时,若关系成立,关系表达式结果为1,1,否则为0 0(2)(2)当参与比较的量是两个维数相同的矩阵时,最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0 0或1 1组成。第85页/共105页8.8.关系运算的法则(3)(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0 0或1 1组成。第86页/共105页实例演示u演示下列关系运算的结果ua=1:3;4:6;7:9;a=1:3;4:6;7:9;ux=5;y=ones(3)*5;z=8
43、x=5;y=ones(3)*5;z=8ux1=xa;x2=x=a;x3=x=b;x1=xa;x2=xy;x4=a=y;x4=a=yx4=ay;x4=a=y;x4=a=yuxzxz第87页/共105页实例演示例:产生5 5阶随机方阵A A,其元素为10,9010,90区间的随机整数,然后判断A A的元素是否能被3 3整除。程序如下 (1)(1)生成5 5阶随机方阵A A。A=fix(10+(90-10)*rand(5)A=fix(10+(90-10)*rand(5)(2 2)判断A A的元素是否可以被3 3整除。P=rem(A,3)=0P=rem(A,3)=0第88页/共105页实例演示注:re
44、m(A,3)rem(A,3)是矩阵A A的每个元素除以3 3的余数矩阵。此时,0 0被扩展为与A A同维数的零矩阵,P P是进行等于(=)(=)比较的结果矩阵第89页/共105页9.逻辑运算MATLABMATLAB提供了3 3种逻辑运算符:&(&(与);|();|(或)和(非)运算法则为:(1)(1)在逻辑运算中,确认非零元素为真,用1 1表示,零元素为假,用0 0表示。第90页/共105页逻辑运算规则(2)(2)设参与逻辑运算的是两个标量a a和b,b,a&ba&b-a,b-a,b全为非零时,运算结果为1,1,否则为0.0.a|ba|b-a,b-a,b中只要有一个非零,运算结果为1.1.a-
45、a-当a a是零时,运算结果为1;1;当a a非零时,运算结果为0 0。第91页/共105页逻辑运算规则(3)(3)若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行.最终运算结果是一个与原矩阵同维的矩阵,其元素由1 1或0 0组成。第92页/共105页逻辑运算规则(4)(4)若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由1 1或0 0组成。第93页/共105页逻辑运算规则(5)(5)逻辑非是单目运算符,也服从矩阵运算规则。(6)(6)在算术、关系、逻辑运算中,算术运
46、算优先级最高,逻辑运算优先级最低第94页/共105页实例演示u演示下列关系运算的结果ua=1:3;4:6;7:9;a=1:3;4:6;7:9;ux=5;y=ones(3)*5;z=8x=5;y=ones(3)*5;z=8ux1=x&z;x2=x|z;x3=x;x4=ax1=x&z;x2=x|z;x3=x;x4=aux1=a&x;x2=a&y;x3=a|x;x4=a|yx1=a&x;x2=a&y;x3=a|x;x4=a|y;第95页/共105页附:两个常见的逻辑关系函数的使用uallall和anyany的使用uall all 若向量的任意元素不为0,0,则返回1 1uanyany若向量的所有元素
47、不为0,0,则返回1 1ufind-find-寻找非0 0元素坐标第96页/共105页附:逻辑关系函数运算表第97页/共105页实例演示演示下面的运算结果a=magic(5)a=magic(5)a(:,3)=zeros(5,1)a(:,3)=zeros(5,1)a1=all(a(:,1)10)a1=all(a(:,1)10)all=any(a(:,1)10)all=any(a10)all=any(a10)第98页/共105页实例演示例:建立矩阵A,A,然后演算并解释下列结果。(1)(1)建立矩阵A,A,A=4,-65,-54,0,6;56,0,67,-45,0 A=4,-65,-54,0,6;
48、56,0,67,-45,0(2)x1=find(A)%(2)x1=find(A)%找出A A的非零元素(3)x2=find(A4)%(3)x2=find(A4)%找出大于4 4的元素的位置。(4)x3=find(abs(A)55)|abs(A)55)|abs(A)5)第99页/共105页作 业输入下面的矩阵并完成相应的运算.第100页/共105页作 业1.求出矩阵A A的逆矩阵、矩阵A A的秩、矩阵A A所对应的行列式的值、矩阵A A的伴随矩阵、矩阵A A的特征值及特征向量、矩阵A A对应的上三角矩阵和下三角矩阵(请将每个问题的答案分条列出)第101页/共105页作 业2.2.做出下面的矩阵运算的结果第102页/共105页作 业3.3.利用MATLABMATLAB矩阵访问命令对下面的矩阵做初等行变换使其成为一个上三角矩阵 第103页/共105页谢谢聆听!第104页/共105页谢谢您的观看!第105页/共105页