矩阵代数
文章目录
1. 矩阵与向量
1.1 矩阵乘以向量的求法
矩阵与向量的乘法包含两种,分别是矩阵与行向量的乘法,以及矩阵与列向量的乘法
- 矩阵与列向量的乘法
A ∗ { c 1 c 2 c 3 } A*\left\{ \begin{matrix} c1\\ c2\\ c3 \end{matrix}\right\} A∗⎩⎨⎧c1c2c3⎭⎬⎫
把A竖着看,当初列向量的组合
A
=
{
v
1
v
2
v
3
}
A = \left\{ \begin{matrix} v1& v2& v3 \end{matrix}\right\}
A={v1v2v3}
则可以得到
{
v
1
v
2
v
3
}
∗
{
c
1
c
2
c
3
}
=
c
1
∗
v
1
+
c
2
∗
v
2
+
c
3
∗
v
3
\left\{ \begin{matrix} v1& v2& v3 \end{matrix}\right\}*\left\{ \begin{matrix} c1\\ c2\\ c3 \end{matrix}\right\} = c1*v1+c2*v2+c3*v3
{v1v2v3}∗⎩⎨⎧c1c2c3⎭⎬⎫=c1∗v1+c2∗v2+c3∗v3
- 矩阵与行向量的乘法
矩阵行向量要写在矩阵左侧
{
c
1
c
2
c
3
}
∗
A
\left\{ \begin{matrix} c1& c2& c3 \end{matrix}\right\}*A
{c1c2c3}∗A
把A横着看,当初行向量的组合
A
=
{
v
1
T
v
2
T
v
3
T
}
A = \left\{ \begin{matrix} v1^T \\ v2^T \\ v3^T \end{matrix}\right\}
A=⎩⎨⎧v1Tv2Tv3T⎭⎬⎫
则可以得到
{
c
1
c
2
c
3
}
∗
{
v
1
T
v
2
t
T
v
3
T
}
=
c
1
∗
v
1
T
+
c
2
∗
v
2
T
+
c
3
∗
v
3
T
\left\{ \begin{matrix} c1& c2& c3 \end{matrix}\right\}*\left\{ \begin{matrix} v1^T \\ v2t^T \\ v3^T \end{matrix}\right\} = c1*v1^T+c2*v2^T+c3*v3^T
{c1c2c3}∗⎩⎨⎧v1Tv2tTv3T⎭⎬⎫=c1∗v1T+c2∗v2T+c3∗v3T
1.2 矩阵乘以列向量的意义
矩阵乘以列向量实际上就是把矩阵A看着是列向量的组合,通过列向量作为权值,让矩阵的列向量重新线性组合得到一个新的列向量
1.3 行向量乘以矩阵的意义
行向量乘以矩阵,实际上就是把矩阵A看着是行向量的组合,通过行向量作为权值,让矩阵的行向量重新线性组合,得到一个新的行向量
2. 矩阵乘法的求法(也就是含义)
矩阵乘法A*B有5种理解方法,可以根据需要进行
2.1 前行乘后列
前行乘后列是矩阵乘法的标准做法,如
A
∗
B
=
{
a
11
a
12
a
21
a
22
}
∗
{
b
11
b
12
b
21
b
22
}
=
{
a
11
∗
b
11
+
a
12
∗
b
21
a
11
∗
b
12
+
a
12
∗
b
22
a
21
∗
b
11
+
a
22
∗
b
21
a
21
∗
b
12
+
a
22
∗
b
22
}
A*B=\left\{ \begin{matrix} a11 &a12\\ a21& a22 \end{matrix}\right\}*\left\{ \begin{matrix} b11 &b12\\ b21& b22 \end{matrix}\right\}=\left\{ \begin{matrix} a11*b11+a12*b21 &a11*b12+a12*b22\\ a21*b11+a22*b21&a21*b12+a22*b22 \end{matrix}\right\}
A∗B={a11a21a12a22}∗{b11b21b12b22}={a11∗b11+a12∗b21a21∗b11+a22∗b21a11∗b12+a12∗b22a21∗b12+a22∗b22}
也就是新矩阵xij的位置,是前面矩阵的第i行,和后面矩阵第j列点乘的结果
2.2 行乘行
当然,矩阵乘法也可以理解为是很多行的乘法,前矩阵A可以看做是很多个行向量,然后就有了行向量*矩阵B的解释法。每一个前矩阵B中的行向量都对矩阵A中的行向量进行了一次重新组合,得到了一个新行向量
A
∗
B
=
{
v
1
T
v
2
T
}
∗
{
b
11
b
12
b
21
b
22
}
=
{
W
1
T
W
2
T
}
A*B= \left\{ \begin{matrix} v1^T\\ v2^T \end{matrix}\right\}*\left\{ \begin{matrix} b11 &b12\\ b21& b22 \end{matrix}\right\} = \left\{ \begin{matrix} W1^T\\ W2^T \end{matrix}\right\}
A∗B={v1Tv2T}∗{b11b21b12b22}={W1TW2T}
v 1 T = { a 11 a 12 } v1^T = \left\{ \begin{matrix} a11& a12 \end{matrix}\right\} v1T={a11a12}
v 2 T = { a 21 a 22 } v2^T= \left\{ \begin{matrix} a21& a22 \end{matrix}\right\} v2T={a21a22}
可得
W
1
T
=
a
11
∗
{
b
11
b
12
}
+
a
12
∗
{
b
21
b
22
}
W1^T = a11*\left\{ \begin{matrix} b11& b12 \end{matrix}\right\} +a12*\left\{ \begin{matrix} b21& b22 \end{matrix}\right\}
W1T=a11∗{b11b12}+a12∗{b21b22}
W 2 T = a 21 ∗ { b 11 b 12 } + a 22 ∗ { b 21 b 22 } W2^T = a21*\left\{ \begin{matrix} b11& b12 \end{matrix}\right\} +a22*\left\{ \begin{matrix} b21& b22 \end{matrix}\right\} W2T=a21∗{b11b12}+a22∗{b21b22}
2.3 列乘列
后矩阵B也可以看做很多列向量的组合,于是就变成的矩阵乘以列向量
A
∗
B
=
{
a
11
a
12
a
21
a
22
}
∗
{
V
1
V
2
}
=
{
W
1
W
2
}
A*B= \left\{ \begin{matrix} a11 &a12\\ a21& a22 \end{matrix}\right\}*\left\{ \begin{matrix} V1&V2 \end{matrix}\right\} = \left\{ \begin{matrix} W1& W2 \end{matrix}\right\}
A∗B={a11a21a12a22}∗{V1V2}={W1W2}
v 1 = { b 11 b 12 } v1 = \left\{ \begin{matrix} b11\\ b12 \end{matrix}\right\} v1={b11b12}
v 2 = { b 21 b 22 } v2= \left\{ \begin{matrix} b21\\b22\end{matrix}\right\} v2={b21b22}
可得
W 1 = b 11 ∗ { a 11 a 21 } + b 12 ∗ { a 12 a 22 } W1 = b11*\left\{ \begin{matrix} a11\\ a21 \end{matrix}\right\} +b12*\left\{ \begin{matrix} a12\\ a22 \end{matrix}\right\} W1=b11∗{a11a21}+b12∗{a12a22}
W 2 = b 21 ∗ { a 11 a 21 } + b 22 ∗ { a 12 a 22 } W2 = b21*\left\{ \begin{matrix} a11\\ a21 \end{matrix}\right\} +b22*\left\{ \begin{matrix} a12\\ a22 \end{matrix}\right\} W2=b21∗{a11a21}+b22∗{a12a22}
2.4 前列乘后行
前列乘后行可以得到一个个秩1矩阵,矩阵乘法可以看做是子矩阵的叠加
A
∗
B
=
c
o
l
u
m
n
a
1
∗
r
o
w
b
1
+
c
o
l
u
m
n
a
2
∗
r
o
w
b
1
+
c
o
l
u
m
n
a
1
∗
r
o
w
b
2
+
c
o
l
u
m
n
a
2
∗
r
o
w
b
2
A*B = column_{a1}*row_{b1}+column_{a2}*row_{b1}+column_{a1}*row_{b2}+column_{a2}*row_{b2}
A∗B=columna1∗rowb1+columna2∗rowb1+columna1∗rowb2+columna2∗rowb2
2.5 分块乘法
矩阵乘法也可以看做分块矩阵的乘法
A
∗
B
=
{
A
1
A
2
A
3
A
4
}
∗
{
B
1
B
2
B
3
B
4
}
=
{
W
1
W
2
W
3
W
4
}
A*B= \left\{ \begin{matrix} A1 &A2\\ A3& A4 \end{matrix}\right\}*\left\{ \begin{matrix} B1&B2\\B3&B4 \end{matrix}\right\} = \left\{ \begin{matrix} W1& W2\\W3&W4 \end{matrix}\right\}
A∗B={A1A3A2A4}∗{B1B3B2B4}={W1W3W2W4}
3.矩阵的分解
3.1 LU分解
3.1.1 含义
矩阵的LU分解是最简单的一种,将矩阵A分解为下三角矩阵与上三角矩阵的成绩。其中L为下三角矩阵,对角线全部为1,U为上三角矩阵,其实也就是矩阵的阶梯式。LU分解代表了矩阵化为阶梯式的过程中发生的变化,L就是每一步变化的矩阵乘积。
3.1.2 求解步骤
假设E21的意思为把矩阵A的第2行第1个元素消去变成0,假设A是个3x3的矩阵,那么,行变换为阶梯式的过程就应该是 E21,E31,E32,最后得到了U
E
32
∗
E
31
∗
E
21
∗
A
=
U
E32*E31*E21* A = U
E32∗E31∗E21∗A=U
A = ( E 32 ∗ E 31 ∗ E 21 ) − 1 ∗ U A = ( E32*E31*E21)^{-1}*U A=(E32∗E31∗E21)−1∗U
A = L ∗ U A = L*U A=L∗U
即 L = ( E 32 ∗ E 31 ∗ E 21 ) − 1 即 L = ( E32*E31*E21)^{-1} 即L=(E32∗E31∗E21)−1
这种求解步骤是矩阵没有发生行交换的情况,如果发生了行交换,矩阵的LU分解应该为
A = P ∗ L ∗ U A= P*L*U A=P∗L∗U
P 为 置 换 矩 阵 P为置换矩阵 P为置换矩阵
3.1.2 LU分解的应用–加速线性方程组的求解
因为从原始矩阵变换为最简阶梯形经过了很多次行变换,行变换可以用一个矩阵来描述,最终得到的最简阶梯形是一个下三角矩阵,记为U,而多次行变换的乘积是一个上三角矩阵,记为L,即A=LU,原式可以表示为
L
∗
U
∗
X
=
b
L*U*X=b
L∗U∗X=b
令y=UX
L
∗
y
=
b
L*y = b
L∗y=b
因为L是下三角矩阵,解方程必然很快,得到y以后,再算Ux=y,U是上三角矩阵,计算也很快,用这种先拆分再解方程的LU分解法比最简阶梯形计算量更小一些
3.2 QR分解
3.2.1 含义
QR分解是在施密特正交化,产生正交矩阵Q的过程中产生的,A=QR实际上就是A中的列向量作为向量空间的基,通过施密特正交化得到了标准正交基Q,R记录了这个变化的过程,R是一个上三角矩阵。
因为A中的基xi,都是由Q中的前i个单位正交基组合得到的,所以R必定是个上三角矩阵,比如
r 1 = x 1 ; r1 = x1; r1=x1;
r 2 = x 2 − r 1 T ∗ x 2 r 1 T ∗ r 1 ∗ r 1 r2 = x2 - \frac{r_1^T*x2}{r_1^T*r_1}*r_1 r2=x2−r1T∗r1r1T∗x2∗r1
即
x
2
=
c
1
∗
r
1
+
c
2
∗
r
2
即 x2 = c1*r1+c2*r2
即x2=c1∗r1+c2∗r2
其余的可以类推,所以矩阵R一定是个上三角矩阵
3.2.2 分解条件
因为只有A的各个向量能够构成向量空间的一组基向量才能进行施密特正交化,所以,能够做QR分解的条件是,A的列向量必须是线性无关的
3.2.3 分解方法
首先,Q是施密特正交化得到的标准正交基,这里就不写求解过程了,只写R的求法
A
=
Q
∗
R
A = Q*R
A=Q∗R
R = Q − 1 ∗ A R = Q^{-1}*A R=Q−1∗A
因 为 Q 是 标 准 正 交 矩 阵 , 所 以 有 逆 等 于 转 置 , 可 得 因为Q是标准正交矩阵,所以有逆等于转置,可得 因为Q是标准正交矩阵,所以有逆等于转置,可得
R = Q T ∗ A R = Q^T*A R=QT∗A
3.2.4 QR分解的用途
3.2.4.1 拆分标准正交基
3.2.4.2 提高最小二乘解的精度
A X = b AX = b AX=b
A T ∗ A ∗ X = A T ∗ b A^T*A*X = A^T*b AT∗A∗X=AT∗b
X = ( A T ∗ A ) − 1 ∗ A T ∗ b X=(A^T*A)^{-1}*A^T*b X=(AT∗A)−1∗AT∗b
X = ( R T ∗ Q T ∗ Q ∗ R ) − 1 ∗ R T ∗ Q T ∗ b X=(R^T*Q^T*Q*R)^{-1}*R^T*Q^T*b X=(RT∗QT∗Q∗R)−1∗RT∗QT∗b
X = R − 1 ∗ Q T ∗ b X = R^{-1}*Q^T*b X=R−1∗QT∗b
可
得
R
X
=
Q
T
∗
b
可得 RX = Q^T*b
可得RX=QT∗b
因为R是一个上三角矩阵,乘以X可以得到一个方便求解的线性方程,而右边没有了求逆矩阵的过程,求逆矩阵的过程中,如果有小数发生约简,会引入误差,而不计算矩阵的逆,既能够提高运算速度,也能够提高运算精度。
3.3 对角分解
3.3.1 含义
对角分解是基于特征值和特征向量的矩阵分解
我们知道,特征值具有这样的性质
A
∗
v
1
=
λ
1
∗
v
1
A*v_1 = λ_1*v1
A∗v1=λ1∗v1
v1是矩阵A的特征向量,λ1是矩阵A的特征值。如果有矩阵S是矩阵A的特征向量的合集
A
∗
S
=
A
∗
{
v
1
.
.
.
v
n
}
=
{
λ
1
∗
v
1
.
.
.
λ
n
∗
v
n
}
=
S
∗
λ
A*S = A*\left\{\begin{matrix}v1& ...&vn \end{matrix}\right\} =\left\{\begin{matrix}λ1*v1& ...&λn*vn \end{matrix}\right\}=S*λ
A∗S=A∗{v1...vn}={λ1∗v1...λn∗vn}=S∗λ
其 中 λ = { λ 1 . . . 0 . . . λ r . . . 0 . . . λ n } 其中λ = \left\{\begin{matrix}λ1& ...&0\\...&λr&...\\0&...&λn \end{matrix}\right\} 其中λ=⎩⎨⎧λ1...0...λr...0...λn⎭⎬⎫
可得
A
=
S
−
1
∗
λ
∗
S
A = S^{-1}*λ*S
A=S−1∗λ∗S
3.3.2 分解条件
可以看出来,只有A有n个线性无关的特征向量的时候,才能对角化,如果有n个不同的特征值,必定有n个线性无关的特征向量,但是没有n个不同的特征值,不一定不能进行对角化分解
3.3.3 分解方法
分解方法就是,只要能够求得特征值和特征向量即可构造矩阵S和λ
先求特征值
A
∗
v
=
λ
∗
v
A*v=λ*v
A∗v=λ∗v
( A − λ ∗ I ) ∗ v = 0 (A-λ*I)*v=0 (A−λ∗I)∗v=0
求
d
e
t
∣
A
−
λ
∗
I
∣
=
0
即
可
解
得
特
征
值
求det|A-λ*I|=0即可解得特征值
求det∣A−λ∗I∣=0即可解得特征值
再求特征向量
求
得
的
特
征
值
代
入
(
A
−
λ
∗
I
)
∗
v
=
0
求得的特征值代入(A-λ*I)*v=0
求得的特征值代入(A−λ∗I)∗v=0
求解其零空间即可获得特征向量。如果λ是重根,就看看重根能否在零空间内得到足够的特征向量,否则不能对角化
有了特征值和特征向量即可实现对角化
3.3.4 对角分解的应用
对焦化应用在特征值部分详述,这里概况说明一下
- 求A的幂次
- 求差分方程
- 求马尔科夫矩阵
- 求系统稳态问题
- 微分方程的解耦与求解
- 相似矩阵
3.4 谱分解
3.4.1 含义
谱分解又叫做对称矩阵的对角化,也就是说,必须是能进行对角化的对称矩阵,才能进行谱分解。
根
据
对
角
化
A
=
S
∗
λ
∗
S
−
1
根据对角化 A = S*λ*S^{-1}
根据对角化A=S∗λ∗S−1
因为A是对称矩阵,有A=A^T
A
T
=
(
S
−
1
)
T
∗
λ
T
∗
S
T
=
S
∗
λ
∗
S
−
1
A^T = (S^{-1})^T*λ^T*S^T=S*λ*S^{-1}
AT=(S−1)T∗λT∗ST=S∗λ∗S−1
所以有S-1=ST
可知S必定是一个标准正交阵,原对角分解可化为
A
=
Q
∗
∑
∗
Q
T
A = Q*∑*Q^T
A=Q∗∑∗QT
3.4.2 分解条件
谱分解的条件是矩阵A必须是能进行对角化的对称矩阵
3.4.3 分解方法
分解方法与对角化是一样的,都是先求特征值,再求特征向量,最后求得矩阵Q和∑。因为Q是标准正交阵,最后不需要求逆,只要转置就好,计算量更加的小
3.4.4 谱分解的其他意义
如果把谱分解式子乘开,可得
A
=
λ
1
∗
v
1
∗
v
1
T
+
.
.
.
.
+
λ
n
∗
v
n
∗
v
n
T
A = λ1*v1*v1^T+....+λn*vn*vn^T
A=λ1∗v1∗v1T+....+λn∗vn∗vnT
因为vi都是标准正交基,所以A可以看做是vi的投影矩阵的线性组合
3.4.4 谱分解的应用
谱分解的主要应用在坐标变换上,能够把二次型曲线通过谱分解变换到标准位置,比如椭圆,可以把长轴和短轴变换到坐标轴上来,能够使得计算更加方便。在二次型中,得到的特征向量方向就是二次型的极值存在的方向,比如椭圆的长轴和短轴方向。而特征值标准二次型的极值,比如椭圆的长轴和短轴大小。
下面介绍如何通过谱分解,把二次型变换到标准位置。假设二次型为X^T*A*X
首先通过变量代换,令Y = p*X,p是标准正交基矩阵,也就是A的特征向量矩阵,X = pT*Y可得
X
T
∗
A
∗
X
=
Y
T
∗
P
∗
A
∗
P
T
∗
Y
=
Y
T
∗
∑
∗
Y
X^T*A*X = Y^T*P*A*P^T*Y = Y^T*∑*Y
XT∗A∗X=YT∗P∗A∗PT∗Y=YT∗∑∗Y
我们看出,通过谱分解代换,可以将原来的二次型变换成了一个没有交叉相乘项的二次型,也就是特征值矩阵。
3.5 奇异值分解
3.5.1 奇异值分解的含义
奇异值分解来源于如下的向量变换,将行空间向量v变换为列空间向量u,其中σ叫做奇异值
A
∗
V
=
σ
∗
u
A*V = σ*u
A∗V=σ∗u
矩阵形式为
A
=
U
∗
∑
∗
V
T
A = U*∑*V^T
A=U∗∑∗VT
奇异值分解实际上就是将矩阵A分解为两个正交矩阵U、V和一个对角阵∑的过程。如果A是mxn的,那么U是mxm的,∑是mxn的,V是nxn的
3.5.2 奇异值分解的条件
任何矩阵都可以做奇异值分解
3.5.3 奇异值分解的方法
3.5.3.1 法1
第一种方法是分别求AT*A和A*A^T的特征向量,因为
A
T
∗
A
=
V
∗
(
∑
)
2
∗
V
T
A^T*A = V*(∑)^2*V^T
AT∗A=V∗(∑)2∗VT
A
∗
A
T
=
U
∗
(
∑
)
2
∗
U
T
A*A^T = U*(∑)^2*U^T
A∗AT=U∗(∑)2∗UT
同时可知A的奇异值就是AT*A的特征值开根号
3.5.3.2 法2
第二种方法是利用定义求U
A
T
∗
A
=
V
∗
(
∑
)
2
∗
V
T
A^T*A = V*(∑)^2*V^T
AT∗A=V∗(∑)2∗VT
上式可以求得特征向量v和奇异值σ
A
∗
v
=
σ
∗
u
A*v = σ*u
A∗v=σ∗u
u = A ∗ V ∣ ∣ σ ∣ ∣ u = \frac{A*V}{||σ||} u=∣∣σ∣∣A∗V
3.5.4 长方形矩阵的奇异值分解
3.5.4.1 m>n型
m>n型的矩阵是细长的,因为左奇异矩阵U必须是m*m的,但是特征值至多有n个,其余不足的应该利用正交性质 u1*u2 = 0,也就是解uT*x=0,从左零空间里面获得基向量,同时注意应该做施密特正交化得到标准正交向量
3.5.4.2 n>n型
n>m型矩阵是矮胖的,因为右奇异矩阵V必须是n*n的,而特征值至多有m个,不足以获得足够的v向量,其余的应该利用正交特征,利用 A*X = 0,从零空间里面补充基向量,同时也应该做施密特正交化变成标准正交矩阵
3.5.5 奇异值分解深度剖析
这里来分析一下v向量和u向量的组成成分
A
∗
v
=
u
A*v = u
A∗v=u
通过上式,我们知道,A的重新线性组合必然也还在其列空间内,所以,向量u应该属于A的列空间,而其余一部分u必须与u1等向量正交,与列空间正交的向量位于左零空间中,所以左奇异矩阵的向量来源为列空间和左零空间,正好列空间与左零空间基向量的和为m
A
∗
v
r
+
1
=
0
A*v_{r+1}=0
A∗vr+1=0
因为并不是所有的奇异值都是非零值,当大于标号r以后的奇异值都是零值。所以,我们得到了上面的式子,可以说明,向量v的一部分成分为A的零空间。而另外一部分v与向量vr+1等正交,零空间的正交向量位于行空间中,所以v实际上来源为零空间和行空间的基向量,正好零空间和行空间的基向量和为n
3.5.6 奇异值分解的应用
3.5.6.1 误差估算
如果最大的奇异值和最小的奇异值差距过大,那么有微小误差引入会使得系统有较大的误差
3.5.6.2 分解得四个子空间的基向量
3.5.6.3 估计A的秩
A的秩基本上就是非零奇异值的个数
4. 矩阵的逆
4.1 什么是矩阵的逆
因为矩阵相当于一种线性变换,利用矩阵A可以把向量v变成另外一种状态,但是我们也希望能够从v的另外一种状态还原回来,这个时候就有了逆矩阵。逆矩阵是用于抵消原来影响而产生的,具有特性
A
−
1
∗
A
=
I
A^{-1}*A = I
A−1∗A=I
A ∗ A − 1 = I A*A^{-1} = I A∗A−1=I
4.2 为什么会有不可逆
不可逆的矩阵其秩一定为0,也就是列向量之间线性相关。假设某个2x2的矩阵A,则两个列向量必然是倍数关系,对呈倍数关系的向量不论怎么组合,最终得到的还是倍数关系,不可能得到单位向量I,也就说,不存在某种线性变换让A矩阵变成I,那么自然不存在A-1,也有了不可逆矩阵A
4.3 逆矩阵的求解方法
4.3.1 矩阵解法
- 方程式解法
设矩阵A*B = I,假设B的列向量为v1,…,vn,那么就有
A
∗
v
1
=
[
1....0
]
T
A*v1 = [1....0]^T
A∗v1=[1....0]T
A
∗
v
2
=
[
01...0
]
T
A*v2 = [0 1...0]^T
A∗v2=[01...0]T
即构成了方程式解法,太复杂,不推荐
- 高斯-若尔当消元法(首选)
P ∗ { A I } = { I P ′ } P*\left\{ \begin{matrix} A&I \end{matrix}\right\}=\left\{ \begin{matrix} I&P' \end{matrix}\right\} P∗{AI}={IP′}
则 必 有 P ∗ A = I 和 P ′ = A − 1 则必有 P*A=I和P' = A^{-1} 则必有P∗A=I和P′=A−1
- 逆矩阵乘法公式
( A ∗ B ) − 1 = B − 1 ∗ A − 1 (A*B)^{-1} = B^{-1}*A^{-1} (A∗B)−1=B−1∗A−1
( λ A ) − 1 = A − 1 λ (λA)^{-1} = \frac{A^{-1}}{λ} (λA)−1=λA−1
4.3.2 行列式解法-余子式法
A − 1 = C T d e t A A^{-1} = \frac{C^T}{det{A}} A−1=detACT
c是余子式
4.3.3 微积分解法-泰勒展开
(
I
−
A
t
)
−
1
=
I
+
A
t
+
.
.
.
.
+
(
A
t
)
n
(I-At)^{-1}= I + At+....+(At)^n
(I−At)−1=I+At+....+(At)n
其中t是A的特征向量,如果特征值小于1,该值收敛,结果约等于I+At
4.4 左逆右逆和伪逆
4.4.1 左逆
(
(
A
T
∗
A
)
−
1
∗
A
T
)
∗
A
=
I
((A^T*A)^{-1}*A^T)*A = I
((AT∗A)−1∗AT)∗A=I
所以(AT*A)-1*AT是A的左逆,适用于r=m且m< n的情况
4.4.2 右逆
A
∗
(
A
T
∗
(
A
∗
A
T
)
−
1
)
=
I
A*(A^T*(A*A^T)^{-1})=I
A∗(AT∗(A∗AT)−1)=I
所以A的右逆是AT*(A*AT)-1,适用于r = n且 n< m的情况
4.4.3 伪逆
如果r同时小于m和n,就出现了伪逆,伪逆是抛弃了零空间和左零空间之间的转换,仅仅保留了行空间和列空间之间的变换,将向量从列空间变换会行空间而产生的,一般与奇异值分解有关系
A
=
{
U
r
U
m
−
r
}
∗
{
D
0
0
0
}
∗
{
V
r
T
V
n
−
r
T
}
A = \left\{ \begin{matrix} U_r&U_{m-r} \end{matrix}\right\}*\left\{ \begin{matrix} D&0\\0&0 \end{matrix}\right\}*\left\{ \begin{matrix} V^T_r\\V^T_{n-r} \end{matrix}\right\}
A={UrUm−r}∗{D000}∗{VrTVn−rT}
如果仅仅保留非零的奇异值
A
=
U
r
∗
D
∗
V
r
T
A = U_r*D*V_r^T
A=Ur∗D∗VrT
伪逆为
A
+
=
V
r
∗
D
−
1
∗
U
r
T
A^+ = V_r*D^{-1}*U_r^T
A+=Vr∗D−1∗UrT
5.矩阵的秩
5.1 定义
矩阵的秩就是矩阵主元的个数
5.2 求法
把矩阵化为阶梯式,有几个主元,矩阵的秩就是几
5.3 矩阵的秩的意义
5.3.1 矩阵的秩与向量空间
列主元表示列空间有多少向量是线性无关的,行主元表示行空间有多少向量是线性无关的
5.3.2 矩阵的秩与维度
秩 = 列空间中线性无关向量的个数=基的个数 = 列向量空间的维度
n-r = 零空间的基的个数=零空间的维度 = 自由变量的个数
5.3.3 矩阵的秩与方程式的解
横着的主元个数标志着AX=b的解的情况,如果横着的主元个数等于n,说明没有自由变量,如果有解的话,一定是唯一解,所以,横着的主元个数是方程式唯一性的标志。
竖着的主元个数,标志着列空间的维度,如果竖着的主元个数=m,说明列空间维度是m,必定能够组合出任意一个向量b,所以竖着的主元是方程式解存在性的标志
所以有这样的结论
- r = m = n 任意向量都有解,解是唯一解
- r = m < n 任意向量必定有解,而且是无穷多解
- r = n < m 不一定每个向量都有解,如果有解,一定是唯一解
- r<m && r<n 要么无解,要么无穷多解