《机器学习数学基础》补充资料:矩阵的LU分解

本文是对《机器学习数学基础》第2章2.3.3节矩阵LU分解的拓展。

判断是否可LU分解

并非所有矩阵都可以实现LU分解

定理1: 若 n n n 阶可逆矩阵 A \pmb{A} A 可以进行LU分解,则 A \pmb{A} A 的 k k k 阶顺序主子阵(leading principal submatrix) A k \pmb{A}_k Ak 都是可逆的 [ 1 ] ^{[1]} [1]。

证明

将 A = L U \pmb{A}=\pmb{LU} A=LU 用分块矩阵表示:

A = L U = [ L 11 0 L 21 L 22 ] [ U 11 U 12 0 U 22 ] = [ L 11 U 11 L 11 U 12 L 21 U 11 L 21 U 12 + L 22 U 22 ] \pmb{A}=\pmb{LU}=\begin{bmatrix}\pmb{L}{11}&0\\\pmb{L}{21}&\pmb{L}{22}\end{bmatrix}\begin{bmatrix}\pmb{U}{11}&\pmb{U}{12}\\0&\pmb{U}{22}\end{bmatrix}=\begin{bmatrix}\pmb{L}{11}\pmb{U}{11}&\pmb{L}{11}\pmb{U}{12}\\\pmb{L}{21}\pmb{U}{11}&\pmb{L}{21}\pmb{U}{12}+\pmb{L}{22}\pmb{U}{22}\end{bmatrix} A=LU=[L11L210L22][U110U12U22]=[L11U11L21U11L11U12L21U12+L22U22]

其中 L 11 、 U 11 \pmb{L}{11}、\pmb{U}{11} L11、U11 是 k × k k\times k k×k 分块矩阵。

因为 L \pmb{L} L 是单位下三角矩阵,且主对角线元素都是 1 1 1 ,则其分块矩阵 L 11 \pmb{L}{11} L11 亦为三角矩阵,且主对角线元素非零。同理, U 11 \pmb{U}{11} U11 亦然。

所以 L 11 \pmb{L}{11} L11 和 U 11 \pmb{U}{11} U11 可逆,则 A k = L 11 U 11 \pmb{A}k=\pmb{L}{11}\pmb{U}_{11} Ak=L11U11 可以。

证毕。

: A = [ 3 − 1 2 6 − 1 5 − 9 7 3 ] \pmb{A}=\begin{bmatrix}3&-1&2\\6&-1&5\\-9&7&3\end{bmatrix} A= 36−9−1−17253 的顺序主子阵依次为:

A 1 = [ 3 ] = [ 1 ] [ 3 ] A 2 = [ 3 − 1 6 − 1 ] = [ 1 0 2 1 ] [ 3 − 1 0 1 ] A 3 = A = L U \begin{split}\pmb{A}_1&=[3]=[1][3]\\\pmb{A}_2&=\begin{bmatrix}3&-1\\6&-1\end{bmatrix}=\begin{bmatrix}1&0\\2&1\end{bmatrix}\begin{bmatrix}3&-1\\0&1\end{bmatrix}\\\pmb{A}_3&=\pmb{A}=\pmb{LU}\end{split} A1A2A3=[3]=[1][3]=[36−1−1]=[1201][30−11]=A=LU

定理2: (定理1的逆定理)若矩阵 A \pmb{A} A 的所有顺序主子阵 A k \pmb{A}_k Ak 都可逆,则该矩阵存在LU分解。

证明(用归纳法)

k = 1 k=1 k=1 , A 1 = [ a 11 ] \pmb{A}1=[a{11}] A1=[a11] 可逆,则 a 11 ≠ 0 a_{11}\ne 0 a11=0 ,所以有: A 1 = [ 1 ] [ a 11 ] \pmb{A}1=[1][a{11}] A1=[1][a11] ,即为LU分解。

设 k k k 阶顺序主子阵 A k \pmb{A}_k Ak 可逆,且可LU分解, A k = L k U k \pmb{A}_k=\pmb{L}_k\pmb{U}_k Ak=LkUk 。

k + 1 k+1 k+1 阶顺序主子阵 A k + 1 \pmb{A}_{k+1} Ak+1 可以表示为:

A k + 1 = [ A k b c T d ] \pmb{A}_{k+1}=\begin{bmatrix}\pmb{A}_k&\pmb{b}\\\pmb{c}^T&d\end{bmatrix} Ak+1=[AkcTbd]

其中 b 、 c \pmb{b}、\pmb{c} b、c 是 k k k 维向量, d d d 是标量。则上式可以进一步写成:

A k + 1 = [ A k b c T d ] = [ L k 0 x T 1 ] [ U k y 0 T z ] \pmb{A}_{k+1}=\begin{bmatrix}\pmb{A}_k&\pmb{b}\\\pmb{c}^T&d\end{bmatrix}=\begin{bmatrix}\pmb{L}_k&\pmb{0}\\\pmb{x}^T&1\end{bmatrix}\begin{bmatrix}\pmb{U}_k&\pmb{y}\\\pmb{0}^T&z\end{bmatrix} Ak+1=[AkcTbd]=[LkxT01][Uk0Tyz]

通过对应关系,可知:

b = L k y , c T = x T U k , d = x T y + z \pmb{b}=\pmb{L}_k\pmb{y},\pmb{c}^T=\pmb{x}^T\pmb{U}_k,d=\pmb{x}^T\pmb{y}+z b=Lky,cT=xTUk,d=xTy+z

解得:

y = L k − 1 b , x T = c T U k − 1 , z = d − x T y = d − c T ( U k − 1 L k − 1 ) b = d − c T A − 1 b \pmb{y}=\pmb{L}_k^{-1}\pmb{b},\pmb{x}^T=\pmb{c}^T\pmb{U}_k^{-1},z=d-\pmb{x}^T\pmb{y}=d-\pmb{c}^T(\pmb{U}_k^{-1}\pmb{L}_k^{-1})\pmb{b}=d-\pmb{c}^T\pmb{A}^{-1}\pmb{b} y=Lk−1b,xT=cTUk−1,z=d−xTy=d−cT(Uk−1Lk−1)b=d−cTA−1b

所以: A k + 1 = L k + 1 U k + 1 \pmb{A}{k+1}=\pmb{L}{k+1}\pmb{U}_{k+1} Ak+1=Lk+1Uk+1

其中 L k + 1 = [ L k 0 c T U k − 1 1 ] , U k + 1 = [ U k y 0 T d − c T A − 1 b ] \pmb{L}_{k+1}=\begin{bmatrix}\pmb{L}_k&\pmb{0}\\\pmb{c}^T\pmb{U}k^{-1}&1\end{bmatrix},\pmb{U}{k+1}=\begin{bmatrix}\pmb{U}_k&\pmb{y}\\\pmb{0}^T&d-\pmb{c}^T\pmb{A}^{-1}\pmb{b}\end{bmatrix} Lk+1=[LkcTUk−101],Uk+1=[Uk0Tyd−cTA−1b]

因为 A k + 1 \pmb{A}{k+1} Ak+1 和 L k + 1 \pmb{L}{k+1} Lk+1 可逆,所以 U k + 1 \pmb{U}{k+1} Uk+1 可逆,则 d − c T A − 1 b ≠ 0 d-\pmb{c}^T\pmb{A}^{-1}\pmb{b}\ne0 d−cTA−1b=0 。即 A k + 1 \pmb{A}{k+1} Ak+1 可以分解为 L k + 1 U k + 1 \pmb{L}{k+1}\pmb{U}{k+1} Lk+1Uk+1 。

综上,定理得证。

LU分解的唯一性

对于 A = L U \pmb{A}=\pmb{LU} A=LU 而言, L \pmb{L} L 是单位下三角矩阵,主对角线元素为 1 1 1 。对于 U \pmb{U} U ,以 3 × 3 3\times 3 3×3 为例,可以转化为:

U = [ u 11 u 12 u 13 0 u 22 u 23 0 0 u 33 ] = [ u 11 0 0 0 u 22 0 0 0 u 33 ] [ 1 u 12 u 11 u 13 u 11 0 1 u 23 u 22 0 0 1 ] = D U ′ \pmb{U}=\begin{bmatrix}u_{11}&u_{12}&u_{13}\\0&u_{22}&u_{23}\\0&0&u_{33}\end{bmatrix}=\begin{bmatrix}u_{11}&0&0\\0&u_{22}&0\\0&0&u_{33}\end{bmatrix}\begin{bmatrix}1&\frac{u_{12}}{u_{11}}&\frac{u_{13}}{u_{11}}\\0&1&\frac{u_{23}}{u_{22}}\\0&0&1\end{bmatrix}=\pmb{D}\pmb{U}' U= u1100u12u220u13u23u33 = u11000u22000u33 100u11u1210u11u13u22u231 =DU′

所以: A = L D U ′ \pmb{A}=\pmb{LDU}' A=LDU′

假设 A = L 1 D 1 U 1 ′ \pmb{A}=\pmb{L}_1\pmb{D}_1\pmb{U}_1' A=L1D1U1′ , A = L 2 D 2 U 2 ′ \pmb{A}=\pmb{L}_2\pmb{D}_2\pmb{U}_2' A=L2D2U2′ ,则:

L 1 D 1 U 1 ′ = L 2 D 2 U 2 ′ \pmb{L}_1\pmb{D}_1\pmb{U}_1'=\pmb{L}_2\pmb{D}_2\pmb{U}_2' L1D1U1′=L2D2U2′

由因为 L i \pmb{L}_i Li 和 U i ′ \pmb{U}'_i Ui′ 都可逆,所以:

L 1 − 1 L 1 D 1 U 1 ′ U 2 ′ − 1 = L 1 − 1 L 2 D 2 U 2 ′ U 2 ′ − 1 D 1 U 1 ′ U 2 ′ − 1 = L 1 − 1 L 2 D 2 \begin{split}\pmb{L}_1^{-1}\pmb{L}_1\pmb{D}_1\pmb{U}_1'\pmb{U}_2'^{-1}&=\pmb{L}_1^{-1}\pmb{L}_2\pmb{D}_2\pmb{U}_2'\pmb{U}_2'^{-1}\\\pmb{D}_1\pmb{U}'_1\pmb{U}_2'^{-1}&=\pmb{L}_1^{-1}\pmb{L}_2\pmb{D}_2\end{split} L1−1L1D1U1′U2′−1D1U1′U2′−1=L1−1L2D2U2′U2′−1=L1−1L2D2

继续以 3 3 3 阶方阵为例,将上式等号左右分别用矩阵方式展开,得:

[ ( D 1 ) 11 ∗ ∗ 0 ( D 1 ) 22 ∗ 0 0 ( D 1 ) 33 ] = [ ( D 2 ) 11 0 0 ∗ ( D 2 ) 22 0 ∗ ∗ ( D 2 ) 33 ] \begin{bmatrix}(\pmb{D}1){11}&*&*\\0&(\pmb{D}1){22}&*\\0&0&(\pmb{D}1){33}\end{bmatrix}=\begin{bmatrix}(\pmb{D}2){11}&0&0\\*&(\pmb{D}2){22}&0\\*&*&(\pmb{D}2){33}\end{bmatrix} (D1)1100∗(D1)220∗∗(D1)33 = (D2)11∗∗0(D2)22∗00(D2)33

所以: D 1 = D 2 \pmb{D}_1=\pmb{D}_2 D1=D2 ,非主元的值 ∗ = 0 * = 0 ∗=0 ,故 U 1 ′ U 2 ′ − 1 = I , L 1 − 1 L 2 = I \pmb{U}_1'\pmb{U}_2'^{-1}=\pmb{I}, \pmb{L}_1^{-1}\pmb{L}_2=\pmb{I} U1′U2′−1=I,L1−1L2=I

所以: U 1 ′ = U 2 ′ , L 1 = L 2 \pmb{U}_1'=\pmb{U}_2',\pmb{L}_1=\pmb{L}_2 U1′=U2′,L1=L2 ,即 LU 分解具有唯一性。

证毕。

LU分解的应用

求解线性方程组

此应用在《机器学习数学基础》第2章2.3.3节中有详细介绍,请参阅。

计算行列式

利用LU分解可以手工计算 n n n 阶行列式。

∣ A ∣ = ∣ L U ∣ = ∣ L ∣ ∣ U ∣ |\pmb{A}|=|\pmb{LU}|=|\pmb{L}||\pmb{U}| ∣A∣=∣LU∣=∣L∣∣U∣

三角矩阵的行列式等于主对角元乘积。

所以: ∣ L ∣ = 1 |\pmb{L}|=1 ∣L∣=1 ,则:

∣ A ∣ = ∣ U ∣ = ∏ i = 1 n u i i |\pmb{A}|=|\pmb{U}|=\prod_{i=1}^nu_{ii} ∣A∣=∣U∣=i=1∏nuii

参考文献

[1]. https://ccjou.wordpress.com/2010/09/01/lu-分解/

相关推荐
车载诊断技术6 小时前
人工智能AI在汽车设计领域的应用探索
数据库·人工智能·网络协议·架构·汽车·是诊断功能配置的核心
AuGuSt_817 小时前
【深度学习】Hopfield网络:模拟联想记忆
人工智能·深度学习
jndingxin7 小时前
OpenCV计算摄影学(6)高动态范围成像(HDR imaging)
人工智能·opencv·计算机视觉
Sol-itude7 小时前
【文献阅读】Collective Decision for Open Set Recognition
论文阅读·人工智能·机器学习·支持向量机
没事偷着乐琅8 小时前
人工智能 pytorch篇
人工智能·pytorch·python
邪恶的贝利亚8 小时前
Pytorch常用函数
人工智能·pytorch·python
Ironben8 小时前
看好 MCP,但用不了 Claude,所以做了一款 MCP 客户端
人工智能·claude·mcp
佛州小李哥8 小时前
构建逻辑思维链(CoT)为金融AI消除幻觉(保险赔付篇)
人工智能·科技·ai·金融·云计算·aws·亚马逊云科技
xilu09 小时前
MCP与RAG:增强大型语言模型的两种路径
人工智能·llm·mcp
阿正的梦工坊9 小时前
PyTorch 中的 nn.ModuleList 是什么?与普通列表有啥区别?
人工智能·pytorch·python