1行列式的计算方法1引言行列式的计算是《线性代数》和《高等代数》的一个重要内容.同时也是工程应用中具有很高价值的数学工具,本文针对几种常见的类型给出了计算行列式的几种典型的方法.2一般行列式的计算方法2.1三角化法利用行列式的性质把原来的行列式化为上(下)三角行列式,那么,上(下)三角行列式的值就是对角线各项的积.例1计算行列式12311212332125113311231nnnnnnnnnnD对这个行列式的计算可以用三角化方法将第1行乘以(-1)加到第2,3,n行,得000010002000200010001231nnnnD再将其第1,2,1,nn列通过相邻两列互换依次调为第n,,2,1列,则得102001321)1(2)1(nnDnn=)!1()1(2)1(nnn2.2加边法有时为了便于计算行列式,特意把行列式加边升阶进行计算,这种方法称之为升阶法.它的2一般方法是:nnnnnnnnnaaaaaaaaaaaaaaaaD321333323122322211131211=nnnnnnnaaabaaabaaab212222121121110001(nbbb,,21任意数)例如下面的例题:例2计算行列式nnaaaaD11111111111111111111321现将行列式nD加边升阶,得naaaD111011101110111121第1行乘以(-1)加到第1,3,2n行,得naaaD0010001001001111121第2列乘以11a加到第1列,第3列乘以21a加到第1列,依次下去直到第1n列乘以na1加到第1列,得3)11(00011111121211niinnniiaaaaaaaaD2.3降阶法利用按一行(列)展开定理或Laplace展开定理将n阶行列式降为阶较小且容易计算的行列式来计算行列式的方法称为降阶法.例3计算nD222232222222221解首先我们应考虑D能不能化为上(下)三角形式,若将第一行乘以(-2)加到第n,3,2行,数字反而复杂了,要使行列式出现更多的“0”,将D的第一行乘以(-1)加到第第n,3,2行,得2001010100012221nD这样仍然不是上(下)三角行列式,我们注意到,第二行除了第一项是1,后面的项全是0,这样我们按第二行展开,降阶得到:201222)1(21nD)!2(2n2.4对于所谓二条线的行列式,可直接展开降阶,再利用三角或次三角行列式的结果直接计算.例4计算行列式4nnnnnabbababaD112211解按第1列展开,得11221111221)1(nnnnnnnnbababbababaaDnnnbbbaaa21121)1(2.5递推法通过降阶等途径,建立所求n阶行列式nD和比它低阶的但是结构相同的行列式之间的关系,并求得nD的方法叫递推法.当nD与1nD是同型的行列式,可考虑用递推法.例5计算n级行列式2100012000002100012100012nD对于形如这样的三角或次三角行列式,按第1行(列)或第n行(列)展开得到两项的递推关系式,再利用变形递推的技巧求解.解按第1行展开,得21000120000012000011)1)(1(2211nnDD212nnDD直接递推不易得到结果,变形得1221121232211DDDDDDDDnnnnnn5于是1)1(2)1(21121nnnDDDDnnn例6计算n2级行列式nnnnnnnnndcdcdcbababaD111111112对于形如这样的所谓两条线行列式,可直接展开得到递推公式.解按第1行展开,得00)1(1111111121111111112nnnnnnnnnnnnncdcdcbababdcdcbabaaD1111111111111111nnnnnnnnnnnndcdcbabacbdcdcbabada)1(2)(nnnnnDcbda)1(22)(nnnnnnDcbdaD)2(21111))((nnnnnnnnnDcbdacbda)())((11111111cbdacbdacbdannnnnnnn2.6连加法例7计算6mxxxxmxxxxmxDnnnn212121这种行列式的特点是:各行元素之和都相等.先把第2列到第n列元素同时加到第1列,并提出公因式,得mxxxmxxxmxDnnnniin2221111)(然后将第1行乘以(-1)加到第n,3,2行,得mmxxmxDnniin00001)(21)()(11mxmniin2.7乘积法根据拉普拉斯定理,所得行列式乘法运算规则如下:nnnnnnnnnnnnccccbbbbaaaa111111111111(其中tjniitijbac1)两个行列式的乘积可以像矩阵的乘法一样来计算,假若两个行列式的阶数不同,只要把它们的阶数化为相同就可以应用上面的公式了.这种方法的关键是寻找有特殊结构的已知行列式去乘原行列式,从而简化原行列式的计算,这也是较为常用的方法.例8计算行列式abcdbadccdabdcbaD解取行列式1111111111111111H显然0H,由行列式的乘法规则:7DHabcdbadccdabdcba1111111111111111Hdcbadcbadcbadcbadcba))()()()((等式两边消去,H得D))()()()((dcbadcbadcbadcbadcba2.8对称法这是解决具有对称关系的数学问题的常用方法.例9计算n阶行列式10000010001000nD解按第1行展开,得21)(nnnDDD即)(211nnnnDDDD由此递推,即得nnnDD1因为nD中与对称,又有nnnDD1当时,从上两式中消去1nD,得11nnnD当时,1nnnDD)(21nnnD222nnD11)1(Dnnn)()1(1nnn8nn)1(2.9数学归纳法当nD与1nD是同型的行列式,可考虑用数学归纳法.例10计算n级行列式cos2100000cos210001cos210001cosnD解当2n时,cos211cos2D2cos1cos22结论成立,假设对级数小于n的行列式结论成立,则nD按第n行展开,得21cos2nnnDDD由假设sin)1sin(cos)1cos(])1cos[()2cos(2nnnnDn代入前一式,得]sin)1sin(cos)1[cos()1cos(cos2nnnDnnnncossin)1sin(cos)1cos(故对一切自然数n,结论成立.2.10拆项法这是计算行列式常用的方法.一般地,当行列式的一列(行)或一列(行)以上的元素能有规律地表示为两项或多项和的形式,就可以考虑用拆为和的方法来进行计算.例11在平面上,以点),(),(),(233332332232222221311211xxxxMxxxxMxxxxM,,为顶点的三角形面积DS,其中911121323233322222321212131xxxxxxxxxxxxD)1()1()1()1()1()1(11121323222121332211xxxxxxxxxxxx)1()1()1()1()1()1()1()1()1(21323222121332211332211xxxxxxxxxxxxxxxxxx解第1行拆为)1()1()1(11111121111)1)(1)(1(21332211321321232221321321xxxxxxxxxxxxxxxxxxxxxD32112132332121))()()(1)(1)(1(21xxxxxxxxxxxx232221321111xxxxxx)]1)(1)(1([))()((21321321121323xxxxxxxxxxxx3分块矩阵行列式的计算方法我们学习了矩阵的分块,知道一个矩阵BA00通过分块若能转化成对角矩阵或上(下)三角矩阵BCA0,那么行列式BABCABA000,其中BA,分别是rs,阶可逆矩阵,C是sr阶矩阵,0是ns阶矩阵.可以看出,这样可以把rs阶行列式的计算问题通过矩阵分块转化为较低阶的s阶和r阶行列式计算问题,下面先根据上面的途径给出计算公式.设矩阵BCDAbbccbbccddaaddaaGrrrrsrrssrssssrs1111111111111111其中BA,分别是s阶和r阶的可逆矩阵,C是sr阶矩阵,D是rs阶矩阵,则有下面公式成立.CDBABBCDAG1或CDABABCDAG110下面推导公式,事实上,当0A时,有DBCADABCDAECAE1100BCCDBABCDAEDBE0011上面两式两边同取行列式即可得出上面的公式.例12计算8710650143102101D这道题的常规解法是将其化为上三角行列式进行计算,若用前面介绍的公式则可以直接得出结果.令1001A,8765B,1001C,4321D则1001'A,由公式(1)知原行列式DCABABCDA1432110011001876510014321876514444=0这个题还有个特点,那就是CA,如果我们把公式变形,即DCABABCDA1DACAABDCABA11)(当CA时,DACAAB1CDABDCAAAB1,所以当CA时,我们有CDABBCDA,这样例题就可以直接写出答案了.11参考文献:[1]北京大学数学系,高等代数[M](第三版).北京:高等教育出版社,2003,9.[2]张禾瑞,高等代数[M](第四版).北京:高等教育出版社,1997.[3]丘维生,高等代数[M].北京:高等教育出版社,1996,12.[4]杨子胥,高等代数[M].山东:山东科学技术出版社,2001,9.[5]王萼芳,高等代数题解[M].北京:北京大学出版社,1983,10.[6]GelfandIM,KapranovMMandCelvinskijAV.Discriminaants,redultants,andmultidimensionaldeterminants[M].Math