【线性代数】 03 - 行列式

1. 行列式的定义

  线性方程组中比较常见的是m=n的情况,我们想知道这种方程组什么时候有唯一解?并且如何用系数表示这个唯一解?对于元数较少的方程,可以直接用消元法得到解的具体公式,比如(1)式就是二元方程组的公式解。公式中重复出现了模式abcd,这个模式不仅能判断方程组是否有唯一解,还能直接表示解的公式。

(1)x1=b1a22b2a21a11a22a12a21;x2=a11b2a21b1a11a22a12a21

  考虑到二元方程组的系数矩阵(下式左),上面的模式表现为对角线积的差。同样对三元方程组,我们也可以得到重复的模式,分母为a11a22a33+a12a23a31+a13a21a32a13a22a31a11a23a32a12a21a33,参照系数矩阵(下式右)可知,模式表现为正反斜线的差。

  我们现在自然想问,对任意m=n的线性方程组,是否都有这样的模式?它的一般表达式是什么?经过考察更多元的方程组,数学家们还真找到了一般的表达式,式子由所有a1j1a2j2anjn形式的乘积组成,其中(j1j2jn)1n的一个排列。另外,每一项的符号由排列(j1j2jn)的逆序数τ(j1j2jn)决定,如果逆序数为偶数则为正,否则为负。设系数矩阵为A,则这个表达式被称为A行列式(determinant),记作|A|,总结有它的值为公式(2)。

(2)|A|=|a11a12a1na21a22a2nan1an2ann|=j1j2jn(1)τ(j1j2jn)a1j1a2j2anjn

  逆序数的概念之前介绍过,这里再简单阐述一下。排列(j1j2jn)中,如果有p<qjp>jq,则jpjq称为一个逆序,所有逆序的个数叫排列的逆序数,记作τ(j1j2jn)。在实际应用场合,其实更有用的是逆序数的奇偶性,对应就有奇排列偶排列的概念。容易证明,任意两数的对换会改变排列的奇偶性,而两个排列之间都可以通过一系列对换进行转换,故奇偶性也可以通过对换次数来判断。

  行列式的项数正是全排列的个数n!,并且显然其中奇偶排列各占一半。行列式的每一项是在每一行取列号不同的元素,其实它等价于取n个行列号都不同的元素ax1y1ax2y2axnyn,特别地它还等价于在每一列中取行号不同的元素ai11ai22ainn。由于axpyp,axqyq对调后(x1x2xn)(y1y2yn)的奇偶性同时变化,故它们的和是不变的,这样就得到公式(3)的关系。

(3)(1)τ(x1x2xn)+τ(y1y2yn)=(1)τ(i1i2in)=(1)τ(j1j2jn)

  行列式最初被发现时,只是为了表达线性方程组的解,但在后面的线性变换和空间的度量中,它却成了不可或缺的工具。行列式定义的计算量比较大,我们往往只能用它来计算一些简单矩阵的行列式,比如可以直接计算如下上(下)三角形行列式

(4)|a11a12a1n0a22a2n00ann|=|a1100a21a220an1an2ann|=a11a22ann

   求行列式:|a11a12a1(n1)a1na21a22a2(n1)0an1000||0a10000a20000an1an000||a1a2a3a4a5b1b2b3b4b5000c1c2000d1d2000e1e2|

2.行列式的初等变换

  既然三角形行列式比较容易计算,我们希望通过初等变换将行列式三角化,为此需要了解初等变换对行列式的影响。首先根据定义容易知道,对行列式的某一行(列)乘上常数k,行列式的值也变成k倍(公式(5))。从而如果有某行(列)全为0,行列式的值也为0。另外,将行列式的两行(列)交换,将翻转每一项的奇偶性,故行列式的值取相反数(公式(6))。从而如果某两行(列)相等,行列式值为0,再结合公式(5)知,某两行(列)成比例的行列式值也为0

(5)|a11a12a1nkai1kai2kainan1an2ann|=k|a11a12a1nai1ai2ainan1an2ann|

(6)|ai1ai2ainaj1aj2ajn|=|aj1aj2ajnai1ai2ain|

  第三个初等变换是将行(列)的倍数加到另一行(列),而首先由定义知,在在一行(列)同时加上一些数,等于两个行列式的和(公式(7))。从而第三个初等变换得到两个行列式(公式(8)),第一个是它本身,第二个的第j行是第i行倍数,故为0

(7)|a11a12a1nb1+c1b2+c2bn+cnan1an2ann|=|a11a12a1nb1b2bnan1an2ann|+|a11a12a1nc1c2cnan1an2ann|

(8)|ai1ai2ainaj1+kai1aj2+kai2ajn+kain|=|ai1ai2ainaj1aj2ajn|

  由上面的讨论可知,初等变换(不包括乘以0)只会使行列式的值乘以一个非零值,如果我们只关心行列式是否为0,初等变换并不影响结果。具体到m=n的线性方程组中,用初等变换将系数矩阵变为上三角形,方程有唯一解的充要条件是对角线都是非零值,这就等价于原系数矩阵的行列式非零。对n维线性空间,任意n个向量线性无关的充要条件是:坐标矩阵的行列式非零,两组基之间的过渡矩阵的行列式显然非零。

  灵活使用初等变换,可以简化行列式的求解,有些问题还需要较强技巧,考虑以下问题。

   计算行列式:|λaaaaλaaaaaλ||x1a1x2x3xnx1x2a2x3xnx1x2x3xnan||a1a2a3anb2100b3010bn001|

   记A的每个元素加上t后的矩阵为A(t),求证:|A(t)|=|A|+ti=1nj=1nAij

3. 行列式的分解

3.1 按一行(列)展开

  如果要继续研究行列式,一个容易想到的方向就是行列式的分解。对行列式的n!项,也许我们可以对它们进行分类和聚拢,从而得到有意义的分割。根据行列式的定义,每一项其实是在每一行(列)中各取一个元素,一个比较自然的分割方法就是:按第i行(j列)的元素分成n类,而含有aikakj)的项属于一类。设同一类项的和为aikAikakjAkj),则有下式成立,其中其中Aij称也为aij代数余子式

(9)|A|=k=1naikAik=k=1nakjAkj

  为了方便讨论,把|A|去除第i行、第j列后的行列式叫做aij余子式(cofactor),并记为Mij。仔细考察Aij的每一项,根据行列式的定义,它们正好与Mij的每一项一一对应。只不过在Aij中是a1j1aijanjn的奇偶性,而在Mij中是a1j1a(i1)ji1a(i+1)ji+1anjn的奇偶性。容易证明两者逆序数相差i+j,从而有Aij=(1)i+jMij,公式(9)可以改写为公式(10)。

(10)|A|=k=1n(1)i+kaikMik=k=1n(1)k+jakjMkj

  公式(10)以一行(列)展开行列式,它给出了计算行列式的一个降阶方法,在某些形式的行列式中非常有用。比如当行列式的某行(列)的非零数很少时(或者在一些初等变换之后),那么以这一行(列)展开计算就很快速。尝试计算以下行列式:

   计算行列式:|ab000ab0000bb00a||123nn12n12341|

   求证:|x00a01x0a1010a2001x+an1|=xn+an1xn1++a1x+a0

  以下左式是著名的范德蒙行列式(Vandermonde),在每一行上减掉上一行的a1倍,第1列只有a11非零,故行列式等于M11M11每一列提取出公倍数aja1就得到a2,,an上的范德蒙行列式,以此类推就得到n阶范德蒙行列式的值(公式(11))。由公式(11)可知,范德蒙行列式等于0的充要条件是存在ai=aj。这个行列式形式独特,在数学的各个分支都有应用,经常出现于一些构造无关向量的场合中。

(11)|111a1a2ana12a22an2a1n1a2n1ann1|=|1110(a2a1)(ana1)0a2(a2a1)an(ana1)0a2n2(a2a1)ann2(ana1)|=j=1n(aja1)|11a2ana2n2ann2|=1i<jn(ajai)

  有时候像范德蒙行列式一样,按行(列)展开并不能直接得到结果,而是一个递推式,解递推式方程即可得到行列式的值。这样的行列式往往具有很规律的结构,在实际应用中经常会碰到,一些常见的行列式最好直接记住它的结论。

   计算行列式:|211112|

3.2 拉普拉斯定理

  上面按一行(列)展开了行列式,其实这个结论可以很容易扩展到按k行(列)展开。之前我们以一行(列)的每个元素为分类依据,现在则是要以k行(列)中每个k阶子行列式为分类依据。记第i1,i2,,ik行、第j1,j2,,jk列的元素组成的行列式为A(i1ikj1jk),剩下的nk行、nk列组成的行列式称为它的余子式,比如是A(i1inkj1jnk)

  如果要按第i1,i2,,ik行展开,则将行列式所有项按照A(i1ikj1jk)分类,其中j1jk1n中所有k个数的组合。类似上面的证明思路,可知每一类的符号是(1)i1++ik+j1++jk,所以有如下按k行展开行列式的拉普拉斯定理(Laplace),按列展开类似。

(11)|A|=1j1<<jkn(1)i1++ik+j1++jkA(i1ikj1jk)A(i1inkj1jnk)

  拉普拉斯定理多用于有块状特征的行列式,设A,B,C,D分别是s×s,t×t,t×s,s×t的矩阵块,则容易有公式(12)的结论。

(12)|A0CB|=|AD0B|=|A||B|

   计算行列式:[ABBA],其中A=[aa],B=[b...b]

4. 行列式技巧举例

  行列式根据定义总是可以计算出来的,但实际问题中的很多行列式具有特殊的格式,而且需要得到一般的表达式。除了上面的基本工具,有时需要很多的技巧,这要求有较高的数学综合素养。我们虽然不建议搞题海战术,但不得不承认技巧和思想在数学中都是不可缺少的,而这需要一些锻炼和总结。我们经常会碰到一些具有特定规律的行列式,需要根据这些规律找到适合它的方法和技巧。

  有一种行列式,它的每行(列)非常相似,但又总有一点不同,这时需要想办法提取出相同的部分。一种做法是将相同的部分单独作为新的一行(列)加到矩阵中,然后进行消除,便会得到较简单的形式,我们可以把它叫做加边法。比如以下左式,可以给它添加一行[1a1a2an](第一列其它元素为零)。还有一种做法就是将每一行(列)中不同的部分剥离开来,分别计算两个简单的行列式。比如以下右式,可以将第一个x拆成y+(xy),接下来的递归式就容易了。

|b1a2a3ana1b2a3ana1a2b3ana1a2a3bn|,|xyyyzxyyzzxyzzzx|

  当行列式表现为一个多项式时,我们可以把注意力集中到确定多项式的系数上,这个方法叫待定系数法。比如以下左式,多项式的n+1个根是可以猜出来的,多项式也就可以得到。再比如以下右式,它可以看做是n+1阶范德蒙行列式的一个余子式。以x补完最后一列,范德蒙行列式为多项式,且刚才的余子式便是xn1项的系数(注意符号)。

|xa1a2ana1xa2ana1a2xana1a2a3x|,|111a1a2ana12a22an2a1na2nann||1111a1a2anxa1n1a2n1ann1xn1a1na2nannxn|

  还有一种方法难度比较大,需要借助公式|AB|=|A||B|(见下篇)。有一些行列式可以先分解成两个简单行列式的积,比如以下左式(sk=x1k+x2k++xnk)是两个范德蒙行列式的积。还有一些行列式可以形成较好的乘法等式,而该等式有助于计算行列式,比如以下右式的循环矩阵,考虑到n次本原单位根ω幂次的循环性,你可以尝试将它乘上由1,ω,ω2,,ωn1组成的范德蒙行列式。

|s0s1sns1s2sn+1snsn+1s2n|,|a1a2anana1an1a2a3a1|

posted on   卞爱华  阅读(3110)  评论(4编辑  收藏  举报

导航

点击右上角即可分享
微信分享提示