第七章线性代数中的数值计算问题精选PPT.ppt
第七章线性代数中的数值计算问题第1页,本讲稿共33页要解决的问题要解决的问题v矩阵求逆矩阵求逆v行列式的求法及其应用行列式的求法及其应用v线性方程组的求解线性方程组的求解第2页,本讲稿共33页一、一、对角阵与三角阵对角阵与三角阵1对角阵对角阵只有对角线上有非只有对角线上有非0元素的矩阵称为对角矩阵,对角线元素的矩阵称为对角矩阵,对角线上的元素相等的对角矩阵称为数量矩阵,对角线上的元上的元素相等的对角矩阵称为数量矩阵,对角线上的元素都为素都为1的对角矩阵称为单位矩阵。的对角矩阵称为单位矩阵。7.1 特殊矩阵特殊矩阵第3页,本讲稿共33页(1)提取矩阵的对角线元素提取矩阵的对角线元素设设A为为mn矩阵,矩阵,diag(A)函数用于提取矩阵函数用于提取矩阵A主对主对角线元素,产生一个具有角线元素,产生一个具有min(m,n)个元素的列向个元素的列向量。量。(2)构造对角矩阵构造对角矩阵设设V为具有为具有m个元素的向量,个元素的向量,diag(V)将产生一个将产生一个mm对角矩阵,其主对角线元素即为向量对角矩阵,其主对角线元素即为向量V的元素。的元素。第4页,本讲稿共33页例例7-1 先建立先建立55矩阵矩阵A,然后将,然后将A的第一行元素乘以的第一行元素乘以1,第二,第二行乘以行乘以2,第五行乘以,第五行乘以5。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;D=diag(1:5);D*A%用用D左乘左乘A,对,对A的每行乘以一个指定的每行乘以一个指定 常数常数第5页,本讲稿共33页2三角阵三角阵三角阵又进一步分为上三角阵和下三角阵,所谓上三角阵,三角阵又进一步分为上三角阵和下三角阵,所谓上三角阵,即矩阵的对角线以下的元素全为即矩阵的对角线以下的元素全为0的一种矩阵,而下三角的一种矩阵,而下三角阵则是对角线以上的元素全为阵则是对角线以上的元素全为0的一种矩阵。的一种矩阵。第6页,本讲稿共33页(1)上三角矩阵上三角矩阵求矩阵求矩阵A的上三角阵的的上三角阵的MATLAB函数是函数是triu(A)。triu(A)函数有另一种形式函数有另一种形式triu(A,k),其功能是求矩阵,其功能是求矩阵A的的第第k条对角线以上的元素。例如,提取矩阵条对角线以上的元素。例如,提取矩阵A的第的第2条对角条对角线以上的元素,形成新的矩阵线以上的元素,形成新的矩阵B。(2)下三角矩阵下三角矩阵在在MATLAB中,提取矩阵中,提取矩阵A的下三角矩阵的函数是的下三角矩阵的函数是tril(A)和和tril(A,k),其用法与提取上三角矩阵的函数,其用法与提取上三角矩阵的函数triu(A)和和triu(A,k)完全相同。完全相同。第7页,本讲稿共33页一、一、矩阵的转置与旋转矩阵的转置与旋转1矩阵的转置矩阵的转置转置运算符是单撇号转置运算符是单撇号()。2、矩阵的左右翻转、矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列和对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,最后一列调换,第二列和倒数第二列调换,依次类推。,依次类推。MATLAB对矩阵对矩阵A实施左右实施左右翻转的函数是翻转的函数是fliplr(A)。7.2 矩阵分析矩阵分析第8页,本讲稿共33页3、矩阵的上下翻转、矩阵的上下翻转MATLAB对矩阵对矩阵A实施上下翻转的函数是实施上下翻转的函数是flipud(A)。第9页,本讲稿共33页1矩阵的逆矩阵的逆对于一个方阵对于一个方阵A,如果存在一个与其同阶的方阵,如果存在一个与其同阶的方阵B,使,使得:得:AB=BA=I(I为单位矩阵为单位矩阵)则称则称B为为A的逆矩阵,当然,的逆矩阵,当然,A也是也是B的逆矩阵。的逆矩阵。求一个矩阵的逆是一件非常烦琐的工作,容易出错,但求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在在MATLAB中,求一个矩阵的逆非常容易。求方阵中,求一个矩阵的逆非常容易。求方阵A的的逆矩阵可调用函数逆矩阵可调用函数inv(A)。二、二、矩阵的逆与伪逆矩阵的逆与伪逆第10页,本讲稿共33页例例7-2 用求逆矩阵的方法解线性方程组。用求逆矩阵的方法解线性方程组。设设则原线性方程组可简写为:则原线性方程组可简写为:其解为:其解为:第11页,本讲稿共33页第12页,本讲稿共33页v逆矩阵的求解逆矩阵的求解方法方法1:A-1方法方法2:inv(A)方法方法3:Aeye(4)方法方法4:U=rref(A,eye(4);U(:,5:8)第13页,本讲稿共33页rref函数:求矩阵的行最简阶梯形矩阵函数:求矩阵的行最简阶梯形矩阵matlab把把“最简行阶梯形式(最简行阶梯形式(reduced row echelom form)”的计算过程集成为一个子程序的计算过程集成为一个子程序rref,它的输入变元可以是线性方程组的系数矩阵,它的输入变元可以是线性方程组的系数矩阵,也可以是其增广矩阵,输出变元是它的最简行阶梯也可以是其增广矩阵,输出变元是它的最简行阶梯形式。形式。第14页,本讲稿共33页用用matlab语言表达行变换:语言表达行变换:1)将矩阵的第将矩阵的第i,j两行进行交换的语句为:两行进行交换的语句为:a(i,j,:)=a(j,i,:)2)将矩阵的第将矩阵的第j行乘以常数行乘以常数k的语句为:的语句为:a(j,:)=k*a(j,:)3)将矩阵的第将矩阵的第i行乘以常数行乘以常数k加到第加到第j行的语句为:行的语句为:a(j,:)=a(j,:)+k*a(i,:)第15页,本讲稿共33页v当方阵为奇异矩阵(行列式等于零)时,要求当方阵为奇异矩阵(行列式等于零)时,要求其逆矩阵,其逆矩阵,matlab将给出警告信息:将给出警告信息:Matrix is close to singular or badly scaled Results may be inaccurate.第16页,本讲稿共33页2矩阵的伪逆矩阵的伪逆如果矩阵如果矩阵A不是一个方阵,或者不是一个方阵,或者A是一个非满秩的方阵时,是一个非满秩的方阵时,矩阵矩阵A没有逆矩阵,但可以找到一个与没有逆矩阵,但可以找到一个与A的转置矩阵的转置矩阵A同型同型的矩阵的矩阵B,使得:,使得:ABA=A BAB=B此时称矩阵此时称矩阵B为矩阵为矩阵A的伪逆,也称为广义逆矩阵。在的伪逆,也称为广义逆矩阵。在MATLAB中,求一个矩阵伪逆的函数是中,求一个矩阵伪逆的函数是:pinv(A)第17页,本讲稿共33页把一个方阵看作一个行列式,并对其按行列式的规则把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应的行列式的值。在求值,这个值就称为矩阵所对应的行列式的值。在MATLAB中,求方阵中,求方阵A所对应的行列式的值的函数是所对应的行列式的值的函数是 det(A)三、三、方阵的行列式方阵的行列式(determination)第18页,本讲稿共33页v行列式计算方法很多,但化为三角矩阵最适合计算机求解。行列式计算方法很多,但化为三角矩阵最适合计算机求解。把方阵用消元法进行简化,将它主对角线以下的元素变为零,把方阵用消元法进行简化,将它主对角线以下的元素变为零,并保证消元过程中方阵的行列式不变,得到的上三角矩阵主并保证消元过程中方阵的行列式不变,得到的上三角矩阵主对角线元素的连乘积就等于原方阵的行列式。对角线元素的连乘积就等于原方阵的行列式。第19页,本讲稿共33页把方阵变换为上三角矩阵:把方阵变换为上三角矩阵:LULU分解分解matlab提供了矩阵的三角分解函数提供了矩阵的三角分解函数lu.m,其调用格式其调用格式为:为:L,U=lu(A)返回的结果是一个准下三角矩阵返回的结果是一个准下三角矩阵L L和一个上三角和一个上三角矩阵矩阵U。求出上三角矩阵求出上三角矩阵U U的主对角线元素的连乘积:的主对角线元素的连乘积:D=prod(diag(U)matlab已经把上述过程集成在一起,给出了直接计已经把上述过程集成在一起,给出了直接计算方阵行列式的函数算方阵行列式的函数det.m第20页,本讲稿共33页例例7-3 用克拉默方法求解线性方程组用克拉默方法求解线性方程组根据克拉默方法求解一个根据克拉默方法求解一个n阶的线性方程组要计算阶的线性方程组要计算n+1个行列式的值,在个行列式的值,在matlab中要构造中要构造n+1个矩阵个矩阵第21页,本讲稿共33页D=2 2-1 1;4 3-1 2;8;5-3 4;3 3-2 2;b=4;6;12;6;D1=b,D(:,2:4);D2=D(:,1),b,D(:,3:4);D3=D(:,1:2),b,D(:,4);D4=D(:,1:3),b;DD=det(D);x1=det(D1)/DD;x2=det(D2)/DD;x3=det(D3)/DD;x4=det(D4)/DD;x1 x2 x3 x4第22页,本讲稿共33页1矩阵的秩矩阵的秩矩阵线性无关的行数与列数称为矩阵的秩。矩阵线性无关的行数与列数称为矩阵的秩。在在MATLAB中,求矩阵秩的函数是中,求矩阵秩的函数是 rank(A)。2矩阵的迹矩阵的迹矩阵的迹等于矩阵的对角线元素之和,也等矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在于矩阵的特征值之和。在MATLAB中,求矩中,求矩阵的迹的函数是阵的迹的函数是trace(A)。四、四、矩阵的秩与迹矩阵的秩与迹第23页,本讲稿共33页五、线性方程组求解五、线性方程组求解v齐次线性方程组的求解齐次线性方程组的求解第24页,本讲稿共33页v齐次线性方程组有解的条件齐次线性方程组有解的条件有唯一零解。有唯一零解。1、当、当有无穷多解。此时有有无穷多解。此时有r个独立个独立2、当、当未知量,未知量,r个独立方程,有个独立方程,有n-r个自由未知量,有个自由未知量,有n-r个线性无关解向量个线性无关解向量第25页,本讲稿共33页例例7-4若齐次线性方程组的系数矩阵为:若齐次线性方程组的系数矩阵为:第26页,本讲稿共33页令令可求得:可求得:组合成基础解系:组合成基础解系:此齐次方程的通解为:此齐次方程的通解为:第27页,本讲稿共33页v非齐次线性方程组的求解非齐次线性方程组的求解第28页,本讲稿共33页v非齐次线性方程组有解的条件非齐次线性方程组有解的条件时无解。时无解。1、当、当时有唯一解。时有唯一解。2、当、当时有无穷多解。时有无穷多解。3、当、当第29页,本讲稿共33页例例7-4若非齐次线性方程组的增广矩阵为:若非齐次线性方程组的增广矩阵为:因为因为,所以方程组有无穷,所以方程组有无穷多解。多解。第30页,本讲稿共33页令令可求得特解:可求得特解:对应其次方程组的基础解系:对应其次方程组的基础解系:此齐次方程的通解为:此齐次方程的通解为:第31页,本讲稿共33页 线性方程组的解第一步:判断是齐次方程还是非齐次方程第二步:若为非齐次方程 判断rank(A)与rank(B)的关系 1、若相等:1)rank(A)=n 则有唯一解 x=Ab 2)rank(A)n 有无穷多解 特解+通解 2、若不相等则方程无解,有最小二乘解第三步:若为齐次方程 1)rank(A)=n 则有零解 2)rank(A)0 if rank(A)=rank(A,b)if rank(A)=n disp(原方程组有唯一解原方程组有唯一解x);x=Ab;else disp(原方程组有无穷多个解,特解为原方程组有无穷多个解,特解为x,其齐次方程组的基础解系为,其齐次方程组的基础解系为y);x=Ab;y=null(A,r);end else disp(方程组无解方程组无解);x=;endelse if rank(A)n disp(方程组有无穷多个解,基础解系为方程组有无穷多个解,基础解系为y);y=null(A,r);else disp(原方程组有零解原方程组有零解x);x=zeros(n,1);endend第33页,本讲稿共33页