漫步线性代数六——逆和转置

n×n 矩阵的逆是另一个 n×n 矩阵, A 的逆写成A1,它的基本性质是:如果乘 A 后再乘以A1,那么将回到开始状态:

b=Ax,A1b=x
因此 A1Ax=x 。矩阵 A1×A 得到单位矩阵,然而并非所有矩阵都存在逆,当 Ax=0 x0 时矩阵不存在逆,也就是说当我们想找到矩阵 A1 使得 Ax=0 变回 x 时,不存在这样的A1,因为我们不可能有矩阵乘以零向量 Ax 后得到非零向量 x

当矩阵的逆A1存在时,我们的目标是定义,计算并使用它,还有需要知道什么样的矩阵不存在逆。

11、对于矩阵 A,B ,使得 BA=I,AB=I ,并且最多只有一个 B ,我们称它为A的逆并用 A1 表示:

A1A=I,AA1=I(1)

  1. 当且仅当消元过程得到 n 个主元(可以进行行交换)时矩阵的逆才存在,消元法在求解Ax=b时没有显示的去找 A1
  2. 矩阵 A 不可能有两个逆,假设BA=I并且 AC=I ,那么 B=C 。证明如下:
    B(AC)=(BA)CBI=IC,(2)
    这说明左逆 B (从左边相乘)和右逆C(从右边相乘)肯定相等。
  3. 如果 A 可逆,那么Ax=b的唯一解是 x=A1b
    A1Ax=b,x=A1Ax=A1b
  4. (重要)假设有非零向量使得 Ax=0 ,那么 A 不存在逆。再说一遍:不存在这样的矩阵可以将0变回x
  5. 一个 2×2 矩阵是可逆的,当且仅当 adbc 不等于零:
    [acbd]1=1adbc[dcba](3)
    adbc 是矩阵 A 的行列式,如果它非零那么矩阵就是可逆的(这在之后的文章会讲到)。在matlab里面,判断是否可逆就是看是否能找到n个主元,在行列式出现之前是用消元法产生这些主元的。
  6. 对于对角矩阵,如果对角元素没有零,那么它存在逆:
    A=d1dn,A1=1/d11/dnAA1=I
    当涉及两个矩阵时,对于 A+B 的逆我们无法判断,它的和可能有也可能没有逆,但是他们的乘积是可逆的,这在矩阵乘法中是非常重要的公式。这和我们数的情况类似, (a+b)1 很难化简,而 1/ab 可以分为 1/a×1/b 。但是对于矩阵乘法,顺序非常重要,如果 ABx=y ,那么 Bx=A1y,x=B1A1y ,逆的顺序正好相反。

12、乘积 AB 的可逆矩阵是 B1A1

(AB)1=B1A1(4)

证明:为了说明 B1A1 AB 的逆,我们将他们相乘并利用结合律去掉符号:
(AB)(B1A1)=ABB1A1=AIA1=AA1=I
(B1A1)(AB)=B1A1AB=BIB1=BB1=I
对于三个或更多的矩阵同样成立:
(ABC)1=C1B1A1
当用消元矩阵 E,F,G U 变回A时,我们将会发现他们的顺序发生了变化。前向是 GFEA 得到 U ,反向是L=E1F1G1,因为前向中 G 是最后一个,所以反向里G1是第一个。

计算 A1 :Gauss-Jordan方法

考虑方程 AA1=I ,如果一次取 A1 的一列,那么 A1 的第一列乘以 A 得到单位矩阵的第一列:Ax1=e1。同样的可得出 Ax2=e2,Ax3=e3 ,考虑一个 3×3 的例子:

Axi=ei242167102[x1x2x3]=[e1e2e3]=100010001(5)
我们得到了三个方程(或 n 个方程),他们都有相同的系数矩阵A,右边 e1 e2 e3 是不同的,但是消元过程可能在所有方程上同时进行,这就是Gauss-Jordan法。它不是得到 U 后就停止并开始回代,而是继续从上面的行减去下面行的倍数,这将在对角线上面也产生零,知道变成单位矩阵的时候就得到了我们需要的A1

我们继续用这个例子来说明该方法:

例1:用Gauss-Jordan法求 A1

[Ae1e2e3]==2=8242167102100010001200188123121010001200180121121011001=[UL1]
这完成了前向消元的一半,前三列是上三角矩阵 U ,后三列是L1(这与将初等操作 GFE 应用到单位矩阵上效果一样)。然后另一半操作是将 U 变成I,这样的话 L1 将变成 U1L1 ,也就是 A1 。将主元上方变成零,从而得到 A1
[UL1]20018010114103102120008000112841583168211000100011216481516381616281=[IA1]
在最后一步,我们除以主元2,-8和1。左边的系数矩阵变成单位矩阵,因为从 A 变成了I,所以同样的操作使得右边从 I 变成了A1,从而算出了矩阵逆。

注解1:尽管这种方法计算 A1 的时候非常有用,但是我不推荐,我承认 A1 可以一步就求出 Ax=b ,但是两个三角矩阵将会更好:

x=A1bLc=b,Ux=c
我们可以写成 c=L1b ,然后 x=U1c=U1L1b ,但是注意我们没有显示写出这些形式并且在实际计算的时候也没不要写出这些矩阵 L1,U1 ,这将很浪费时间,因为我们只需要回代 x 即可。

注解2:纯粹出于好奇,我们可能计算出找到A1 所需的操作次数。正常情况下每更新一次右边就需要 n2 次,它是前向操作的一半也是回代的一半。那么对于 n 个右边的向量e1,,en将会是 n3 。之后还有 n3/3 A 本身的操作,加起来似乎是4n3/3

考虑到 ej 中的零元素,这个结果似乎有点高了,前向消元只改变1下面的零,这部分只有 nj 个元素,所以对 ej 来说计数应该是 (nj)2/2 ,然后将所有 j 对应的加起来得到前向次数为n3/6,还有 n3/3 用在 A 上以及n(n2/2) 次回代得到 A1 ,因此九三 A1 最终的计算次数是 n3

n36+n33+n(n22)=n3

这个结果明显变低了。因为矩阵乘法需要 n3 步,所以计算 A1 的次数和计算 A2 的次数是一样多的!不管怎样,如果不需要 A1 的话,那就不去求它。

注解3:在Gauss-Jordan计算中,我们首先一路向前得到 U ,在开始向后使主元上面为零时,这跟高斯消元法很像。另外我们可以前向进行到第二个主元时就将它上面的元素变成零,但是这不是明智之举,那样的话当我们反向将主元上方变零的时候,该行几乎是满的而上面的那行却是零。

逆=非奇异

最终,我们想要知道哪些矩阵是可逆的,哪些不可逆。这个问题非常重要,它有很多的答案。

测试可逆性的方法有许多(但是互相等效),有时测试可以延伸到长方形矩阵。我们可以通过找出不相关的行列来测试,找出非零行列式或非零特征值或非零主元来测试,也可以用高斯消元法来测试。

假设A n 个主元,那么AA1=I将给出 n Axi=ei,他们可以用Gauss-Jordan法或高斯消元法来求解。需要的时候可以进行行变换,但是 A1 是确定的。

严格来讲,我们还必须将 A1 写成左逆的形式。求解 AA1=I 和求解 A1A=I 是花费相同的时间,为什么呢?为了理解原因,注意每一步Gauss-Jordan都是在乘上一个初等矩阵,我们将会有三种类型的初等矩阵:

  1. Eij 就是从 i 行减去j行的
  2. Pij 就是简化行 i,j
  3. D(D1) 就是用主元除以所有行

Gauss-Jordan过程实际是一系列矩阵乘法:

(D1EPE)A=I(6)
括号里的矩阵是 A 的左逆!如果存在,它就等于右逆,因此每个非奇异矩阵都是可逆的。

反过来也是如此:如果A是可逆的,那么它有 n 个主元。考虑一个极端的例子就很清楚了:A不能一整列都是零。逆永远不可能乘以零得到 I 的一列。在考虑不太极端的情况,假设消元过程从可逆矩阵A开始但在第3列被打破:

A=d1000xd200xx00xxxx
无论 x 是何值,这个矩阵都没有逆。一种证明是利用列操作将真个第三列变成零,通过减去第二列和第一列的倍数我们就能发现得到的矩阵确实没有逆,因此原矩阵A是不可逆的。消元法给出了完整的测试: n×n 矩阵是可逆的,当且仅当它有 n 个主元。

转置矩阵

我们还需要介绍一种矩阵,幸运的是它比逆简单得多。A的转置用 AT 表示,它的列就是 A 的行-A的第 i 行变成AT的第 i 列:

A=[201043]AT=214003
如果 A m×n矩阵,那么 AT 就是 n×m 矩阵,最终的效果是沿对角线进行翻转, AT 里面的 i,j 元素来自 A 里面的j,i元素:
(AT)ij=Aji(7)
下三角矩阵的转置是上三角矩阵, AT 的转置就是 A

如果我们将两个矩阵相加然后转置,这和先转置后相加得结果一样:(A+B)T=AT+BT。那么乘积 AB 或逆 A1 的转置呢?这些都是基本的公式:

13、
(i). AB 的转置是 (AB)T=BTAT
(ii). A1 的转置是 (A1)T=(AT)1

注意两个形式非常像,都是反转了顺序。逆的证明很容易,需要用到矩阵乘法。因为 (AB)T 的第一行是 (AB) 的第一列, B 的第一列是A各列的权重, BT 的第一行是 AT 各行的权重。那就是 BTAT 的第一行, (AB)T BTAT 的其他行同样如此:

AB=BTAT=[1101][323232]=[353535]333222[1011]=333555
为了建立公式 (A1)T ,我们先从 AA1=I,A1A=I 开始,然后转置。一方面 IT=I ,另一方面我们知道乘积的转置,所以
AT=A1(A1)TAT=I(8)

对称矩阵

根据已经建立的规则,现在我们介绍一种特殊的矩阵,可能非常重要,那就是对称矩阵。对称矩阵就是转置等于本身的矩阵: AT=A ,这种矩阵必须是方阵,对角线一边的元素等于另一边的镜像: aij=aji ,这里给出两个简单的例子:

A=[1228]D=[1004]A1=14[8221]
对称矩阵不需要可逆;它甚至可以是零矩阵。但是,如果 A1 存在的话,它也是对称的。从上面的 (ii) 我们知道 A1 的转置等于 (AT)1 ;对于对称矩阵,只是 A1 A1 等于它自身的转置;当 A 是对称的时候它也是。现在我们将表明任何矩阵R乘以 RT 将得到对称矩阵。

对称乘法 RTR,RRT LDLT

任意选择一个矩阵 R ,也可以是长方形的。用RT乘以 R 得到的RTR自动就是对称方阵:

RTRRT(RT)T,RT(RT)T=RTR(9)
这快速的证明了 RTR 是对称矩阵,它的 i,j 元素是 RT 的第 i 行和R的第 j 列的内积,j,i元素和它相等,所以 RTR 是对称的。

RRT 也是对称的,不是和 RTR 不相等。凭我的经验,大部分以长方形矩阵开始的科学问题最终都会落到 RTR RRT 或他们两者身上。

例2 R=[1,2],RT=[12] 相乘得到 RTR=[1224],RRT=[5]
乘积 RTR n×n 的矩阵,而 RRT m×m 。即使 m=n RTR=RRT 也不一定成立,等式是可能发生的但不常见。

对称矩阵出现在许多地方,“每一个行动都存在一个与它相等但相反的反应”。元素 aij (在 j 上施加行动i)和 aji 是匹配的,我们之后会看到在微分方程中它是对称的。另外 LU 不对称而 LDLT 确实对称的。

14、假设 A=AT 在不执行行变换的情况下分解为 A=LDU ,那么 U L的转置。即对称矩阵分解得到 A=LDLT

A=LDU 的转置为 AT=UTDTLT ,因为 A=AT ,因此我们存在两个分解,但是三角分解是唯一的,所以 LT 必须等于 U

LT=UA=LDLT[1228]=[1201][1004][1021]=LDLT
当消元应用到对称矩阵上时, AT=A 是一个优点。在消元过程中更小的矩阵依然保持对称,我们的工作量就减少了一半!右下角的矩阵依然保持着对称:

abcbdecefa00bdb2aebcacebcafc2a
消元得工作量从 n3/3 变成了 n3/6 ,不需要存储对角线两边所有的元素或者说同时存储 L,U

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值