漫步线性代数二十四——行列式应用

来源:互联网 发布:nginx 默认错误页面 编辑:程序博客网 时间:2024/05/17 01:04

本篇文章介绍四个应用:A的逆,求解Ax=b,盒子的体积以及主元。他们都是线性代数里面非常关键的计算,而行列式给出了这些答案的公式。

1、计算A12×2矩阵展示了伴随矩阵如何表示A1

[acbd]1=1adbc[dcba]

伴随矩阵还需乘以行列式,当detA非零时,A是可逆的。C11=da 的代数余子式,C12=cb的代数余子式(注意负号),而C12放在了第二行第一列!

a,b分别和C11,C12相乘得到adbc,这是detA的代数余子式展开式,也是我们需要的线索:A1就是用伴随矩阵除以detA

A1=CTdetA(A1)ij=CijdetA(1)

我们的目标是验证这个公式,另外由此我们还看出为何ACT=(detA)I

a11an1a1nannC11C1nCn1Cnn=detA0detA(2)

第一列C11,,C1n乘以a11,,a1n 得到对角元素detAA的每一行乘以它的代数余子式都得到detA

那么关键问题是:为什么对角线外的元素都是零呢?如果我们将第一行的元素a1j和第二行的代数余子式C2j进行组合,为什么结果是零呢?

a11C21+a12C22++a1nC2n=0(3)

答案就是:我们在计算一个新矩阵B的行列式。A的第一行复制到第二行得到矩阵B,那么矩阵B就有相同的两行,detB=0。方程(3)是沿着第二行得到detB展开式,其中B和矩阵A有相同的代数余子式(因为在求解代数余子式时需丢掉第二行),这个非凡的矩阵乘法(2)是完全正确的。

乘法ACT=(detA)I直接得出A1,记住去掉矩阵Ai行第j列的代数余子式放到CT的第j行第i列,然后除以detA(不能等于0)就得到A1=CT/detA

例1:和矩阵的逆是微分矩阵:

A=100110111A1=CTdetA=100110011

因为代数余子式包含(1)i+j,所以会有符号。

2、求解Ax=bx=A1b仅仅就是CTb除以detA,这里介绍一个非常出名的求(x1,,xn)的方法:

克拉姆法则:x=A1b的第j个元素是比值

xj=detBjdetA, Bj=a11an1a12an2b1bna1nann

证明:对detB按第j列展开成代数余子式的形式,因为代数余子式不考虑该列,所以detBjCTb的第j个元素:

detBj=b1C1j+b2C2j++bnCnj

然后用它除以detA就得到xjx的每个元素都是两个行列式的比值。

例2:下面方程组

x1+3x2=0

2x2+4x2=0

的解x1需要将第一列换成0,6,x2需要将第二列换成0,6:

x1=06341234=182=9,x2=12061234=62=3,

分母总是detA,如果有1000个方程,那么根据克莱姆法则,需要1001个行列式。

3、盒子的体积。当所有角都是直角——此时边互相垂直,行列式和体积的联系就非常紧密,此时的盒子的形状是矩形的,从而体积就是边长的乘积:volumn=12n

当盒子的边长是A的行时,我们想从detA中得到同样的12n。在直角的情况下,这些行是正交的,AAT是对角矩阵:

AAT=row 1row nrow1rown=21002n

i是行(边)的长度,因为行是正交的,所以对角线外的元素都是零。利用乘法和转置法则:

21222n=det(AAT)=(detA)(detAT)=(detA)2

这个方程的平方根说明了行列式等于体积。而detA的符号暗示了是使用右手坐标(也就是通常的xyz),还是左手坐标(像yxz)。

如果角度不是90,那么体积就不是长度的乘积。在平面上(如图1),平行四边形的“体积”等于底边乘以高h,向量bp就是第二行b=(a21,a22)减去它在第一行上的投影p,关键点是:根据5,用第一行的倍数减去第二行时detA不变,我们可以将平行四边形变成一个矩形。


这里写图片描述
图1

对于n维的情况,将盒子变成矩形需要很长时间,但是思路就是如此,如果我们从每行减去它在前面行所生成空间的投影,体积和行列式都不变,通过格拉姆-施密特过程产生正交的行,这时体积=行列式,所以对于开始的行这个等式同样成立。

现在我们介绍完了体积和行列式之间的关系,但是很有必要回过头来看看最简单的情况,我们知道

det[1001]=1,det[1c01]=1

这些行列式给出了体积——或者面积(因为这是在二维空间),如图2所示,平行四边形底和高都是1,所以面积也是1。


这里写图片描述
图2

4、主元公式。最后我们讨论一下消元,此时考虑不需要行交换的情况。观察的要点是第k个主元完全由A的左上角子矩阵Ak确定,A的其余行和列对它没有影响:

A=acgbdhefia0gb(adbc)/ahe(afec)/ai

第一个主元只取决于第一行和第一列,第二个主元(adbc)/a值取决于2×2的子矩阵A2A的其余部分不会影响到它。实际上,不仅仅是主元,整个左上角矩阵的L,D,U都只取决于A的左上角:

A=LDU=1c/a11a(adbc)/a1b/a11

从上例我们看出,前两行和两列就是子矩阵A2的分解,如果没有行交换的前提下,这条规则恒成立。

4、如果A分解为LDU,那么左上角满足Ak=LkDkUk

证明的关键在于进行其他行的消元之前,先将左上角的确定下来,或者使用块乘法规则:

LDU=[LkB0C][Dk00E][Uk0FG]=[LkDkUkBDkUkLkDkFBDkF+CEG]

将最后的矩阵和A进行比较,我们发现LkDkUkAk是一致的,那么:

detAk=detLkdetDkdetUk=detDk=d1d2dk

k个主元的乘积是Ak的行列式,这和我们已知的整个矩阵的规则一致。因为Ak1的行列式由d1d2dk1给出,所以我们用行列式比值的方式分离每个主元dk

detAkdetAk1=d1d2dkd1d2dk1=dk(4)

对于上面的例子,第二个主元就是比值(adbc)/a,也就是A2的行列式除以A1的行列式(约定A0=1,这样的话第一个主元就是a/1=a)。将所有主元相乘就回到我们的行列式:

d1d2dn=detA1detA0detA2detA1detAndetAn1=detAndetA0=detA

根据方程(5)我们可以得出一个结论:当detAk都不为零时,主元也都不为零。

5、当且仅当子矩阵A1,A2,,An都是非奇异时,消元法不需要行交换(所以P=I,A=LU)。

现在考虑一个问题,行交换的次数会一直是奇数或偶数吗?如果是,那么根据2行列式要么为+1,要么为-1。

考虑(3,2,1),我们可以只交换3,1就得到正序列(1,2,3),交换3与2,然后3与1,最后2与1同样得到正序列,对于这两种方式,交换的次数都是奇数,这里得出的论断就是:偶数次的交换不可能从(3,2,1)得出正序列。

这里给出它的一个证明。观察置换中的每对数,我们用N表示大数在前的对数。这样的话N=0表示正序列(1,2,3)。而(3,2,1)N为3,因为所以数对(3,2),(3,1),(2,1)都是大数在前,接下来我们将展示用奇数次变换来改变N,直到N=0为止。

当相邻发生交换时,N要么+1,要么-1。所有交换都可以用奇数次的邻域交换实现,考虑一个例子,我们要交换第一和第四个元素,可以通过五次交换完成:

(2,1,4,3)(1,2,4,3)(1,4,2,3)(1,4,3,2)(1,3,4,2)(3,1,4,2)

我们需要k次邻域交换将k位置上的元素放到 上,然后k1次交换将原来(现在在1位置上)位置上的数放到k 位置上。因为(k)+(k1) 是奇数,至此证明完成。

0 0
原创粉丝点击