设实矩阵
A
\boldsymbol{A}
A的各阶主子式
∣
A
i
i
∣
≠
0
(
i
=
1
,
2
,
⋯
,
n
)
|\boldsymbol{A}_{ii}|\ne 0(i=1,2,\cdots,n)
∣Aii∣=0(i=1,2,⋯,n),则可以对
A
\boldsymbol{A}
A进行如下分解:
A
=
L
U
\boldsymbol{A}=\boldsymbol{LU}
A=LU其中,
L
\boldsymbol{L}
L为主对角元素全为1的下三角矩阵(即单位下三角矩阵),
U
\boldsymbol{U}
U为上三角矩阵,称这种分解为矩阵的三角分解,也称为
L
U
\boldsymbol{LU}
LU分解。
下面从高斯消去法的基本原理来说明这种分解的具体过程。在高斯消去法中,只是主对角线上的元素不是1。因此,在没有归一化的消去法中,实际上就是通过一系列的初等行变换依次将主对角线以下的元素消成0,而这一系列的初等行变换就相当于用一系列的初等矩阵左乘矩阵
A
\boldsymbol{A}
A。
首先,为了使矩阵
A
\boldsymbol{A}
A的第一列中以下的元素变为0,可以用一个初等矩阵
L
1
=
[
1
−
l
21
1
−
l
31
0
1
⋮
⋮
⋮
⋱
−
l
n
1
0
0
⋯
1
]
\boldsymbol{L}_1=\left[\begin{array}{ccccc}1 &&&\\ -l_{21}&1 &&&\\ -l_{31}&0&1&&\\ \vdots& \vdots &\vdots&\ddots&\\ -l_{n1}&0&0 &\cdots &1\end{array}\right]
L1=⎣⎢⎢⎢⎢⎢⎡1−l21−l31⋮−ln110⋮01⋮0⋱⋯1⎦⎥⎥⎥⎥⎥⎤左乘矩阵
A
\boldsymbol{A}
A,即
L
1
A
=
[
1
−
l
21
1
−
l
31
0
1
⋮
⋮
⋮
⋱
−
l
n
1
0
0
⋯
1
]
[
a
11
a
12
a
13
⋯
a
1
n
a
21
a
22
a
23
⋯
a
2
n
a
31
a
32
a
33
⋯
a
3
n
⋮
⋮
⋮
⋮
⋮
a
n
1
a
n
2
a
n
3
⋯
a
n
n
]
=
[
a
11
a
12
a
13
⋯
a
1
n
0
a
22
(
1
)
a
23
(
1
)
⋯
a
2
n
(
1
)
0
a
32
(
1
)
a
33
(
1
)
⋯
a
3
n
(
1
)
⋮
⋮
⋮
⋮
⋮
0
a
n
2
(
1
)
a
n
3
(
1
)
⋯
a
n
n
(
1
)
]
=
A
1
\begin{aligned}\boldsymbol{L}_1\boldsymbol{A}&=\left[\begin{array}{ccccc}1 &&&&\\ -l_{21}&1 &&&\\ -l_{31}&0&1&&\\ \vdots& \vdots &\vdots&\ddots&\\ -l_{n1}&0&0 &\cdots &1\end{array}\right]\left[\begin{array}{ccccc}a_{11} &a_{12}&a_{13}& \cdots&a_{1n}\\ a_{21} &a_{22}&a_{23}& \cdots&a_{2n}\\ a_{31} &a_{32}&a_{33}& \cdots&a_{3n}\\ \vdots& \vdots &\vdots&\vdots&\vdots\\ a_{n1} &a_{n2}&a_{n3}& \cdots&a_{nn}\end{array}\right]\\&=\left[\begin{array}{ccccc}a_{11} &a_{12}&a_{13}& \cdots&a_{1n}\\ 0 &a_{22}^{(1)}&a_{23}^{(1)}& \cdots&a_{2n}^{(1)}\\ 0 &a_{32}^{(1)}&a_{33}^{(1)}& \cdots&a_{3n}^{(1)}\\ \vdots& \vdots &\vdots&\vdots&\vdots\\ 0 &a_{n2}^{(1)}&a_{n3}^{(1)}& \cdots&a_{nn}^{(1)}\end{array}\right]=\boldsymbol{A}_1\end{aligned}
L1A=⎣⎢⎢⎢⎢⎢⎡1−l21−l31⋮−ln110⋮01⋮0⋱⋯1⎦⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎡a11a21a31⋮an1a12a22a32⋮an2a13a23a33⋮an3⋯⋯⋯⋮⋯a1na2na3n⋮ann⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎡a1100⋮0a12a22(1)a32(1)⋮an2(1)a13a23(1)a33(1)⋮an3(1)⋯⋯⋯⋮⋯a1na2n(1)a3n(1)⋮ann(1)⎦⎥⎥⎥⎥⎥⎥⎤=A1为了使上式运算成立,初等矩阵
L
1
L_1
L1中的元素
l
i
j
l_{ij}
lij必须满足下列关系:
a
i
1
−
l
i
1
a
11
=
0
,
i
=
2
,
3
,
⋯
,
n
a_{i1}-l_{i1}a_{11}=0,\quad i=2,3,\cdots,n
ai1−li1a11=0,i=2,3,⋯,n即
l
i
1
=
a
i
1
/
a
11
,
i
=
2
,
3
,
⋯
,
n
l_{i1}=a_{i1}/a_{11},\quad i=2,3,\cdots,n
li1=ai1/a11,i=2,3,⋯,n而在新矩阵中,除第一行外,其余各元素相应满足下列关系:
a
i
j
(
1
)
=
a
i
j
−
l
i
1
a
1
j
,
i
=
2
,
3
,
⋯
,
n
;
j
=
2
,
3
,
⋯
,
n
a_{ij}^{(1)}=a_{ij}-l_{i1}a_{1j},\quad i=2,3,\cdots,n; j=2,3,\cdots,n
aij(1)=aij−li1a1j,i=2,3,⋯,n;j=2,3,⋯,n按以上方法继续往下做。假设已经做了
k
−
1
k-1
k−1步,原矩阵
A
\boldsymbol{A}
A已经变为
A
k
−
1
=
L
k
−
1
⋯
L
2
L
1
A
=
[
a
11
a
12
a
13
⋯
a
1
k
a
1
,
k
+
1
⋯
a
1
n
0
a
22
(
1
)
a
23
(
1
)
⋯
a
2
k
(
1
)
a
2
,
k
+
1
(
1
)
⋯
a
2
n
(
1
)
0
0
a
33
(
2
)
⋯
a
3
k
(
2
)
a
3
,
k
+
1
(
2
)
⋯
a
3
n
(
2
)
⋮
⋮
⋮
⋮
⋮
⋮
⋮
⋮
0
0
0
⋯
a
k
k
(
k
−
1
)
a
k
,
k
+
1
(
k
−
1
)
⋯
a
k
n
(
k
−
1
)
⋮
⋮
⋮
⋯
⋮
⋮
⋮
⋮
0
0
0
⋯
a
n
,
k
(
k
−
1
)
a
n
,
k
+
1
(
k
−
1
)
⋯
a
n
n
(
k
−
1
)
]
\begin{aligned}\boldsymbol{A}_{k-1}&=\boldsymbol{L}_{k-1}\cdots \boldsymbol{L}_{2}\boldsymbol{L}_{1}\boldsymbol{A}\\&=\left[\begin{array}{cccccccc}a_{11} &a_{12}&a_{13}& \cdots&a_{1k}& a_{1,k+1}& \cdots & a_{1n}\\ 0 &a_{22}^{(1)}&a_{23}^{(1)}& \cdots&a_{2k}^{(1)}& a_{2,k+1}^{(1)}& \cdots & a_{2n}^{(1)}\\ 0 & 0 &a_{33}^{(2)}& \cdots&a_{3k}^{(2)}& a_{3,k+1}^{(2)}&\cdots& a_{3n}^{(2)}\\ \vdots& \vdots &\vdots&\vdots&\vdots&\vdots & \vdots &\vdots\\ 0 & 0 & 0 & \cdots &a_{kk}^{(k-1)}& a_{k,k+1}^{(k-1)}& \cdots& a_{kn}^{(k-1)} \\ \vdots& \vdots & \vdots &\cdots & \vdots & \vdots & \vdots & \vdots\\ 0 & 0 & 0 &\cdots& a^{(k-1)}_{n,k}&a_{n,k+1}^{(k-1)}&\cdots &a^{(k-1)}_{nn}\end{array}\right]\end{aligned}
Ak−1=Lk−1⋯L2L1A=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡a1100⋮0⋮0a12a22(1)0⋮0⋮0a13a23(1)a33(2)⋮0⋮0⋯⋯⋯⋮⋯⋯⋯a1ka2k(1)a3k(2)⋮akk(k−1)⋮an,k(k−1)a1,k+1a2,k+1(1)a3,k+1(2)⋮ak,k+1(k−1)⋮an,k+1(k−1)⋯⋯⋯⋮⋯⋮⋯a1na2n(1)a3n(2)⋮akn(k−1)⋮ann(k−1)⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤现在进行第
k
k
k步变换,即
A
k
=
L
k
A
k
−
1
=
[
a
11
a
12
a
13
⋯
a
1
k
a
1
,
k
+
1
⋯
a
1
n
0
a
22
(
1
)
a
23
(
1
)
⋯
a
2
k
(
1
)
a
2
,
k
+
1
(
1
)
⋯
a
2
n
(
1
)
0
0
a
33
(
2
)
⋯
a
3
k
(
2
)
a
3
,
k
+
1
(
2
)
⋯
a
3
n
(
2
)
⋮
⋮
⋮
⋮
⋮
⋮
⋮
⋮
0
0
0
⋯
a
k
k
(
k
−
1
)
a
k
,
k
+
1
(
k
−
1
)
⋯
a
k
n
(
k
−
1
)
⋮
⋮
⋮
⋯
⋮
⋮
⋮
⋮
0
0
0
⋯
0
a
n
,
k
+
1
(
k
−
1
)
⋯
a
n
n
(
k
−
1
)
]
\begin{aligned}\boldsymbol{A}_{k}&=\boldsymbol{L}_{k}\boldsymbol{A}_{k-1}\\&=\left[\begin{array}{cccccccc}a_{11} &a_{12}&a_{13}& \cdots&a_{1k}& a_{1,k+1}& \cdots & a_{1n}\\ 0 &a_{22}^{(1)}&a_{23}^{(1)}& \cdots&a_{2k}^{(1)}& a_{2,k+1}^{(1)}& \cdots & a_{2n}^{(1)}\\ 0 & 0 &a_{33}^{(2)}& \cdots&a_{3k}^{(2)}& a_{3,k+1}^{(2)}&\cdots& a_{3n}^{(2)}\\ \vdots& \vdots &\vdots&\vdots&\vdots&\vdots & \vdots &\vdots\\ 0 & 0 & 0 & \cdots &a_{kk}^{(k-1)}& a_{k,k+1}^{(k-1)}& \cdots& a_{kn}^{(k-1)} \\ \vdots& \vdots & \vdots &\cdots & \vdots & \vdots & \vdots & \vdots\\\ 0 & 0 & 0 &\cdots& 0 &a_{n,k+1}^{(k-1)}&\cdots &a^{(k-1)}_{nn}\end{array}\right]\end{aligned}
Ak=LkAk−1=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡a1100⋮0⋮ 0a12a22(1)0⋮0⋮0a13a23(1)a33(2)⋮0⋮0⋯⋯⋯⋮⋯⋯⋯a1ka2k(1)a3k(2)⋮akk(k−1)⋮0a1,k+1a2,k+1(1)a3,k+1(2)⋮ak,k+1(k−1)⋮an,k+1(k−1)⋯⋯⋯⋮⋯⋮⋯a1na2n(1)a3n(2)⋮akn(k−1)⋮ann(k−1)⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤其中
L
k
=
[
1
0
1
0
0
1
⋮
⋮
⋮
⋱
0
0
0
⋯
1
0
0
0
⋯
−
l
k
+
1
,
k
1
⋮
⋮
⋮
⋮
⋮
⋱
0
0
0
⋯
−
l
n
k
0
⋯
1
]
\boldsymbol{L}_k=\left[ \begin{array}{cccccccc}1&&&&&&&\\0&1&&&&&&\\0&0&1&&&&&\\\vdots&\vdots &\vdots &\ddots &&&&\\ 0 & 0 & 0 &\cdots&1&&&\\ 0&0&0&\cdots&-l_{k+1,k}&1&&\\ \vdots&\vdots&\vdots&&\vdots&\vdots&\ddots&\\0&0&0&\cdots&-l_{nk}&0&\cdots&1\end{array}\right]
Lk=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡100⋮00⋮010⋮00⋮01⋮00⋮0⋱⋯⋯⋯1−lk+1,k⋮−lnk1⋮0⋱⋯1⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤同样,为了使上式运算从成立,初等矩阵
L
k
\boldsymbol{L}_k
Lk中元素
l
i
k
l_{ik}
lik必须满足下列关系:
a
i
j
(
k
)
=
a
k
j
(
k
−
1
)
−
l
i
k
a
k
j
(
k
−
1
)
,
i
=
k
+
1
,
⋯
,
n
;
j
=
k
+
1
,
⋯
,
n
a^{(k)}_{ij}=a_{kj}^{(k-1)}-l_{ik}a_{kj}^{(k-1)},\quad i=k+1,\cdots,n;j=k+1,\cdots,n
aij(k)=akj(k−1)−likakj(k−1),i=k+1,⋯,n;j=k+1,⋯,n如此继续下去,则有
A
n
−
1
=
L
n
−
1
⋯
L
k
⋯
L
2
L
1
A
\boldsymbol{A}_{n-1}=\boldsymbol{L}_{n-1}\cdots \boldsymbol{L}_k\cdots \boldsymbol{L}_2 \boldsymbol{L}_1 \boldsymbol{A}
An−1=Ln−1⋯Lk⋯L2L1A其中,
A
n
−
1
\boldsymbol{A}_{n-1}
An−1为上三角矩阵。令
U
=
A
n
−
1
\boldsymbol{U}=\boldsymbol{A}_{n-1}
U=An−1,则有
U
=
L
n
−
1
⋯
L
k
⋯
L
2
L
1
A
\boldsymbol{U}=\boldsymbol{L}_{n-1}\cdots\boldsymbol{L}_{k}\cdots \boldsymbol{L}_2 \boldsymbol{L}_1 \boldsymbol{A}
U=Ln−1⋯Lk⋯L2L1A最后得到
A
=
L
U
\boldsymbol{A}=\boldsymbol{LU}
A=LU由此可以看出,矩阵
A
\boldsymbol{A}
A在一定条件下(各阶主子式异于零)可以分解成单位下三角矩阵
A
\boldsymbol{A}
A和上三角矩阵
U
\boldsymbol{U}
U的乘积。
相关文章
- 12-24WebGL工作流程解读,一个三角形的诞生
- 12-24关于矩阵乘法结合律的证明
- 12-24算术基本定理 (正整数的唯一分解定理) ------每个大于一的自然数均可写为质数的积
- 12-24leetcode 840. 矩阵中的幻方(Magic Squares In Grid)
- 12-24python-SymPy无法计算此矩阵的特征值
- 12-24python – xδ(x)中狄拉克三角洲的简化
- 12-24matlab 删除行或列时出现:矩阵索引超出删除范围 问题的解决和新思路
- 12-24598. Range Addition II 矩阵的范围叠加
- 12-24线性方程组的分解法——列主元消去法
- 12-24NX二次开发-获取WCS坐标系的原点坐标和矩阵标识