线性代数之——A 的 LU 分解

本文深入探讨了矩阵的LU分解方法,详细解释了如何通过消元法将矩阵分解为一个下三角矩阵和一个上三角矩阵。同时,文章还讨论了消元过程的计算复杂度,并介绍了转置矩阵和置换矩阵的概念及其在矩阵运算中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. A = LU

之前在消元的过程中,我们看到可以将矩阵 AAA 变成一个上三角矩阵 UUUUUU 的对角线上就是主元。下面我们将这个过程反过来,通一个下三角矩阵 LLL 我们可以从 UUU 得到 AAALLL 中的元素也就是乘数 lijl_{ij}lij

如果有一个 3*3 的矩阵,假设不需要进行行交换,那我们需要三个消元矩阵 E21,E31,E32E_{21}, E_{31}, E_{32}E21,E31,E32 来分别使矩阵 AAA 的 (2, 1)、(3, 1) 和 (3, 2) 位置为零,然后我们就有

乘数 lijl_{ij}lij 正好就是 LLL(i,j)(i, j)(i,j) 处的元素。因为当我们计算 UUU 的第三行的时候,实际上是用 AAA 的第三行减去 UUU 的前两行的一些倍数。

因此有

下面看一个特殊的例子

如果 AAA 的某一行以 0 开始,说明该位置不需要进行消元,也即 LLL 中对应位置的元素为 0。

如果 AAA 的某一列以 0 开始,该位置元素在消元过程始终不会改变,也即 UUU 中对应位置的元素为 0。

由于 LLL 的对角线上都是 1,而 UUU 的对角线上为主元,因此,这是不对称的。我们可以进一步将 UUU 进行分解,使得 UUU 的对角线上元素也都为 1。

这时候,AAA 的分解就变成了 A=LU=LDUA = LU = LDUA=LU=LDU,其中 DDD 是一个对角矩阵, LLL 是一个下三角矩阵, UUU 是一个上三角矩阵。

当我们从左边的 AAA 得到 LLLUUU 后,我们就对右边的 bbb 进行同样的消元过程得到 Lc=bLc = bLc=b,然后再通过回带 Ux=cUx=cUx=c 求出方程组的解。

2. 消元过程的计算复杂度

假设我们有一个 n∗nn*nnn 的矩阵,首先我们要将第一列主元以下的元素都变成 000。这时候,每一个元素变成 000 我们都需要 nnn 次乘法和 nnn 次减法,总共有 n−1n-1n1 个元素需要变成 000,总的乘法次数为 n(n−1)n(n-1)n(n1),近似为 n2n^2n2。然后,我们要依次将后面列的主元下面的元素变成 000,需要的总的乘法次数为 n2+(n−1)2+⋯+2+1≈13n3n^2+(n-1)^2+\cdots + 2 + 1 \approx \frac{1}{3}n^3n2+(n1)2++2+131n3

也就是说对左边的 AAA 消元要进行 13n3\frac{1}{3}n^331n3 次的乘法操作和 13n3\frac{1}{3}n^331n3 次的加法操作。

再来看右边对 bbb 进行消元,首先我们需要将 b2,b3⋯bnb_2, b_3 \cdots b_nb2,b3bn 都减去 b1b_1b1,需要 n−1n-1n1 次操作,往后我们依次需要 n−2,n−3⋯1n-2, n-3 \cdots 1n2,n31 次操作。回带的时候,求解最后一个方程的时候,我们只需要进行 1 次操作,依次往上我们需要 2,3⋯n2, 3 \cdots n2,3n 次操作。因此,求解的过程总共需要 n2n^2n2 次的乘法操作和 n2n^2n2 次的加法操作

3. 转置和置换矩阵

AAA 的转置矩阵称为 ATA^TAT,其中 ATA^TAT 的列就是 AAA 的行,也即 (AT)ij=Aji(A^T)_{ij} = A_{ji}(AT)ij=Aji

(A+B)T=AT+BT(A+B)^T = A^T + B^T(A+B)T=AT+BT
(AB)T=BTAT(AB)^T = B^TA^T(AB)T=BTAT

假设 BBB 是一个向量 xxx,那么对 (Ax)T=xTAT(Ax)^T = x^TA^T(Ax)T=xTAT 的理解就是:AxAxAx 是对 AAA 的列的线性组合,xTATx^TA^TxTAT 则是对 ATA^TAT 的行的线性组合,AAA 的列和 ATA^TAT 的行是一样的,所以线性组合后是一样的结果。

如果 BBB 有多列的话,我们就很容易得到

同理,针对更多的矩阵,我们也有

(ABC)T=CTBTAT(ABC)^T = C^TB^TA^T(ABC)T=CTBTAT

(A−1)T=(AT)−1(A^{-1})^T = (A^T)^{-1}(A1)T=(AT)1

AA−1=I→(AA−1)T=I→(A−1)TAT=I→(A−1)T=(AT)−1AA^{-1} = I \to (AA^{-1})^T = I \to (A^{-1})^TA^T = I \to (A^{-1})^T = (A^T)^{-1}AA1=I(AA1)T=I(A1)TAT=I(A1)T=(AT)1

转置形式的内积和外积

对称矩阵的转置等于它本身,也就是 AT=AA^T = AAT=A。而且,一个对称矩阵的逆矩阵也是对称的。

(A−1)T=(AT)−1=A−1(A^{-1})^T = (A^T)^{-1} = A^{-1}(A1)T=(AT)1=A1

对于一个任意的矩阵 RRR,可以是矩形的,RTRR^TRRTRRRTRR^TRRT 都是一个对称的方阵。

(RTR)T=RT(RT)T=RTR(R^TR)^T = R^T(R^T)^T = R^TR(RTR)T=RT(RT)T=RTR

A=ATA=A^TA=AT 时,如果没有行交换,那么有 A=LDU=LDLTA = LDU = LDL^TA=LDU=LDLT,此时 UUU 变成了 LTL^TLT

置换矩阵 PPP 每行每列都只有一个 1,而且 PTP^TPTPPTPP^TPPT 和任意两个置换矩阵的乘积 P1P2P_1P_2P1P2 都还是置换矩阵。此外,所有的置换矩阵都有 PT=P−1P^T=P^{-1}PT=P1

nnn 阶的情况下,置换矩阵的总的个数为 n!n!n!。例如 2 阶置换矩阵只有 2 个,3 阶置换矩阵有 6 个。

如果在需要行交换的情况下,我们可以先引入一个置换矩阵 PPP 使矩阵 AAA 的行有正确的顺序,然后再进行消元,这样的话我们就有

PA=LUPA=LUPA=LU

也可以进行消元,然后再用一个矩阵 P1P_1P1 来让主元有一个正确的顺序,这样的话我们就有

A=L1P1U1A=L_1P_1U_1A=L1P1U1

如果 AAA 是可逆的,置换矩阵 PPP 将会使它的行有一个正确的顺序然后分解成 PA=LUPA=LUPA=LU 的形式。

获取更多精彩,请关注「seniusen」!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值