实用大众线性代数课件第3章.pdf
第3 3章 行 列 式 行列式是公元1690年前后诞生的。在传统的线 性代数中,行列式都被放在第一章第一节,其 中充满着繁琐的数学推导,也是初学者最大的 拦路虎之一。 但是,随着高斯消元法和计算机的广泛应用, 在方程求解软件中已经嵌入了主元非零的判解 条件,完全可以避开行列式传统讲法中的多种 概念和复杂公式,大大节约了篇幅,也降低了 工科读者的入门难度。 3.1 二、三阶行列式的意义 3.1.1 二阶行列式 行列式的主要用途是判断线性方程组的解是否存在和唯一。 例3.1 求下面二元线性方程组的解 1111221211121121121122111 2112222 ()+a xa xbaaa xa aaxa b a a xaxb += += 乘 2111 aa () 1112 11 221221112221 111 0 aaxb aa aaxba ba = 解: 用第二个方程减去第一个方程乘,写成矩阵 (3.1.1) 当两个主元都不等于零时,由第2式解出 再代入第1式,得到: 11 221 1 2 11221221 a ba b x a aa a = 122212 1 11221221 b ab a x a aa a = 二阶行列式的定义 为了便于记忆,引入双竖线记号: (3.1.2) 称为该系数矩阵A的行列式(Determinant)。把a11,a22的连线 称为主对角线,a12,a21的连线称为其副对角线,则二阶 行列式等于主对角线元素乘积减副对角线元素的乘积。 方程组(3.1.1)的解可表示成x1=D1/D,x2=D2/D,其中 (3.1.3) 分别为将方程常数列b取代矩阵A中1,2列所得的行列式。 由此得到判定二元非齐次方程组(3.1.1)解的存在判据: 其系数矩阵的行列式det(A)必须不等于零。 11121112 11221221 21222122 detdet( ) aaaa Da aa a aaaa = A 112 1 222 ba D ba =111 2 212 ab D ab = 例3.23.2二阶行列式的几何意义 平面上有一个平行四边形OACB,A、B两点的坐标分别 为(a1,b1)(a2,b2) ,如图所示,求平行四边形OACB的 面积。 解:作辅助线,从图上可得: 说明该平行四边形的面积刚好等于 以A、B两点坐标所构成的二阶行列式。 由此可见,如果两个向量共线,它们构成的平行 四边形面积为零,其行列式也为零,方程无唯一 解的几何与代数判据就得到了统一。 OACBOEDBCDBAEOAEDC OEDBAEDC1 22 1 S=S+S-S-S =S-Sa ba b= 下一讲 三阶行列式 3.1.2 3.1.2 三阶行列式 例3.3 求下面三元线性方程组的解 解: 利用高斯消元法可以得到 定义: 为A的三阶行列式, 11 11221331 21 12222332 31 13223333 a xa xa xb a xaxaxb a xaxa xb += += += () 1122331223311321321322311221331123321 a a aa a aa a aa a aa a aa a ax+ 122331223 313232132231223312332 b a aa a ba b aa a ba b ab a a=+ 111213 21222311 22331223 311321 321322311221 3311 23 32 313233 aaa Daaaa a aa a aa a aa a aa a aa a a aaa =+ 三阶行列式的几何意义 它是6项的代数和,每一项都是 3个元素的乘积,其中3项为正, 另3项为负。为了便于记忆,图 3-2给出了它的计算规则。左上 到右下的三个实线箭头所经的 三个元素连乘积取正号,右上 到左下的虚线箭头所经的三个 元素的连乘积取负号。 三阶行列式的几何意义是以三 个三维列向量为三条边构成的 平行六面体的体积,如图3-3, 三阶行列式的代数特征 根据三阶行列式的定义,可以把式(3.1.5)的右端定义为 D1,再扩展到x2,x3,写出 当此方程组的系数行列式D0时,可以得到它的解为: x1=D1/D,x2=D2/D,x3=D3/D。其中 D1 、D2 、D3是用 常数项列b分别替换D中的第1、2、3列所得到的三阶行 列式。如果分母上的行列式D等于零,那么解的分母就 为零,其结果是无穷大(常数/0),说明其解不存在。 所以,系数行列式不等于零det(A) 0也是三阶非齐次线 性方程组的解存在的必要条件。 112131111311121 122223122122323212223 332333133331323 baaabaaab DxbaaDDxabaDDxaabD baaabaaab =, 下一讲 高阶行列式 3.2 n阶行列式定义之一:显式法 从前述的低阶行列式可以演绎出高阶行列式的定义。目 前,有三种不同的演绎方法,可形成三种定义。 (1)显式法:根据行列式的结构直接进行演绎。二阶行 列式(3.1.1)由两项之和组成,每项为两个元素相乘; 三阶行列式(3.1.6)由六项(即3的阶乘3!)之和组 成,每项为三个元素相乘; 依此类推,n阶行列式应该由n!项之和组成,每项 为n个元素相乘。照此式计算时,需要做的乘法次数 为(n-1)*n!。当n=4时,3*4!=72,n=5时, 4*5!=480,阶数略高一些,运算量更大。而演绎 各项的符号规则更加复杂,必须引入“逆序数”等 概念,很繁琐。行列式的“可畏”,源头就在这 里。 行列式定义之二:代数余子式法 (2) 它的思路是把显式法的表达式降阶,通过行列式 按行展开的特性,可以把n阶行列式降为n个(n-1) 阶行列式。比如,上述的三阶行列式就可以写成 三个二阶行列式之和: 用这个方法把n阶行列式降为n个(n-1)阶,每个(n-1)行 列式又展开成(n-1)个(n-2)阶的,.也很繁琐。可 以算出,其计算量比显式法约减少n/2倍,确定各 项的正负号的规则也简化一些,但要引入更多新 名词和新概念,如随伴矩阵等。 111213 222323212122 212223111213 323333313132 313233 aaa aaaaaa Daaaaaa aaaaaa aaa =+ 行列式定义之三:对角主元连乘法 (3)三阶方程组作高斯消后的行阶梯形式为 其主对角线上前两个主元的乘积为a11a22-a12a21,恰好 是二阶方阵的行列式;而前三个主元连乘积恰好等 于其系数矩阵的三阶行列式。 由此可以推想,将n阶系数方阵用高斯消元法变换为行 阶梯形,其对角线上所有主元的连乘积就是该方阵 的行列式。这个推想得到了数学家的证实。 () () 111213 11 2212211123132111 11 22331223 311321 321322311221 3311 23 3211 221221 0-/-/ 00(-)/- aaa a aa aaaa aa a a aa a aa a aa a aa a aa a aa aa a = + U 下一讲 三种行列式定义的比较 *3.2.2 *3.2.2 三种定义的比较 数值计算中通常用所需的乘法次数来标志计算的复杂度, 下表给出了三种定义方法在不同阶数下计算行列式的计 算量。 拿1,3两种方法所需的乘法次数加以比较,可以看出,只 有N=2时,用显式法求行列式才比消元法方便。n=3时, 两者的计算量基本相同。n=5时,用显式法算的计算量为 480次乘法,用笔算是工程上无法接受的。 表3-1 行列式的三种定义方法所需乘法次数 阶数n23451025 显式法21272480326592003.7*1026 代数余子式法294020572576003.1*1025 主元连乘41324453425233 维数灾难(Curse of Dimensionality)(Curse of Dimensionality) n更大时,定义一的运算量不仅超越了人们笔算可能性,也超 越了计算机的能力。一个25阶的行列式若按显式法来算,乘 法的次数为3.721026次。用每秒1万亿(1012)次的超 级计算机,也要算1200万年才能得出结果。 2013年11月,中国的“天河二号” 超级计算机以其计算速度33.86千 万亿次(1016)两次连获全球之冠, 用这样的计算机来算仍然要400年。 这种计算量随维数呈指数增长的现象称为 “维数灾难”,是 科学计算的大敌,前两种定义方法都存在着这个致命弱点, 没有人会用前两种定义计算四阶以上的行列式的,因而在在 现代大矩阵计算中没有实用价值。 主元连乘法的优越性 对角主元连乘法的计算量小得多,由它实现上三角 矩阵所需的乘法次数约为Nn3/3,n=10时, N=333次,n=25时,N5200次,用现有的微机可 以在毫微秒级的时间内完成。主元连乘法的计算公 式可由高斯消元法直接导出,不引入任何其他概念, 所以行列式计算软件都是用这个方法编程的。 它的缺点是主元和各个元素之间的数学关系不明确, 不容易进行基本理论的推导。所以很多行列式数学 推理还得依靠前两种定义方法,前两种方法在数学理 论发展过程中起过历史作用,对今天爱搞理论的学 生培养推理能力也许有一定的用处。而真正的工程 应用和MATLAB等软件的开发,都采用主元连乘法。 高斯消元与行列式计算的统一 由于诸主元的计算是在消元法求解过程中自动完成的,不需 要增加额外的计算量,解方程时就不必专门求行列式了。 为了使定义(3.2.2)不出现歧义,还必须对所用的消元法提出 一个要求,那就是消元过程中只许采用消法矩阵E,不得使 用交换矩阵P。因为交换矩阵会使某些主元变号,从而造成 行列式改变正负号。如果行阶梯变换软件中使用了交换变换, 则不难让程序记住使用交换矩阵P的次数r,在结果中乘以(- 1)r,则(3.2.2)式应改为 结果就全面了。 但用行列式或主元判解时,关心的只是它是否等于零,其正 负号没有什么价值,可以不管,只看其绝对值就行。 1122 ( 1)rDp pp= nn 主元连乘定义与解的唯一性 用行阶梯型对角线主元连乘积: 来定义行列式,可以很自然地 把解的存在、唯一性与行列式 是否为零联系起来。 消元法解方程时,先把系数方阵变为上三角矩阵,再经回代变 为对角矩阵。方程的解为: 各主元若都不为零,就可以把主元分别除各行的增广项求得其 解。按这个定义,若行列式不等于零,就意味着所有n个主 元都不等于零,因而方程组的解存在并唯一。反之,若行 列式等于零,就意味其中至少有一个主元为零,方程组就 不会有解,因此行列式不为零就可以成为判别解的存在与 唯一性的判据。 111 222 0 0 0 0 * 0 0 0 nnn pd pd pd = U 1122 3.2.2Dp pp= nn () nnnn pdxpdxpdx=, 22221111 3.2.3 3.2.3 本书采用的方法 从本书的对象和特色出发,我们将采用主元连乘法作 为行列式的基本定义和实际计算。有个别难证的定理 将不作严格数学证明,而是利用数学家们的证明结果, 或者用MATLAB做数字验证。比如行列式的乘法定理: det(A*B)=det(A)*det(B) 看似简单,其严格证明却要用一些新的数学概念和公 式,花很多时间。科学需要继承并且是有分工的,数 学家已经证明了的定理,搞应用的读者可以利用这些 定理,不必自己都去补数学基础,重证一遍。工科应 该利用数学的成果,发挥自己的优势来搞创新。数学 界也可以利用别人的程序来验算公式的正确性,不必 自己再去重编程序。 下一讲 行列式的性质 研究行列式的性质和计算主要是 帮助判零,因为行列式是否等于 零决定的方程的解的性质 3.3 3.3 行列式的性质 在采用主元连乘法定义行列式时,较方便的是用 初等变换矩阵变为行阶梯型,用它来推导行列式 的性质,为此先要知道初等矩阵的行列式,以及 方阵乘积的行列式。 性质1.根据定义,上三角方阵、下三角方阵和 对角方阵的行列式等于其对角元素的连乘积。 推论1:n阶单位矩阵的行列式等于一。 111112111 212222222 1122 12 000000 000000 000000 000000 n n nn aaaaa aaaaa a aa aaaaa = nn nnnnnn 行列式的乘法定理 性质性质2 2 方阵乘积ABAB的行列式是A A和B B的行列式的乘积。 det(AB)=det(A)det(B) 证:如果A,B都已化成为行阶梯型,证明是容易的: 因此 在一般情况下要证明这个关系,要用更多的数学 术语和概念,本书就不做了。建议读者把这个命 题用MATLAB进行数值验证。 111111 11 22222222 000 000000 000000000 nnnnnn nn aba b aba b aba b = AB ()() 112211 2211 112222nnnnnn nn a aab bba b a ba b=A BAB (3.3.1) 行列式的性质(续) 性质性质3 3 消法矩阵E E的主对角元素均为一, 故Det(E)=1。 性质性质4 4 行交换矩阵P P的行列式等于-1,即 Det(P)= -1 证:用一个将2,4行进行交换的44矩阵为例,做两次 消法变换。先在第2行上加上第4行,再在第4行上减去新 的第2行,得到右端的上三角阵,其主元连乘积等于-1: 推论推论1 1:方阵中任意i,j两行交换,相当于乘P,行列式反号。 推论推论2 2:将矩阵A A化为行阶梯形时,由于只采用消法变换 和交换变换,其行列式的绝对值不变。 1 0001 0001 000 000 1240 1 010 1 01 det1 00 1 000 10 4200 10 0 1 000 100000-1 + = 行行 行新行 E 行列式的性质(续) 性质性质5 5 按行列式定义,数乘变换方阵D D的行列式等于k。 推论:推论:矩阵A中任一行乘以k后,其行列式也乘以k。 要注意这只是对一行数乘,对多行都作同样数乘时, 行列式也得乘多次,所以对三阶方阵A A: 111213111213 212232212232 313233313233 detdetdet() aaaaaa kakakakaaak aaaaaa = A 111213111213 33 212232212232 313233313233 det()detdet() kakakaaaa kkkakakakaaak kakakaaaa = AAA 下一讲 行列式的其他性质 3.3.2 3.3.2 行列式的其他性质 性质性质6 6 方阵中若有一个全零行,其行列式为零。 证:nn方阵若有一行全零,消元时应移到最下面,方阵 的秩r=n-1,系数矩阵的有效部分成为(n-1)n维,则其n 维主对角线上至少有一个零元素,故其行列式为零。 推论:推论:方阵的行阶梯形中若出现任何不在主对角线上的主 元,则此行阶梯型的下方必有全零行出现(如下式),其 行列式必为零。 1112131 232 1, 00 0 000 0000 n n nn n n aaaa aa a a = = 行列式的其他性质(续) 性质性质7 7 如果A中两行的元素相同或成比例,行列式等于 零。 证:对这两行进行消法变换,将得出一个全零行,根据性 质6,其行列式为零。 性质性质8 8 如果A不可逆,则其行最简形不可能化为单位矩 阵,最下方必有全零行出现,故det(A)=0;如果A可逆, 则行阶梯形对角主元必全不为零,故其连乘积det( A)0。 性质性质9 9 方阵A A与它的转置A AT T的行列式相等,即。 证:由A=L*UA=L*U,A AT T=(L*U) =(L*U) T T=U=UT T*L*LT T,因为U U,L L都是三角矩阵, 转置不改变主对角线上主元的值,故其行列式也不变。 det(A)=det(A)=det(L*U)=det(U(L*U)=det(UT T*L*LT T)=det(A)=det(AT T) ) 行列式的这些性质主要用来帮助手工计算。实际工程问 题中几乎没有计算行列式的需求,而计算行列式的软件 又十分成熟可靠,手算行列式的实际意义已经不大了。 3.3.3 3.3.3 克莱姆法则 定理定理3.13.1 设n阶方程组Ax=b的系数行列式 D0,则该方程组 有唯一解: x1=D1/D,x2=D2/D, ,Xn=Dn/D (3.3.8) 其中,Dj是把D中第j列的元素用常数项b代替后所得到的n阶 行列式。 推论:nn非齐次方程组的解存在和唯一的条件是其系数行 列式不等于零,D=det(A)0。 定理定理3.2 (3.2 (定理定理3.13.1的逆否的逆否) ) 如果线性方程组无解或有超过一 个以上的解,则它的系数行列式必为零。 把常数项全为零的方程组称为齐次线性方程组;从定理3.2 可以得到关于齐次线性方程组的两个推论。 推论1 对于nn齐次线性方程组,当系数行列式det(A)0 时,只有一个零解。 推论2 若齐次线性方程组有非零解,则必有det(A)0。 克莱姆法则最早证明了线性代数方程组解的存在和唯一性, 具有历史意义。但因其计算量太大,在工程上应用价值不大。 , , , , , , 下一讲 行列式的计算机 算法 3.4 3.4 行列式的计算机算法 工程上要解的线性系统,至少在三阶以上,能用消元法求 出解,就足以证明其行列式不为零,没有再求其行列式判 解的必要。万一需要,也绝不可能笔算,真正有用的是用 计算机来算行列式。此时,必须考虑的问题主要是计算速 度和计算精度。 根据计算量小,计算方法单一的特点,主元连乘法最适合 计算机。主元连乘法计算行列式只需要两个步骤:一是进 行消元;使原系数矩阵变为行阶梯方阵;二是将对角主元 连乘起来。 下面提供两种方法,第一个方法是自编程序,其好处是原 理清楚,其缺点是程序不可靠,只宜在课堂上用;第二个 方法是调用MATLAB的商用程序,好处是可靠,同时适用 于数值矩阵和符号矩阵,缺点是程序长,难以读懂。 自编MATLABMATLAB程序计算行列式 第一步 将矩阵变换为行阶梯形,这可以用lu函数,它可以把任意矩阵分 解为一个主元均为1的准下三角矩阵L和上三角矩阵U的乘积 A=L*U。其调用格式为: L,U=lu(A) 由于L的行列式为1,故U的主元连乘积就是A的行列式。 也可用求行阶梯形的函数U1=ref1(A)或U2=ref2(A),用它们代替U。 第二步 取U的对角元素(用diag)进行连乘(用prod) ,得到行列式D. D=prod(diag(U)% 也可用U1或U2代替U 由于lu分解 (以及ref1,ref2)函数运行过程中可能出现过行交换, 所以求出的D正负号可能不正确,不过这并不要紧。另外自编的 程序不能求符号矩阵的行列式。 用MATLABMATLAB内部函数计算行列式 最简单的是用MATLAB中计算方阵行列式的函数det.m,它可以兼 用于数字矩阵和符号矩阵,且给出的结果从数值上和正负号 上都是正确的,缺点是看不到其原理。其调用格式为D=det(A)。 此函数要求输入矩阵A A为方阵,不然系统会给出“出错警告”。 例3.4 求下列矩阵的行列式 解:程序pla304如下: : A = 10,8,6,4; 2,5,8,9; 6,0,9,9; 5,8,7,4; L,U =lu(A),% 把作lu分解 % 也可用U=ref1(A)或U=ref2(A)求U D =prod(diag(U)% 求U的主对角元素的连乘积 程序运行结果为:D = 1428 若直接输入语句D1=det(A)即可得到D1= - 1428。 10 8 6 4 2 5 8 9 6 0 9 9 5 8 7 4 = A 例3.53.5范德蒙矩阵的行列式 证明: 证:这要用到符号运算,只能用内部函数det syms a1 a2 a3 a4 A=ones(1,4);a1 a2 a3 a4;a1 a2 a3 a4.2;a1 a2 a3 a4.3 % 注意用元素群运算赋值 D4=det(A) , simple(D4)% simple是化简函数 运行结果: D4= (-a4+a3)*(a2-a4)*(a2-a3)*(-a4+a1)*(a1-a3)*(a1-a2) 可见只要ai互不相同,D4就不为零。 此结果也可推广至n阶情况。 ()()()()()() 1234 42131413242432222 1234 3333 1234 1111 aaaa Daaaaaaaaaaaa aaaa aaaa = 下一讲 应用实例 3.5 3.5 应 用 实 例 行列式有以下一些用途:(1) 判别线性方程组解的存在性和 唯一性;(2)求平行四边形面积或平行多面体体积; (3) 建立特征方程,求特征值,这将在第五章中介绍。 例3.7 试证插值理论中一个基本结论:设函数y=f(x)在n 个互不相同的点x1,x2,xn处的函数值为y1,y2,yn,则 存在着次数不超过n-1的多项式 满足, 且此结果是唯一的。 证明:把n个点代入多项式中,得到方程组 21 0121 ( ) n nn P xaa xa xax =+ 21 01 1211 11 21 01222122 21 0121 n n n n n nnnnn aa xa xaxy aa xa xaxy aa xa xaxy += += += (3.5.1) ()( )0,1,1 nii P xyin= 例:插值函数的存在和唯一性 方程组(3.5.1)是以a0,a1,an为未知量的方程组,其 系数行列式Dn是n阶范德蒙行列式的转置,在例3.5中 已求出它的表达式: 由例3.5知道,当xi互不相同时,Dn0。故知方程组 (3.5.1)有唯一解,即满足条件的多项式存在且唯一。 用消元法解线性方程组时,在求解的同时,就求出了 主元,也完成了主元是否不为零的判别,用户感觉不 到用行列式判解的工作。只在行列式接近于零的准奇 异条件下,计算结果的可靠性可能受到威胁时,计算 机会发出警告, () 21 111 21 222 1 21 1 1 1 n n nij j i n n nnn xxx xxx Dxx xxx < = 例3.83.8奇异矩阵不存在逆阵 设A=-16,-4,-6;15,-3,9;18,0,9, ,试求其逆阵V V= =A A1。 解: : 输入A A的数据后,键入V=inv(A),程序为: A=-16,-4,-6;15,-3,9;18,0,9, V=inv(A) 运行后得到警告信息: Warning: Matrix is close to singular or badly scaled Results may be inaccurate. RCOND = 4.531523e-18. 它警告说:“此矩阵接近奇异,数据尺度很差,结果可 能不准确。逆条件数RCOND = 4.53152310-18”。 “逆条件数”是标志精度下降程度的数量指标,这意味 着算出的数据精度要下降18位十进制。MATLAB中的数据 本身只有16位有效数,所以算出的结果完全没有意义。 实际上,算一下本题所给矩阵的行列式就可知道, det(A A)=0。所以它是一个奇异矩阵,其逆矩阵不存在。 3.5.2 3.5.2 用行列式计算面积 例3.9 设三角形三个顶点的坐标为(x1,y1), (x2,y2), (x3,y3), (1)试求此三角形的面积公式。 (2)用此结果计算四个顶点坐标为(0,1),(3,5),(4,3),(2,0) 的四边形的面积。 (3)将此结果推广至任意多边形。 解: :(1)三角形面积为对应的平行四边形面积之半,利 用行列式等于两向量所构成的平行四边形面积的关系, 可求出三角形面积与顶点坐标之间的关系。 将三角形的一个顶点(x1,y1)移到原点,则其余两个顶点 的坐标分别为(x2-x1,y2-y1)和(x3 -x1,y3-y1),根 据式(3.1.4),此两个顶点所对应的向量构成的平 行四边形面积绝对值为 p122 121313121 ()()()()Sa ba bxxyyxxyy= 用行列式计算面积( (续) ) 0.5 p SS= 三角形面积 (2)求此四边形面积 画出此四边形如图3-6所示,可以将它划分为两个 三角形,分别计算其面积再相加即可。 三角形ABD的面积为: S1=0.5|(2-0)(5-1) -(3-0)(0-1)| =0.5(8+3)=5.5 三角形CBD的面积为: S2=0.5|(4-2)(5-0) - (3-2)(3-0)| =0.5(10-3)=3.5 此四边形的面积为S=S1+S2=9。 (3)N边多边形必可划分为N-2个三角形, 用类似的方法可以求出其面积。 3.5.3 3.5.3 特征行列式及其计算* * 行列式的一个重要应用是求方阵A A的特征值和特征 向量。满足特征方程Ax= x的 定义为方阵的特征值, 对应于该 的的特征方程(A- I)x=0的解x x称为特征向量。 特征值和特征向量的几何意义及用途将在第五章介 绍。 实际上即使是低至三阶的特征值和特征向量的 问 题,也不可能由笔算行列式解决。其内容超过了大 一的知识水平,真正解决问题只能靠调用LINPACK 和MATLAB等软件工具提供的专门的函数。在这个 问题上本书的讨论就到此为止。 3.6 3.6 第三章要求掌握的概念和计算 1. 二阶三阶方阵行列式的来源和表达式的几何意义, 2. 高阶行列式的主元连乘法定义及好处,和消元法及lu分 解的关系。 3. 非齐次方程组Ax=bAx=b解存在和唯一的必要条件是det(A)0, 齐次方程组Ax=0Ax=0有非零解的条件是det(A)=0 4. 行列式的主要性质及其利用上三角阵特性的证明,特别 是如何快速判断行列式为零。 5. 知道行列式计算的原理,会用软件工具计算行列式。 6. 知道行列式的三个用途,判解、求面积(体积)、解特 征方程。 7. MATLAB实践:符号矩阵的行阶梯和主元连乘求行列式, 面积计算子程序。 8. MATLAB函数: det, lu, ref1, diag, prod, syms, poly, roots, null