MIT公开课18.06 Gilbert Strang 线性代数 笔记2 - 最小二乘法,行列式和特征值
文章目录
第14讲:正交向量与子空间
正交向量
对于向量 x , y x, y x,y,当 x T ⋅ y = 0 x^T \cdot y=0 xT⋅y=0即 x 1 y 1 + x 2 y x + ⋯ + x n y n = 0 x_1y_1+x_2y_x+\cdots+x_ny_n=0 x1y1+x2yx+⋯+xnyn=0时,有向量 x , y x, y x,y正交(vector orthogonal)。
毕达哥拉斯定理(Pythagorean theorem)中提到,直角三角形的三条边满足:
∥ x → ∥ 2 + ∥ y → ∥ 2 = ∥ x + y → ∥ 2 x T x + y T y = ( x + y ) T ( x + y ) x T x + y T y = x T x + y T y + x T y + y T x 0 = x T y + y T x 对 于 向 量 点 乘 , x T y = y T x 0 = 2 x T y x T y = 0 \begin{aligned} \left\|\overrightarrow{x}\right\|^2+\left\|\overrightarrow{y}\right\|^2 &= \left\|\overrightarrow{x+y}\right\|^2 \\ x^Tx+y^Ty &= (x+y)^T(x+y) \\ x^Tx+y^Ty &= x^Tx+y^Ty+x^Ty+y^Tx \\ 0 &= x^Ty+y^Tx \qquad 对于向量点乘,x^Ty=y^Tx \\ 0 &= 2x^Ty \\ x^Ty &=0 \end{aligned} ∥∥∥x ∥∥∥2+∥∥∥y ∥∥∥2xTx+yTyxTx+yTy00xTy=∥∥∥x+y ∥∥∥2=(x+y)T(x+y)=xTx+yTy+xTy+yTx=xTy+yTx对于向量点乘,xTy=yTx=2xTy=0
由此得出,两正交向量的点积为 0 0 0。另外, x , y x, y x,y可以为 0 0 0向量,由于 0 0 0向量与任意向量的点积均为零,所以 0 0 0向量与任意向量正交。
举个例子:
x
=
[
1
2
3
]
,
y
=
[
2
−
1
0
]
,
x
+
y
=
[
3
1
3
]
x=\begin{bmatrix}1\\2\\3\end{bmatrix}, y=\begin{bmatrix}2\\-1\\0\end{bmatrix}, x+y=\begin{bmatrix}3\\1\\3\end{bmatrix}
x=⎣⎡123⎦⎤,y=⎣⎡2−10⎦⎤,x+y=⎣⎡313⎦⎤,有
∥
x
→
∥
2
=
14
,
∥
y
→
∥
2
=
5
,
∥
x
+
y
→
∥
2
=
19
\left\| \overrightarrow{x} \right\|^2=14, \left\| \overrightarrow{y} \right\|^2=5, \left\| \overrightarrow{x+y} \right\|^2=19
∥∥∥x
∥∥∥2=14,∥∥∥y
∥∥∥2=5,∥∥∥x+y
∥∥∥2=19,而
x
T
y
=
1
×
2
+
2
×
(
−
1
)
+
3
×
0
=
0
x^Ty=1\times2+2\times (-1)+3\times0=0
xTy=1×2+2×(−1)+3×0=0。
子空间正交
定义:两空间正交意味着在空间 A A A中的所有向量都和在空间 B B B中的所有向量正交
推论:如果两个空间相交于一个非零向量,则两个空间不可能正交
因为一个非零向量不可能与其本身正交
行空间正交于零空间
证明:
零空间是
A
x
=
0
Ax=0
Ax=0的解,即
x
x
x若在零空间,则
A
x
Ax
Ax为零向量;
而对于行空间,有
[
r
o
w
1
r
o
w
2
⋮
r
o
w
m
]
[
x
]
=
[
0
0
⋮
0
]
\begin{bmatrix}row_1\\row_2\\ \vdots \\row_m\end{bmatrix} \Bigg[x\Bigg]= \begin{bmatrix}0\\0\\ \vdots\\ 0\end{bmatrix}
⎣⎢⎢⎢⎡row1row2⋮rowm⎦⎥⎥⎥⎤[x]=⎣⎢⎢⎢⎡00⋮0⎦⎥⎥⎥⎤,可以看出:
[
r
o
w
1
]
[
x
]
=
0
[
r
o
w
2
]
[
x
]
=
0
⋮
[
r
o
w
m
]
[
x
]
=
0
\begin{bmatrix}row_1\end{bmatrix}\Bigg[x\Bigg]=0 \\ \begin{bmatrix}row_2\end{bmatrix}\Bigg[x\Bigg]=0 \\ \vdots \\ \begin{bmatrix}row_m\end{bmatrix}\Bigg[x\Bigg]=0 \\
[row1][x]=0[row2][x]=0⋮[rowm][x]=0
所以这个等式告诉我们, x x x同 A A A中的所有行正交;
接下来还验证
x
x
x是否与
A
A
A中各行的线性组合正交,
{
c
1
(
r
o
w
1
)
T
x
=
0
c
2
(
r
o
w
2
)
T
x
=
0
⋮
c
n
(
r
o
w
m
)
T
x
=
0
\begin{cases} c_1(row_1)^Tx=0 \\ c_2(row_2)^Tx=0 \\ \vdots \\ c_n(row_m)^Tx=0 \\ \end{cases}
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧c1(row1)Tx=0c2(row2)Tx=0⋮cn(rowm)Tx=0
各式相加得
(
c
1
r
o
w
1
+
c
2
r
o
w
2
+
⋯
+
c
n
r
o
w
m
)
T
x
=
0
(c_1row_1+c_2row_2+\cdots+c_nrow_m)^Tx=0
(c1row1+c2row2+⋯+cnrowm)Tx=0,得证。
我们可以说,行空间与零空间将 R n \mathbb{R}^n Rn分割为两个正交的子空间,同样的,列空间与左零空间将 R m \mathbb{R}^m Rm分割为两个正交的子空间。
举例, A = [ 1 2 5 2 4 10 ] A=\begin{bmatrix}1&2&5\\2&4&10\end{bmatrix} A=[1224510],则可知 m = 2 , n = 3 , r a n k ( A ) = 1 , d i m N ( A ) = 2 m=2, n=3, rank(A)=1, dim N(A)=2 m=2,n=3,rank(A)=1,dimN(A)=2。
有 A x = [ 1 2 5 2 4 10 ] [ x 1 x 2 x 3 ] = [ 0 0 ] Ax=\begin{bmatrix}1&2&5\\2&4&10\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix} Ax=[1224510]⎣⎡x1x2x3⎦⎤=[00],解得零空间的一组基 x 1 = [ − 2 1 0 ] x 2 = [ − 5 0 1 ] x_1=\begin{bmatrix}-2\\1\\0\end{bmatrix}\quad x_2=\begin{bmatrix}-5\\0\\1\end{bmatrix} x1=⎣⎡−210⎦⎤x2=⎣⎡−501⎦⎤。
而行空间的一组基为 r = [ 1 2 5 ] r=\begin{bmatrix}1\\2\\5\end{bmatrix} r=⎣⎡125⎦⎤,零空间与行空间正交,在本例中行空间也是零空间的法向量。
在上例中,我们发现行空间与零空间的维度之和 = 整个空间的维度:
行空间与零空间为
n
n
n维空间里的正交补(orthogonal complement),即零空间包含了所有与行空间正交的向量
同理列空间与左零空间为
m
m
m维空间里的正交补,即左零空间包含了所有与列空间正交的向量。
当 A x = b Ax=b Ax=b无解时,如何去“解”这个方程组
无解:即 b b b不在 A A A的列空间中
对于长方矩阵, m > n m>n m>n,无解的情况很常见:如测量卫星的位置,测了一千次,得到了一千个方程,但实际上只需要几个参数便可确定其位置。
对于这种矩阵, A x = b Ax=b Ax=b中经常混入一些包含“坏数据”的方程,虽然可以通过筛选的方法去掉一些我们不希望看到的方程,但是这并不是一个稳妥的方法。
于是,我们引入一个重要的矩阵: A T A A^TA ATA。这是一个 n × m n \times m n×m矩阵点乘 m × n m \times n m×n矩阵,其结果是一个 n × n n \times n n×n矩阵,应该注意的是,这也是一个对称矩阵,证明如下:
( A T A ) T = A T ( A T ) T = A T A (A^TA)^T=A^T(A^T)^T=A^TA (ATA)T=AT(AT)T=ATA
这一章节的核心就是 A T A x = A T b A^TAx=A^Tb ATAx=ATb,这个变换可以将“坏方程组”变为“好方程组”。
举例,有 [ 1 1 1 2 1 5 ] [ x 1 x 2 ] = [ b 1 b 2 b 3 ] \begin{bmatrix}1&1\\1&2\\1&5\end{bmatrix}\begin{bmatrix}x_1\\x_2\end{bmatrix}=\begin{bmatrix}b_1\\b_2\\b_3\end{bmatrix} ⎣⎡111125⎦⎤[x1x2]=⎣⎡b1b2b3⎦⎤,只有当 [ b 1 b 2 b 3 ] \begin{bmatrix}b_1\\b_2\\b_3\end{bmatrix} ⎣⎡b1b2b3⎦⎤在矩阵的列空间时,方程才有解。
A
T
A
A^TA
ATA:
[
1
1
1
1
2
5
]
[
1
1
1
2
1
5
]
=
[
3
8
8
30
]
\begin{bmatrix}1&1&1\\1&2&5\end{bmatrix}\begin{bmatrix}1&1\\1&2\\1&5\end{bmatrix}=\begin{bmatrix}3&8\\8&30\end{bmatrix}
[111215]⎣⎡111125⎦⎤=[38830],可以看出此例中
A
T
A
A^TA
ATA是可逆的,于是列空间就是整个
n
n
n维空间,方程总是有解。
然而并非所有
A
T
A
A^TA
ATA都是可逆的,如
[
1
1
1
3
3
3
]
[
1
3
1
3
1
3
]
=
[
3
9
9
27
]
\begin{bmatrix}1&1&1\\3&3&3\end{bmatrix}\begin{bmatrix}1&3\\1&3\\1&3\end{bmatrix}=\begin{bmatrix}3&9\\9&27\end{bmatrix}
[131313]⎣⎡111333⎦⎤=[39927](注意到这是两个秩一矩阵相乘,得到的矩阵的秩不会大于一)
先给出结论:
N ( A T A ) = N ( A ) r a n k ( A T A ) = r a n k ( A ) A T A 可 逆 当 且 仅 当 N ( A ) 为 零 向 量 , 即 A 的 列 线 性 无 关 N(A^TA)=N(A)\\ rank(A^TA)=rank(A)\\ A^TA可逆当且仅当N(A)为零向量,即A的列线性无关\\ N(ATA)=N(A)rank(ATA)=rank(A)ATA可逆当且仅当N(A)为零向量,即A的列线性无关
下一讲涉及这些结论的证明和投影,很重要。
第15讲:子空间投影
背景: A x = b Ax=b Ax=b无解时,求它的“解”
故事还要从 A x = b Ax=b Ax=b无解的时候说起,当其无解的时候,我们只能求出最接近的那个解。
我们想要的是“最优解”,即这个解对于原方程偏差
e
r
r
o
r
error
error 最小
A
x
Ax
Ax总是在
A
A
A的列空间中,而
b
b
b却不一定,这是问题所在,所以我们可以将
b
b
b变为
A
A
A的列空间中最接近的那个向量,即当我们取
b
b
b在列空间中的投影
p
p
p时,求解
A
x
^
=
p
A\hat x=p
Ax^=p,此时的解的
e
r
r
o
r
error
error最小,
x
^
\hat{x}
x^不再是那个不存在的
x
x
x,而是最接近的解
简单二维上的投影
从
R
2
\mathbb{R}^2
R2空间讲起,有向量
a
,
b
a, b
a,b,做
b
b
b在
a
a
a上的投影
p
p
p,如图:
从图中我们知道,向量 e e e就像是向量 b , p b, p b,p之间的误差, e = b − p , e ⊥ p e=b-p, e \bot p e=b−p,e⊥p。 p p p在 a a a上,有 p = x a p=xa p=xa。
所以有 a T e = a T ( b − p ) = a T ( b − x a ) = 0 a^Te=a^T(b-p)=a^T(b-xa)=0 aTe=aT(b−p)=aT(b−xa)=0。关于正交的最重要的方程:
a T ( b − x a ) = 0 x a T a = a T b x = a T b a T a p = a a T b a T a a^T(b-xa)=0 \\ xa^Ta=a^Tb \\ x=\frac{a^Tb}{a^Ta} \\ p=a\frac{a^Tb}{a^Ta} aT(b−xa)=0xaTa=aTbx=aTaaTbp=aaTaaTb
从上面的式子可以看出,如果将 b b b变为 2 b 2b 2b则 p p p也会翻倍,如果将 a a a变为 2 a 2a 2a则 p p p不变(联想图中的意思)
设投影矩阵为 P P P,则可以说投影矩阵作用与某个向量后,得到其投影向量 p p p, p = P b p=Pb p=Pb。
易得出
P
=
a
a
T
a
T
a
P=\frac{aa^T}{a^Ta}
P=aTaaaT
a
T
a
a^Ta
aTa为一个数,
a
a
T
aa^T
aaT列乘以行为一个矩阵,若
a
a
a是
n
n
n维列向量,则
P
P
P是一个
n
×
n
n \times n
n×n矩阵。
投影矩阵 P P P的列空间 C ( P ) C(P) C(P)是一条和 a a a重合的直线, r a n k ( P ) = 1 rank(P)=1 rank(P)=1(一列乘以一行: a a T aa^T aaT,矩阵(这里为 a a a)乘以任意向量(矩阵可看作向量组,这里把 a T a^T aT看作一向量组)都是其列空间的重新线性组合,因此 a a a是该矩阵的基)。
投影矩阵的性质:
- P = P T P=P^T P=PT,投影矩阵是一个对称矩阵。
- 如果对一个向量做两次投影,即 P P b PPb PPb,则其结果仍然与 P b Pb Pb相同,也就是 P 2 = P P^2=P P2=P。
记住这三个公式:
x
=
a
T
b
a
T
a
p
=
a
x
=
a
a
T
b
a
T
a
P
=
a
a
T
a
T
a
x=\frac{a^Tb}{a^Ta} \\ p=ax=a\frac{a^Tb}{a^Ta} \\ P=\frac{aa^T}{a^Ta}
x=aTaaTbp=ax=aaTaaTbP=aTaaaT
推广到高维
现在来看
R
3
\mathbb{R}^3
R3中的情形,将向量
b
b
b投影在平面
A
A
A上。同样的,
p
p
p是向量
b
b
b在平面
A
A
A上的投影,
e
e
e是垂直于平面
A
A
A的向量,即
b
b
b在平面
A
A
A法方向的分量。
设平面
A
A
A的一组基为
a
1
,
a
2
a_1, a_2
a1,a2,则投影向量可以表示为基的线性组合
p
=
x
1
^
a
1
+
x
2
^
a
2
p=\hat{x_1}a_1+\hat{x_2}a_2
p=x1^a1+x2^a2,我们更倾向于写作
p
=
A
x
^
p=A\hat{x}
p=Ax^,这里如果我们求出
x
^
\hat{x}
x^,则该解就是无解方程组最近似的解。
现在问题的关键在于找
e
=
b
−
A
x
^
e=b-A\hat{x}
e=b−Ax^,使它垂直于平面,因此我们得到两个方程
{
a
1
T
(
b
−
A
x
^
)
=
0
a
2
T
(
b
−
A
x
^
)
=
0
\begin{cases}a_1^T(b-A\hat{x})=0\\ a_2^T(b-A\hat{x})=0\end{cases}
{a1T(b−Ax^)=0a2T(b−Ax^)=0,将方程组写成矩阵形式
[
a
1
T
a
2
T
]
(
b
−
A
x
^
)
=
[
0
0
]
\begin{bmatrix}a_1^T\\a_2^T\end{bmatrix} (b-A\hat{x})= \begin{bmatrix}0\\0\end{bmatrix}
[a1Ta2T](b−Ax^)=[00],即
A
T
(
b
−
A
x
^
)
=
0
A^T(b-A\hat{x})=0
AT(b−Ax^)=0。
比较该方程与
R
2
\mathbb{R}^2
R2中的投影方程,发现只是向量
a
a
a变为矩阵
A
A
A而已,本质上就是
A
T
e
=
0
A^Te=0
ATe=0,所以,
e
e
e在
A
T
A^T
AT的零空间中(
e
∈
N
(
A
T
)
e\in N(A^T)
e∈N(AT))。
从前一讲我们知道,左零空间与列空间正交补,有
e
⊥
C
(
A
)
e\bot C(A)
e⊥C(A),与我们设想的一致。
再化简方程得 A T A x ^ = A T b A^TA \hat x=A^Tb ATAx^=ATb,比较在 R 2 \mathbb{R}^2 R2中的情形, a T a a^Ta aTa是一个数字而 A T A A^TA ATA是一个 n n n阶方阵,解出的 x x x可以看做两个数字的比值。现在在 R 3 \mathbb{R}^3 R3中,我们需要再次考虑:什么是 x ^ \hat{x} x^?投影是什么?投影矩阵又是什么?
- 第一个问题: x ^ = ( A T A ) − 1 A T b \hat x=(A^TA)^{-1}A^Tb x^=(ATA)−1ATb;
- 第二个问题: p = A x ^ = A ( A T A ) − 1 A T ‾ b p=A\hat x=\underline{A(A^TA)^{-1}A^T}b p=Ax^=A(ATA)−1ATb,回忆在 R 2 \mathbb{R}^2 R2中的情形,下划线部分就是原来的 a a T a T a \frac{aa^T}{a^Ta} aTaaaT;
- 第三个问题: p = P b p=Pb p=Pb,易得出投影矩阵就是下划线部分 P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)−1AT。
这里还需要注意一个问题,
P
=
A
(
A
T
A
)
−
1
A
T
P=A(A^TA)^{-1}A^T
P=A(ATA)−1AT是不能继续化简为
P
=
A
A
−
1
(
A
T
)
−
1
A
T
=
I
P=AA^{-1}(A^T)^{-1}A^T=I
P=AA−1(AT)−1AT=I的,因为这里的
A
A
A并不是一个可逆方阵。
也可以换一种思路,如果
A
A
A是一个
n
n
n阶可逆方阵,则
A
A
A的列空间是整个
R
n
\mathbb{R}^n
Rn空间,于是
b
b
b在
R
n
\mathbb{R}^n
Rn上的投影矩阵确实变为了
I
I
I,因为
b
b
b已经在空间中了,其投影不再改变。
再来看投影矩阵 P P P的性质:
-
P
=
P
T
P=P^T
P=PT:有
[ A ( A T A ) − 1 A T ] T = A [ ( A T A ) − 1 ] T A T \left[A(A^TA)^{-1}A^T\right]^T=A\left[(A^TA)^{-1}\right]^TA^T [A(ATA)−1AT]T=A[(ATA)−1]TAT,而 ( A T A ) (A^TA) (ATA)是对称的,所以其逆也是对称的,所以有 A ( ( A T A ) − 1 ) T A T = A ( A T A ) − 1 A T A((A^TA)^{-1})^TA^T=A(A^TA)^{-1}A^T A((ATA)−1)TAT=A(ATA)−1AT,得证。 -
P
2
=
P
P^2=P
P2=P:有
[ A ( A T A ) − 1 A T ] [ A ( A T A ) − 1 A T ] = A ( A T A ) − 1 [ ( A T A ) ( A T A ) − 1 ] A T = A ( A T A ) − 1 A T \left[A(A^TA)^{-1}A^T\right]\left[A(A^TA)^{-1}A^T\right]=A(A^TA)^{-1}\left[(A^TA)(A^TA)^{-1}\right]A^T=A(A^TA)^{-1}A^T [A(ATA)−1AT][A(ATA)−1AT]=A(ATA)−1[(ATA)(ATA)−1]AT=A(ATA)−1AT,得证。
应用举例:最小二乘法拟合直线
我们需要找到距离图中三个点
(
1
,
1
)
,
(
2
,
2
)
,
(
3
,
2
)
(1, 1), (2, 2), (3, 2)
(1,1),(2,2),(3,2) 偏差最小的直线:
b
=
C
+
D
t
b=C+Dt
b=C+Dt。
根据条件可以得到方程组
{
C
+
D
=
1
C
+
2
D
=
2
C
+
3
D
=
2
\begin{cases} C+D&=1 \\ C+2D&=2 \\ C+3D&=2 \\ \end{cases}
⎩⎪⎨⎪⎧C+DC+2DC+3D=1=2=2,写作矩阵形式
[
1
1
1
2
1
3
]
[
C
D
]
=
[
1
2
2
]
\begin{bmatrix}1&1 \\1&2 \\1&3\\\end{bmatrix}\begin{bmatrix}C\\D\\\end{bmatrix}=\begin{bmatrix}1\\2\\2\\\end{bmatrix}
⎣⎡111123⎦⎤[CD]=⎣⎡122⎦⎤,也就是我们的
A
x
=
b
Ax=b
Ax=b,很明显方程组无解。但是
A
T
A
x
^
=
A
T
b
A^TA\hat x=A^Tb
ATAx^=ATb有解(
A
T
A
A^TA
ATA和
A
T
b
A^Tb
ATb都是
A
T
A^T
AT的重新线性组合,所以在同一空间),于是我们将原是两边同时乘以
A
T
A^T
AT后得到的新方程组是有解的,
A
T
A
x
^
=
A
T
b
A^TA\hat x=A^Tb
ATAx^=ATb也是最小二乘法的核心方程。
下一讲将进行最小二乘法的验算。
总结
A x = b Ax=b Ax=b无解时,可求其近似解: x ^ = ( A T A ) − 1 A T b \hat x=(A^TA)^{-1}A^Tb x^=(ATA)−1ATb
b b b在 A A A的列空间上的投影 p p p: p = A x ^ = A ( A T A ) − 1 A T ‾ b p=A\hat x=\underline{A(A^TA)^{-1}A^T}b p=Ax^=A(ATA)−1ATb
投影矩阵 P P P: P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)−1AT, P = P T P=P^T P=PT, P 2 = P P^2=P P2=P
第16讲:投影矩阵和最小二乘
回顾上讲
上一讲中,我们知道了投影矩阵 P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)−1AT, P b Pb Pb将会把向量投影在 A A A的列空间中。
一般情况下, b b b将会有一个垂直于 A A A的分量,和一个在 A A A列空间中的分量,投影的作用就是去掉垂直分量而保留列空间中的分量。
举两个极端的例子:
- 如果 b ⊥ C ( A ) b\bot C(A) b⊥C(A),则 P b = 0 Pb=0 Pb=0。
- 如果 b ∈ C ( A ) b\in C(A) b∈C(A),则 P b = b Pb=b Pb=b;
在第一个极端情况中,如果 b ⊥ C ( A ) b\bot C(A) b⊥C(A)则有 b ∈ N ( A T ) b\in N(A^T) b∈N(AT),即 A T b = 0 A^Tb=0 ATb=0。则 p = P b = A ( A T A ) − 1 A T b = 0 p=Pb=A(A^TA)^{-1}A^Tb=0 p=Pb=A(ATA)−1ATb=0,得证。
在第二个极端情况中,如果 b ∈ C ( A ) b\in C(A) b∈C(A)则有 b = A x b=Ax b=Ax。带入投影矩阵 p = P b = A ( A T A ) − 1 A T A x = A x p=Pb=A(A^TA)^{-1}A^TAx=Ax p=Pb=A(ATA)−1ATAx=Ax,得证。
向量 b b b投影后,有 b = e + p , p = P b , e = ( I − P ) b b=e+p, p=Pb, e=(I-P)b b=e+p,p=Pb,e=(I−P)b,这里的 p p p是 b b b在 C ( A ) C(A) C(A)中的投影,而 e e e是 b b b在 N ( A T ) N(A^T) N(AT)中的投影。
最小二乘
问题描述
可以从两个图描述该问题
向量关系图
使
最优直线图
我们需要找到距离图中三个点
(
1
,
1
)
,
(
2
,
2
)
,
(
3
,
2
)
(1, 1), (2, 2), (3, 2)
(1,1),(2,2),(3,2) 偏差最小的直线:
y
=
C
+
D
t
y=C+Dt
y=C+Dt。
根据条件可以得到方程组
{
C
+
D
=
1
C
+
2
D
=
2
C
+
3
D
=
2
\begin{cases} C+D&=1 \\ C+2D&=2 \\ C+3D&=2 \\ \end{cases}
⎩⎪⎨⎪⎧C+DC+2DC+3D=1=2=2
写作矩阵形式:
[
1
1
1
2
1
3
]
[
C
D
]
=
[
1
2
2
]
\begin{bmatrix}1&1 \\1&2 \\1&3\\\end{bmatrix}\begin{bmatrix}C\\D\\\end{bmatrix}=\begin{bmatrix}1\\2\\2\\\end{bmatrix}
⎣⎡111123⎦⎤[CD]=⎣⎡122⎦⎤,也就是我们的
A
x
=
b
Ax=b
Ax=b,很明显方程组无解。
我们需要求一个最接近的解,使得误差 e 1 2 + e 2 2 + e 3 2 e_1^2+e_2^2+e_3^2 e12+e22+e32最小,找到拥有最小平方和的解(即最小二乘),即 ∥ A x − b ∥ 2 = ∥ e ∥ 2 \left\|Ax-b\right\|^2=\left\|e\right\|^2 ∥Ax−b∥2=∥e∥2最小。
此时向量
b
b
b变为在
A
A
A上的投影 向量
p
p
p:
p
=
[
p
1
p
2
p
3
]
p=\begin{bmatrix}p_1\\p_2\\p_3\end{bmatrix}\\
p=⎣⎡p1p2p3⎦⎤(在方程组有解的情况下,
A
x
−
b
=
0
Ax-b=0
Ax−b=0,即
b
b
b在
A
A
A的列空间中,误差
e
e
e为零)
我们现在做的运算也称作线性回归(linear regression),使用误差的平方和作为测量总误差的标准。
注:如果有另一个点,如 ( 0 , 100 ) (0, 100) (0,100),在本例中该点明显距离别的点很远,最小二乘将很容易被离群的点影响,通常使用最小二乘时会去掉明显离群的点。
求解
现在我们尝试解出 x ^ = [ C ^ D ^ ] \hat x=\begin{bmatrix}\hat C\\ \hat D\end{bmatrix} x^=[C^D^]与 p = [ p 1 p 2 p 3 ] p=\begin{bmatrix}p_1\\p_2\\p_3\end{bmatrix} p=⎣⎡p1p2p3⎦⎤。
A T A x ^ = A T b A T A = [ 3 6 6 14 ] A T b = [ 5 11 ] [ 3 6 6 14 ] [ C ^ D ^ ] = [ 5 11 ] A^TA\hat x=A^Tb\\ A^TA= \begin{bmatrix}3&6\\6&14\end{bmatrix}\qquad A^Tb= \begin{bmatrix}5\\11\end{bmatrix}\\ \begin{bmatrix}3&6\\6&14\end{bmatrix} \begin{bmatrix}\hat C\\\hat D\end{bmatrix}= \begin{bmatrix}5\\11\end{bmatrix}\\ ATAx^=ATbATA=[36614]ATb=[511][36614][C^D^]=[511]
写作方程形式为 { 3 C ^ + 16 D ^ = 5 6 C ^ + 14 D ^ = 11 \begin{cases}3\hat C+16\hat D&=5\\6\hat C+14\hat D&=11\\\end{cases} {3C^+16D^6C^+14D^=5=11,也称作正规方程组(normal equations)。
解方程得 C ^ = 2 3 , D ^ = 1 2 \hat C=\frac{2}{3}, \hat D=\frac{1}{2} C^=32,D^=21,则“最佳直线”为 y = 2 3 + 1 2 t y=\frac{2}{3}+\frac{1}{2}t y=32+21t
令 x = 1 , x = 2 , x = 3 x=1,x=2,x=3 x=1,x=2,x=3,解得 p 1 = 7 6 , p 2 = 5 3 , p 3 = 13 6 p_1=\frac{7}{6}, p_2=\frac{5}{3}, p_3=\frac{13}{6} p1=67,p2=35,p3=613
所以 e 1 = − 1 6 , e 2 = 1 3 , e 3 = − 1 6 e_1=-\frac{1}{6}, e_2=\frac{1}{3}, e_3=-\frac{1}{6} e1=−61,e2=31,e3=−61
我们得到 p = [ 7 6 5 3 13 6 ] , e = [ − 1 6 1 3 − 1 6 ] p=\begin{bmatrix}\frac{7}{6}\\\frac{5}{3}\\\frac{13}{6}\end{bmatrix}, e=\begin{bmatrix}-\frac{1}{6}\\\frac{1}{3}\\-\frac{1}{6}\end{bmatrix} p=⎣⎡6735613⎦⎤,e=⎣⎡−6131−61⎦⎤
向量关系
易看出 b = p + e b=p+e b=p+e,同时我们发现 p ⋅ e = 0 p\cdot e=0 p⋅e=0即 p ⊥ e p\bot e p⊥e。
误差向量 e e e不仅垂直于投影向量 p p p,它垂直于列空间,比如垂直于列空间的这两个基 [ 1 1 1 ] , [ 1 2 3 ] \begin{bmatrix}1\\1\\1\end{bmatrix}, \begin{bmatrix}1\\2\\3\end{bmatrix} ⎣⎡111⎦⎤,⎣⎡123⎦⎤。
对比向量关系图,结论一致。
微积分角度求解方案
回顾前面提到的“使得误差最小”的条件:
e
1
2
+
e
2
2
+
e
3
2
=
(
C
+
D
−
1
)
2
+
(
C
+
2
D
−
2
)
2
+
(
C
+
3
D
−
2
)
2
e_1^2+e_2^2+e_3^2=(C+D-1)^2+(C+2D-2)^2+(C+3D-2)^2
e12+e22+e32=(C+D−1)2+(C+2D−2)2+(C+3D−2)2,使该式取最小值
如果使用微积分方法,则需要对该式的两个变量
C
,
D
C, D
C,D分别求偏导数,再令求得的偏导式为零即可,正是我们刚才求得的正规方程组。(正规方程组中的第一个方程是对
C
C
C求偏导的结果,第二个方程式对
D
D
D求偏导的结果,无论使用哪一种方法都会得到上面的方程组)
证明 A T A A^TA ATA可逆
如果
A
A
A的各列线性无关,求证
A
T
A
A^TA
ATA是可逆矩阵。
根据第三讲的内容,要证
A
T
A
A^TA
ATA可逆,只要证明:若
A
T
A
x
=
0
A^TAx=0
ATAx=0,则
x
x
x只能是零向量
所以先假设
A
T
A
x
=
0
A^TAx=0
ATAx=0
两边同时乘以
x
T
x^T
xT有
x
T
A
T
A
x
=
0
x^TA^TAx=0
xTATAx=0
即
(
A
x
)
T
(
A
x
)
=
0
(Ax)^T(Ax)=0
(Ax)T(Ax)=0,一个矩阵乘其转置结果为零,则这个矩阵也必须为零(
(
A
x
)
T
(
A
x
)
(Ax)^T(Ax)
(Ax)T(Ax)相当于
A
x
Ax
Ax长度的平方)
则
A
x
=
0
Ax=0
Ax=0
结合题设中的“
A
A
A的各列线性无关”,可知
x
=
0
x=0
x=0
也就是
A
T
A
A^TA
ATA的零空间中有且只有零向量,得证。
特殊的线性无关
我们再来看一种线性无关的特殊情况:互相垂直的列向量一定是线性无关的。(排除零向量)
比如:
- [ 1 0 0 ] [ 0 1 0 ] [ 0 0 1 ] \begin{bmatrix}1\\0\\0\end{bmatrix}\begin{bmatrix}0\\1\\0\end{bmatrix}\begin{bmatrix}0\\0\\1\end{bmatrix} ⎣⎡100⎦⎤⎣⎡010⎦⎤⎣⎡001⎦⎤
- [ cos θ sin θ ] [ − sin θ cos θ ] \begin{bmatrix}\cos\theta\\\sin\theta\end{bmatrix}\begin{bmatrix}-\sin\theta\\\cos\theta\end{bmatrix} [cosθsinθ][−sinθcosθ]
这些正交单位向量称作标准正交向量组(orthonormal vectors)。
下一讲研究标准正交向量组。
第17讲:正交矩阵和Gram-Schmidt正交化法
标准正交矩阵
定义
定义标准正交向量(orthonormal):
q
i
T
q
j
=
{
0
i
≠
j
1
i
=
j
q_i^Tq_j=\begin{cases}0\quad i\neq j\\1\quad i=j\end{cases}
qiTqj={0i=j1i=j
两两正交,长度为1的向量组
我们将标准正交向量放入矩阵中,有
Q
=
[
q
1
q
2
⋯
q
n
]
Q=\Bigg[q_1 q_2 \cdots q_n\Bigg]
Q=[q1q2⋯qn]。
我们把
Q
Q
Q称为标准正交矩阵(orthonormal matrix),常常省略叫正交矩阵。
Q T Q Q^TQ QTQ
上一讲我们研究了 A T A A^TA ATA的特性,现在来观察 Q T Q = [ q 1 T q 2 T ⋮ q n T ] [ q 1 q 2 ⋯ q n ] Q^TQ=\begin{bmatrix} & q_1^T & \\ & q_2^T & \\ & \vdots & \\ & q_n^T & \end{bmatrix}\Bigg[q_1 q_2 \cdots q_n\Bigg] QTQ=⎣⎢⎢⎢⎡q1Tq2T⋮qnT⎦⎥⎥⎥⎤[q1q2⋯qn]
根据标准正交向量的定义, Q T Q = [ 1 0 ⋯ 0 0 1 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 1 ] = I Q^TQ=\begin{bmatrix}1&0&\cdots&0\\0&1&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&1\end{bmatrix}=I QTQ=⎣⎢⎢⎢⎡10⋮001⋮0⋯⋯⋱⋯00⋮1⎦⎥⎥⎥⎤=I
特别的,当 Q Q Q恰好是方阵时,由于正交性,易得 Q Q Q是可逆的,又 Q T Q = I Q^TQ=I QTQ=I,所以 Q T = Q − 1 Q^T=Q^{-1} QT=Q−1。
例子
- Q = [ 0 1 0 1 0 0 0 0 1 ] Q=\begin{bmatrix}0&1&0\\1&0&0\\0&0&1\end{bmatrix} Q=⎣⎡010100001⎦⎤,则 Q T = [ 0 1 0 0 0 1 1 0 0 ] Q^T=\begin{bmatrix}0&1&0\\0&0&1\\1&0&0\end{bmatrix} QT=⎣⎡001100010⎦⎤,易得 Q T Q = I Q^TQ=I QTQ=I。
- 使用上一讲的例子 Q = [ cos θ − sin θ sin θ cos θ ] Q=\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{bmatrix} Q=[cosθsinθ−sinθcosθ],列向量长度为 1 1 1,且列向量相互正交。
- Q = 1 2 [ 1 1 1 − 1 ] Q=\frac{1}{\sqrt 2}\begin{bmatrix}1&1\\1&-1\end{bmatrix} Q=2 1[111−1],列向量长度为 1 1 1,且列向量相互正交。
- 使用上一个例子的矩阵,令 Q ′ = c [ Q Q Q − Q ] Q'=c\begin{bmatrix}Q&Q\\Q&-Q\end{bmatrix} Q′=c[QQQ−Q],取合适的 c c c另列向量长度为 1 1 1也可以构造标准正交矩阵: Q = 1 2 [ 1 1 1 1 1 − 1 1 − 1 1 1 − 1 − 1 1 − 1 − 1 1 ] Q=\frac{1}{2}\begin{bmatrix}1&1&1&1\\1&-1&1&-1\\1&1&-1&-1\\1&-1&-1&1\end{bmatrix} Q=21⎣⎢⎢⎡11111−11−111−1−11−1−11⎦⎥⎥⎤,这种构造方法以阿德玛(Adhemar)命名,对 2 , 4 , 16 , 64 , ⋯ 2, 4, 16, 64, \cdots 2,4,16,64,⋯阶矩阵有效。
- 再来看一个例子, Q = 1 3 [ 1 − 2 2 2 − 1 − 2 2 2 1 ] Q=\frac{1}{3}\begin{bmatrix}1&-2&2\\2&-1&-2\\2&2&1\end{bmatrix} Q=31⎣⎡122−2−122−21⎦⎤,列向量长度为 1 1 1,且列向量相互正交。
格拉姆-施密特正交化法的缺点在于,由于要求得单位向量,所以我们总是除以向量的长度,这导致标准正交矩阵中总是带有根号,而上面几个例子很少有根号。
优势
假设要做投影,将向量 b b b投影在标准正交矩阵 Q Q Q的列空间中,根据上一讲的公式得 P = Q ( Q T Q ) − 1 Q T P=Q(Q^TQ)^{-1}Q^T P=Q(QTQ)−1QT,得 P = Q Q T P=QQ^T P=QQT
我们断言,当列向量为标准正交基时, Q Q T QQ^T QQT是投影矩阵。
极端情况,假设矩阵是方阵,而其列向量是标准正交的(列向量线性无关的充分条件),则列空间就是整个向量空间,而投影整个空间的投影矩阵就是单位矩阵,此时 Q Q T = Q Q − 1 = I QQ^T=QQ^{-1}=I QQT=QQ−1=I
可以验证一下投影矩阵的两个性质:
投影矩阵是对称的:
(
Q
Q
T
)
T
=
(
Q
T
)
T
Q
T
=
Q
Q
T
(QQ^T)^T=(Q^T)^TQ^T=QQ^T
(QQT)T=(QT)TQT=QQT,得证;
投影两次相当于投影一次:
(
Q
Q
T
)
2
=
Q
Q
T
Q
Q
T
=
Q
(
Q
T
Q
)
Q
T
=
Q
Q
T
(QQ^T)^2=QQ^TQQ^T=Q(Q^TQ)Q^T=QQ^T
(QQT)2=QQTQQT=Q(QTQ)QT=QQT,得证
我们计算的 A T A x ^ = A T b A^TA\hat x=A^Tb ATAx^=ATb,现在变为 Q T Q x ^ = Q T b Q^TQ\hat x=Q^Tb QTQx^=QTb,也就是 x ^ = Q T b \hat x=Q^Tb x^=QTb,分解成向量来看就是 x ^ i = q i T b ‾ \underline{\hat x_i=q_i^Tb} x^i=qiTb,这个式子在很多数学领域都有重要作用。当我们知道标准正交基,则解向量第 i i i个分量为基的第 i i i个分量乘以 b b b,在第 i i i个基方向上的投影就等于 q i T b q_i^Tb qiTb
Gram-Schmidt正交化法
两个向量
我们有两个线性无关的向量 a , b a, b a,b,先把它们化为正交向量 A , B A, B A,B,再将它们单位化,变为单位正交向量 q 1 = A ∥ A ∥ , q 2 = B ∥ B ∥ q_1=\frac{A}{\left\|A\right\|}, q_2=\frac{B}{\left\|B\right\|} q1=∥A∥A,q2=∥B∥B:
- 我们取定 a a a向量的方向, a = A a=A a=A;
- 接下来将
b
b
b投影在
A
A
A的法方向上得到
B
B
B,也就是求子空间投影一讲中,我们提到的误差向量
e
=
b
−
p
e=b-p
e=b−p,即
B
=
b
−
A
T
b
A
T
A
A
B=b-\frac{A^Tb}{A^TA}A
B=b−ATAATbA。
检验一下 A ⊥ B A\bot B A⊥B: A T B = A T b − A T A T b A T A A = A T b − A T A A T A A T b = 0 A^TB=A^Tb-A^T\frac{A^Tb}{A^TA}A=A^Tb-\frac{A^TA}{A^TA}A^Tb=0 ATB=ATb−ATATAATbA=ATb−ATAATAATb=0。( A T b A T A A \frac{A^Tb}{A^TA}A ATAATbA就是 A x ^ = p A\hat x=p Ax^=p。) - 最后再让
A
,
B
A,B
A,B除以自身长度单位化一下就好了
三个向量
如果我们有三个线性无关的向量 a , b , c a, b, c a,b,c,则我们现需要求它们的正交向量 A , B , C A, B, C A,B,C,再将它们单位化,变为单位正交向量 q 1 = A ∥ A ∥ , q 2 = B ∥ B ∥ , q 3 = C ∥ C ∥ q_1=\frac{A}{\left\|A\right\|}, q_2=\frac{B}{\left\|B\right\|}, q_3=\frac{C}{\left\|C\right\|} q1=∥A∥A,q2=∥B∥B,q3=∥C∥C:
- 前两个向量我们已经得到了,我们现在需要求第三个向量同时正交于 A , B A, B A,B;
- 我们依然沿用上面的方法,从 c c c中减去其在 A , B A, B A,B上的分量,得到与 A , B A, B A,B正交的 C C C: C = c − A T c A T A A − B T c B T B B C=c-\frac{A^Tc}{A^TA}A-\frac{B^Tc}{B^TB}B C=c−ATAATcA−BTBBTcB。
现在我们试验一下推导出来的公式, a = [ 1 1 1 ] , b = [ 1 0 2 ] a=\begin{bmatrix}1\\1\\1\end{bmatrix}, b=\begin{bmatrix}1\\0\\2\end{bmatrix} a=⎣⎡111⎦⎤,b=⎣⎡102⎦⎤:
- 取定一方向, A = a = [ 1 1 1 ] A=a=\begin{bmatrix}1\\1\\1\end{bmatrix} A=a=⎣⎡111⎦⎤;
- 正交化,根据公式有 B = a − h A B=a-hA B=a−hA, h h h是比值 A T b A T A = 3 3 \frac{A^Tb}{A^TA}=\frac{3}{3} ATAATb=33,则 B = [ 1 1 1 ] − 3 3 [ 1 0 2 ] = [ 0 − 1 1 ] B=\begin{bmatrix}1\\1\\1\end{bmatrix}-\frac{3}{3}\begin{bmatrix}1\\0\\2\end{bmatrix}=\begin{bmatrix}0\\-1\\1\end{bmatrix} B=⎣⎡111⎦⎤−33⎣⎡102⎦⎤=⎣⎡0−11⎦⎤。验证一下正交性有 A ⋅ B = 0 A\cdot B=0 A⋅B=0。
- 单位化, q 1 = 1 3 [ 1 1 1 ] , q 2 = 1 2 [ 1 0 2 ] q_1=\frac{1}{\sqrt 3}\begin{bmatrix}1\\1\\1\end{bmatrix},\quad q_2=\frac{1}{\sqrt 2}\begin{bmatrix}1\\0\\2\end{bmatrix} q1=3 1⎣⎡111⎦⎤,q2=2 1⎣⎡102⎦⎤,则标准正交矩阵为 Q = [ 1 3 0 1 3 − 1 2 1 3 1 2 ] Q=\begin{bmatrix}\frac{1}{\sqrt 3}&0\\\frac{1}{\sqrt 3}&-\frac{1}{\sqrt 2}\\\frac{1}{\sqrt 3}&\frac{1}{\sqrt 2}\end{bmatrix} Q=⎣⎢⎡3 13 13 10−2 12 1⎦⎥⎤,对比原来的矩阵 D = [ 1 1 1 0 1 2 ] D=\begin{bmatrix}1&1\\1&0\\1&2\end{bmatrix} D=⎣⎡111102⎦⎤,有 D , Q D, Q D,Q的列空间是相同的,我们只是将原来的基标准正交化了。
矩阵表达正交化
我们曾经用矩阵的眼光审视消元法,有
A
=
L
U
A=LU
A=LU。同样的,我们也可用矩阵表达标准正交化:
A
=
Q
R
A=QR
A=QR(Gram-Schmidt表达式)
设矩阵
A
A
A有两个列向量
[
a
1
a
2
]
\Bigg[a_1 a_2\Bigg]
[a1a2],则有
[
a
1
a
2
]
=
[
q
1
q
2
]
[
a
1
T
q
1
a
2
T
q
1
a
1
T
q
2
a
2
T
q
2
]
\Bigg[a_1 a_2\Bigg]=\Bigg[q_1 q_2\Bigg]\begin{bmatrix}a_1^Tq_1&a_2^Tq_1\\a_1^Tq_2&a_2^Tq_2\end{bmatrix}
[a1a2]=[q1q2][a1Tq1a1Tq2a2Tq1a2Tq2],而
R
R
R左下角的
a
1
T
q
2
a_1^Tq_2
a1Tq2始终为
0
0
0,因为Gram-Schmidt正交化第一步取定方向,使得
当
i
<
j
时
,
a
i
⊥
q
j
i<j时,a_i\bot q_j
i<j时,ai⊥qj,后来构造的向量总是正交于先前的向量
所以这个
R
R
R矩阵是一个上三角矩阵。
第18讲:行列式及其性质
行列式概述
此前我们一直讨论的是长方矩阵,现在我们把注意力转向方阵,探讨两大话题,行列式和特征值
我们需要行列式的重要原因:求特征值
行列式可以决定方程组是否有解即矩阵是否可逆(行列式为0时矩阵奇异)。从另外一个角度来理解,行列式代表了这个矩阵的特征,这是学习特征分解的前置概念,不过行列式的作用不仅限于此。
行列式的英文名为determinant,意为决定因素,行列式是一个 从矩阵 到 一个值 的函数,它把尽可能多的信息压缩到了一个值当中。
行列式的性质
了解行列式,我们先从简单的性质入手,之后再去认识复杂的求解公式
铺垫性质
基本性质
-
det I = 1 \det{I}=1 detI=1,单位矩阵行列式值为一。
-
交换行,行列式变号。
在给出第三个性质之前,先由前两个性质可知,对置换矩阵有 det P = { 1 e v e n − 1 o d d \det P=\begin{cases}1\quad &even\\-1\quad &odd\end{cases} detP={1−1evenodd。
举例: ∣ 1 0 0 1 ∣ = 1 , ∣ 0 1 1 0 ∣ = − 1 \begin{vmatrix}1&0\\0&1\end{vmatrix}=1,\quad\begin{vmatrix}0&1\\1&0\end{vmatrix}=-1 ∣∣∣∣1001∣∣∣∣=1,∣∣∣∣0110∣∣∣∣=−1,于是我们猜想,对于二阶方阵,行列式的计算公式为 ∣ a b c d ∣ = a d − b c \begin{vmatrix}a&b\\c&d\end{vmatrix}=ad-bc ∣∣∣∣acbd∣∣∣∣=ad−bc。
-
a. ∣ t a t b c d ∣ = t ∣ a b c d ∣ \begin{vmatrix}ta&tb\\c&d\end{vmatrix}=t\begin{vmatrix}a&b\\c&d\end{vmatrix} ∣∣∣∣tactbd∣∣∣∣=t∣∣∣∣acbd∣∣∣∣。
b. ∣ a + a ′ b + b ′ c d ∣ = ∣ a b c d ∣ + ∣ a ′ b ′ c d ∣ \begin{vmatrix}a+a'&b+b'\\c&d\end{vmatrix}=\begin{vmatrix}a&b\\c&d\end{vmatrix}+\begin{vmatrix}a'&b'\\c&d\end{vmatrix} ∣∣∣∣a+a′cb+b′d∣∣∣∣=∣∣∣∣acbd∣∣∣∣+∣∣∣∣a′cb′d∣∣∣∣。
行列式的线性变换并不对应整个方阵的线性变换,而是针对某一行的线性变换。
推出性质
-
如果两行相等,则行列式为 0 0 0
证明:使用性质2,交换两相等的行,方阵不变,行列式的值也就未变,但行列式变号了,说明行列式为0 -
从第 k k k行中减去第 i i i行的 l l l倍,行列式不变。
这条性质是针对消元的,我们可以先消元,将方阵变为上三角形式后再计算行列式。证明举例: ∣ a b c − l a d − l b ∣ = 3. b ∣ a b c d ∣ + ∣ a b − l a − l b ∣ = 3. a ∣ a b c d ∣ − l ∣ a b a b ∣ = 4 ∣ a b c d ∣ \begin{vmatrix}a&b\\c-la&d-lb\end{vmatrix}\stackrel{3.b}{=}\begin{vmatrix}a&b\\c&d\end{vmatrix}+\begin{vmatrix}a&b\\-la&-lb\end{vmatrix}\stackrel{3.a}{=}\begin{vmatrix}a&b\\c&d\end{vmatrix}-l\begin{vmatrix}a&b\\a&b\end{vmatrix}\stackrel{4}{=}\begin{vmatrix}a&b\\c&d\end{vmatrix} ∣∣∣∣ac−labd−lb∣∣∣∣=3.b∣∣∣∣acbd∣∣∣∣+∣∣∣∣a−lab−lb∣∣∣∣=3.a∣∣∣∣acbd∣∣∣∣−l∣∣∣∣aabb∣∣∣∣=4∣∣∣∣acbd∣∣∣∣
-
如果方阵的某一行为零,则其行列式值为零。
证明:
方法1:使用性质3.a对为零行乘以不为零系数 l l l,使 l det A = det A l\det A=\det A ldetA=detA即可证明
方法2:使用性质3.a
重点性质
-
上三角矩阵的行列式 det U = ∣ d 1 ∗ ⋯ ∗ 0 d 2 ⋯ ∗ ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ d n ∣ \det U=\begin{vmatrix}d_{1}&*&\cdots&*\\0&d_{2}&\cdots&*\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&d_{n}\end{vmatrix} detU=∣∣∣∣∣∣∣∣∣d10⋮0∗d2⋮0⋯⋯⋱⋯∗∗⋮dn∣∣∣∣∣∣∣∣∣,
则 det U = d 1 d 2 ⋯ d n \det U=d_1d_2\cdots d_n detU=d1d2⋯dn。
注意:要得到三角阵时,可能需要换行,如果换行,符号可能会改变
证明:使用性质5,从最后一行开始,将对角元素上方的 ∗ * ∗元素依次变为零,可以得到型为 det U = ∣ d 1 0 ⋯ 0 0 d 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ d n ∣ \det U=\begin{vmatrix}d_{1}&0&\cdots&0\\0&d_{2}&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&d_{n}\end{vmatrix} detU=∣∣∣∣∣∣∣∣∣d10⋮00d2⋮0⋯⋯⋱⋯00⋮dn∣∣∣∣∣∣∣∣∣的对角行列式
再使用性质3.a将对角元素提出得到 det U = d n d n − 1 ⋯ d 1 ∣ 1 0 ⋯ 0 0 1 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 1 ∣ \det U = d_nd_{n-1}\cdots d_1\begin{vmatrix}1&0&\cdots&0\\0&1&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&1\end{vmatrix} detU=dndn−1⋯d1∣∣∣∣∣∣∣∣∣10⋮001⋮0⋯⋯⋱⋯00⋮1∣∣∣∣∣∣∣∣∣
最后用性质一, det U = d 1 d 2 ⋯ d n \det U = d_1d_2\cdots d_n detU=d1d2⋯dn,得证 -
det A = 0 \det A=0 detA=0,当且仅当 A A A奇异
det A ≠ 0 \det A\neq0 detA=0,当且仅当 A A A可逆
证明:利用性质8,如果矩阵奇异,则化简为上三角形式时会出现全零行,行列式为零。
同理,如果矩阵可逆,则化简为上三角形式后各行都含有主元,行列式即为主元乘积;再回顾二阶情况: ∣ a b c d ∣ → 消 元 ∣ a b 0 d − c a b ∣ = a d − b c \begin{vmatrix}a&b\\c&d\end{vmatrix}\xrightarrow{消元}\begin{vmatrix}a&b\\0&d-\frac{c}{a}b\end{vmatrix}=ad-bc ∣∣∣∣acbd∣∣∣∣消元 ∣∣∣∣a0bd−acb∣∣∣∣=ad−bc,前面的猜想得到证实。
-
det A B = ( det A ) ( det B ) \det AB=(\det A)(\det B) detAB=(detA)(detB)。
证明较复杂,这里不给出了
使用这一性质, det I = det A − 1 A = det A − 1 det A \det I=\det{A^{-1}A}=\det A^{-1}\det A detI=detA−1A=detA−1detA,所以 det A − 1 = 1 det A \det A^{-1}=\frac{1}{\det A} detA−1=detA1。
并可以轻松求得对角矩阵的逆:
还可以检验矩阵是否奇异:如果可逆,则行列式不为0, 1 det A \frac{1}{\det A} detA1才有意义,如果奇异, det A = 0 \det A=0 detA=0,则公式不再work, 1 det A \frac{1}{\det A} detA1无意义同时还可以得到:
det A 2 = ( det A ) 2 \det A^2=(\det A)^2 detA2=(detA)2
det 2 A = 2 n det A \det 2A=2^n\det A det2A=2ndetA,这个式子就像是求体积,对三维物体有每边翻倍则体积变为原来的八倍。 -
det A T = det A \det A^T=\det A detAT=detA,前面一直在关注行的属性给行列式带来的变化,有了这条性质,行的属性同样适用于列,比如对性质2就有“交换列行列式变号”。
证明:
把矩阵化为三角阵
无论是 L , L T , U , U T L,L^T,U,U^T L,LT,U,UT,只要是三角阵,行列式就为对角线的乘积,转置对此没有影响
第19讲:行列式公式和代数余子式
行列式公式
上一讲中,我们从三个简单的性质扩展出了一些很好的推论,本讲将继续使用这三条基本性质:
- det I = 1 \det I=1 detI=1;
- 交换行行列式变号;
- 对行列式的每一行都可以单独使用线性运算,其值不变;
我们使用这三条性质推导二阶方阵行列式:
∣ a b c d ∣ = ∣ a 0 c d ∣ + ∣ 0 b c d ∣ = ∣ a 0 c 0 ∣ + ∣ a 0 0 d ∣ + ∣ 0 b c 0 ∣ + ∣ 0 b 0 d ∣ = a d − b c \begin{vmatrix}a&b\\c&d\end{vmatrix}=\begin{vmatrix}a&0\\c&d\end{vmatrix}+\begin{vmatrix}0&b\\c&d\end{vmatrix}=\begin{vmatrix}a&0\\c&0\end{vmatrix}+\begin{vmatrix}a&0\\0&d\end{vmatrix}+\begin{vmatrix}0&b\\c&0\end{vmatrix}+\begin{vmatrix}0&b\\0&d\end{vmatrix}=ad-bc ∣∣∣∣acbd∣∣∣∣=∣∣∣∣ac0d∣∣∣∣+∣∣∣∣0cbd∣∣∣∣=∣∣∣∣ac00∣∣∣∣+∣∣∣∣a00d∣∣∣∣+∣∣∣∣0cb0∣∣∣∣+∣∣∣∣00bd∣∣∣∣=ad−bc
按照这个方法,我们继续计算三阶方阵的行列式,可以想到,我们保持第二、三行不变,将第一行拆分为个行列式之和,再将每一部分的第二行拆分为三部分,这样就得到九个行列式,再接着拆分这九个行列式的第三行,最终得到二十七个行列式。可以想象到,这些矩阵中有很多值为零的行列式,我们只需要找到不为零的行列式,求和即可。
∣ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ∣ = ∣ a 11 0 0 0 a 22 0 0 0 a 33 ∣ + ∣ a 11 0 0 0 0 a 23 0 a 32 0 ∣ + ∣ 0 a 12 0 a 21 0 0 0 0 a 33 ∣ + ∣ 0 a 12 0 0 0 a 23 a 31 0 0 ∣ + ∣ 0 0 a 13 a 21 0 0 0 a 32 0 ∣ + ∣ 0 0 a 13 0 a 22 0 a 31 0 0 ∣ \begin{vmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{vmatrix}=\begin{vmatrix}a_{11}&0&0\\0&a_{22}&0\\0&0&a_{33}\end{vmatrix}+\begin{vmatrix}a_{11}&0&0\\0&0&a_{23}\\0&a_{32}&0\end{vmatrix}+\begin{vmatrix}0&a_{12}&0\\a_{21}&0&0\\0&0&a_{33}\end{vmatrix}+\begin{vmatrix}0&a_{12}&0\\0&0&a_{23}\\a_{31}&0&0\end{vmatrix}+\begin{vmatrix}0&0&a_{13}\\a_{21}&0&0\\0&a_{32}&0\end{vmatrix}+\begin{vmatrix}0&0&a_{13}\\0&a_{22}&0\\a_{31}&0&0\end{vmatrix} ∣∣∣∣∣∣a11a21a31a12a22a32a13a23a33∣∣∣∣∣∣=∣∣∣∣∣∣a11000a22000a33∣∣∣∣∣∣+∣∣∣∣∣∣a110000a320a230∣∣∣∣∣∣+∣∣∣∣∣∣0a210a120000a33∣∣∣∣∣∣+∣∣∣∣∣∣00a31a12000a230∣∣∣∣∣∣+∣∣∣∣∣∣0a21000a32a1300∣∣∣∣∣∣+∣∣∣∣∣∣00a310a220a1300∣∣∣∣∣∣
原 式 = a 11 a 22 a 33 − a 11 a 23 a 32 − a 12 a 21 a 33 + a 12 a 23 a 31 + a 13 a 21 a 32 − a 13 a 22 a 31 原式=a_{11}a_{22}a_{33}-a_{11}a_{23}a_{32}-a_{12}a_{21}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}-a_{13}a_{22}a_{31} 原式=a11a22a33−a11a23a32−a12a21a33+a12a23a31+a13a21a32−a13a22a31 (1)
同理,我们想继续推导出阶数更高的式子,按照上面的式子可知
n
n
n阶行列式应该可以分解成
n
!
n!
n!个非零行列式(占据第一行的元素有
n
n
n种选择,占据第二行的元素有
n
−
1
n-1
n−1种选择,以此类推得
n
!
n!
n!)由此可得 行列式大公式:
det
A
=
∑
n
!
t
e
r
m
s
±
a
1
α
a
2
β
a
3
γ
⋯
a
n
ω
,
(
α
,
β
,
γ
,
ω
)
=
P
n
n
(2)
\det A=\sum_{n! \, terms} \pm a_{1\alpha}a_{2\beta}a_{3\gamma}\cdots a_{n\omega}, (\alpha, \beta, \gamma, \omega)=P_n^n \tag{2}
detA=n!terms∑±a1αa2βa3γ⋯anω,(α,β,γ,ω)=Pnn(2)
α
,
β
,
γ
.
.
.
,
ω
α,β,γ...,ω
α,β,γ...,ω为
(
1
,
2
,
.
.
.
,
n
)
(1,2,...,n)
(1,2,...,n)的所有排列
确定每个term的符号:
∣ 0 0 1 ‾ 1 ‾ 0 1 ‾ 1 ‾ 0 1 ‾ 1 ‾ 0 0 1 ‾ 0 0 1 ‾ ∣ \begin{vmatrix}0&0&\overline 1&\underline 1\\0&\overline 1&\underline 1&0\\\overline 1&\underline 1&0&0\\\underline 1&0&0&\overline 1\end{vmatrix} ∣∣∣∣∣∣∣∣0011011011001001∣∣∣∣∣∣∣∣
- 观察带有下划线的元素,它们的排列是 ( 4 , 3 , 2 , 1 ) (4,3,2,1) (4,3,2,1),变为 ( 1 , 2 , 3 , 4 ) (1,2,3,4) (1,2,3,4)需要两步操作,所以应取 + + +;
- 观察带有上划线的元素,它们的排列是 ( 3 , 2 , 1 , 4 ) (3,2,1,4) (3,2,1,4),变为 ( 1 , 2 , 3 , 4 ) (1,2,3,4) (1,2,3,4)需要一步操作,所以应取 − - −。
- 观察其他元素,我们无法找出除了上面两种以外的排列方式,于是该行列式值为零,这是一个奇异矩阵。
代数余子式
此处引入代数余子式(cofactor)的概念,它的作用是把 n n n阶行列式化简为 n − 1 n-1 n−1阶行列式。
于是我们把 ( 1 ) (1) (1)式改写为:
a
11
(
a
22
a
33
−
a
23
a
32
)
+
a
12
(
a
21
a
33
−
a
23
a
31
)
+
a
13
(
a
21
a
32
−
a
22
a
31
)
a_{11}(a_{22}a_{33}-a_{23}a_{32})+a_{12}(a_{21}a_{33}-a_{23}a_{31})+a_{13}(a_{21}a_{32}-a_{22}a_{31})
a11(a22a33−a23a32)+a12(a21a33−a23a31)+a13(a21a32−a22a31)
=
∣
a
11
0
0
0
a
22
a
23
0
a
32
a
33
∣
+
∣
0
a
12
0
a
21
0
a
23
a
31
0
a
33
∣
+
∣
0
0
a
13
a
21
a
22
0
a
31
a
32
0
∣
=\begin{vmatrix}a_{11}&0&0\\0&a_{22}&a_{23}\\0&a_{32}&a_{33}\end{vmatrix}+\begin{vmatrix}0&a_{12}&0\\a_{21}&0&a_{23}\\a_{31}&0&a_{33}\end{vmatrix}+\begin{vmatrix}0&0&a_{13}\\a_{21}&a_{22}&0\\a_{31}&a_{32}&0\end{vmatrix}
=∣∣∣∣∣∣a11000a22a320a23a33∣∣∣∣∣∣+∣∣∣∣∣∣0a21a31a12000a23a33∣∣∣∣∣∣+∣∣∣∣∣∣0a21a310a22a32a1300∣∣∣∣∣∣
我们定义 a i j a_{ij} aij的代数余子式:将原行列式的第 i i i行与第 j j j列抹去后得到的 n − 1 n-1 n−1阶行列式,记为 C i j C_{ij} Cij, i + j i+j i+j为偶时时取 + + +, i + j i+j i+j为奇时取 − - −。
现在再来改写式子 ( 2 ) (2) (2):将行列式 A A A沿第一行展开(也可按第 i i i行或第 j j j列展开):
det A = a 11 C 11 + a 12 C 12 + ⋯ + a 1 n C 1 n \det A=a_{11}C_{11}+a_{12}C_{12}+\cdots+a_{1n}C_{1n} detA=a11C11+a12C12+⋯+a1nC1n
总结
到现在为止,我们了解了三种求 n n n阶行列式的方法:
-
主元公式求解:消元,变换为上三角矩阵后求其主元乘积(注意换行后的符号改变);
-
使用行列式大公式展开,求 n ! n! n!项之积;
-
使用代数余子式,化为 n − 1 n-1 n−1阶行列式
计算难度: 1. < 3. < 2.
例题
设
A
n
A_n
An为
n
n
n阶“三对角线行列式”
A 4 = ∣ 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 ∣ = 沿 第 一 行 展 开 ∣ 1 1 0 1 1 1 0 1 1 ∣ − ∣ 1 1 0 0 1 1 0 1 1 ∣ = − 1 − 0 = − 1 A_4=\begin{vmatrix}1&1&0&0\\1&1&1&0\\0&1&1&1\\0&0&1&1\end{vmatrix}\stackrel{沿第一行展开}{=}\begin{vmatrix}1&1&0\\1&1&1\\0&1&1\end{vmatrix}-\begin{vmatrix}1&1&0\\0&1&1\\0&1&1\end{vmatrix}=-1-0=-1 A4=∣∣∣∣∣∣∣∣1100111001110011∣∣∣∣∣∣∣∣=沿第一行展开∣∣∣∣∣∣110111011∣∣∣∣∣∣−∣∣∣∣∣∣100111011∣∣∣∣∣∣=−1−0=−1
得到
A
n
A_n
An的值以
1
,
0
,
−
1
,
−
1
,
0
,
1
1,0,-1,-1,0,1
1,0,−1,−1,0,1为周期变化
第20讲:克拉默法则、逆矩阵、体积
逆矩阵
对于二阶矩阵有
[
a
b
c
d
]
−
1
=
1
a
d
−
b
c
[
d
−
b
−
c
a
]
\begin{bmatrix}a&b\\c&d\end{bmatrix}^{-1}=\frac{1}{ad-bc}\begin{bmatrix}d&-b\\-c&a\end{bmatrix}
[acbd]−1=ad−bc1[d−c−ba]
观察易得,系数项就是行列式的倒数,而矩阵则是由一系列代数余子式组成的。先给出公式:
A − 1 = 1 det A C T (1) A^{-1}=\frac{1}{\det A}C^T \tag{1} A−1=detA1CT(1)
其中 C T C^T CT称作 A A A的伴随矩阵
观察这个公式是如何运作的: A C T = ( det A ) I AC^T=(\det A)I ACT=(detA)I,写成矩阵形式有 [ a 11 a 12 ⋯ a 1 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] [ C 11 ⋯ C n 1 C 12 ⋯ C n 2 ⋮ ⋱ ⋮ C 1 n ⋯ C n n ] = R e s \begin{bmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\\vdots&\vdots&\ddots&\vdots\\a_{n1}&a_{n2}&\cdots&a_{nn}\end{bmatrix}\begin{bmatrix}C_{11}&\cdots&C_{n1}\\C_{12}&\cdots&C_{n2}\\\vdots&\ddots&\vdots\\C_{1n}&\cdots&C_{nn}\end{bmatrix}=Res ⎣⎢⎡a11⋮an1a12⋮an2⋯⋱⋯a1n⋮ann⎦⎥⎤⎣⎢⎢⎢⎡C11C12⋮C1n⋯⋯⋱⋯Cn1Cn2⋮Cnn⎦⎥⎥⎥⎤=Res
对于这两个矩阵的乘积,观察其结果的元素 R e s 11 = a 11 C 11 + a 12 C 12 + ⋯ + a 1 n C 1 n Res_{11}=a_{11}C_{11}+a_{12}C_{12}+\cdots+a_{1n}C_{1n} Res11=a11C11+a12C12+⋯+a1nC1n,这正是上一讲提到的将行列式按第一行展开的结果。同理,对 R e s 22 , ⋯ , R e s n n Res_{22}, \cdots, Res_{nn} Res22,⋯,Resnn都有 R e s i i = det A Res_{ii}=\det A Resii=detA,即对角线元素均为 det A \det A detA。
再来看非对角线元素:回顾二阶的情况,如果用第一行乘以第二行的代数余子式 a 11 C 21 + a 12 C 22 a_{11}C_{21}+a_{12}C_{22} a11C21+a12C22,得到 a ( − b ) + a b = 0 a(-b)+ab=0 a(−b)+ab=0。我们可以换一种角度看这个式子, a ( − b ) + a b = 0 a(-b)+ab=0 a(−b)+ab=0也是一个矩阵的行列式值,即 A s = [ a b a b ] A_{s}=\begin{bmatrix}a&b\\a&b\end{bmatrix} As=[aabb]。将 det A s \det A_{s} detAs按第二行展开,也会得到 det A s = a ( − b ) + a b \det A_{s}=a(-b)+ab detAs=a(−b)+ab,因为行列式有两行相等所以行列式值为零。
推广到 n n n阶,我们来看元素 R e s 1 n = a 11 C n 1 + a 12 C n 2 + ⋯ + a 1 n C n n Res_{1n}=a_{11}C_{n1}+a_{12}C_{n2}+\cdots+a_{1n}C_{nn} Res1n=a11Cn1+a12Cn2+⋯+a1nCnn,该元素是第一行与最后一行的代数余子式相乘之积。这个式子也可以写成一个特殊矩阵的行列式,即矩阵 A s = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n − a 1 a n − 12 ⋯ a n − 1 n a 11 a 12 ⋯ a 1 n ] A_{s}=\begin{bmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\a_{21}&a_{22}&\cdots&a_{2n}\\\vdots&\vdots&\ddots&\vdots\\a_{n-a1}&a_{n-12}&\cdots&a_{n-1n}\\a_{11}&a_{12}&\cdots&a_{1n}\end{bmatrix} As=⎣⎢⎢⎢⎢⎢⎡a11a21⋮an−a1a11a12a22⋮an−12a12⋯⋯⋱⋯⋯a1na2n⋮an−1na1n⎦⎥⎥⎥⎥⎥⎤。计算此矩阵的行列式,将 det A s \det A_{s} detAs按最后一行展开,也得到 det A s = a 11 C n 1 + a 12 C n 2 + ⋯ + a 1 n C n n \det A_{s}=a_{11}C_{n1}+a_{12}C_{n2}+\cdots+a_{1n}C_{nn} detAs=a11Cn1+a12Cn2+⋯+a1nCnn。同理,行列式 A s A_{s} As有两行相等,其值为零。
结合对角线元素与非对角线元素的结果,我们得到 R e s = [ det A 0 ⋯ 0 0 det A ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ det A ] Res=\begin{bmatrix}\det A&0&\cdots&0\\0&\det A&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\det A\end{bmatrix} Res=⎣⎢⎢⎢⎡detA0⋮00detA⋮0⋯⋯⋱⋯00⋮detA⎦⎥⎥⎥⎤,也就是 ( 1 ) (1) (1)等式右边的 ( det A ) I (\det A)I (detA)I,得证。
克拉默法则求解 A x = b Ax=b Ax=b
因为我们现在有了逆矩阵的计算公式,所以对 A x = b Ax=b Ax=b有 x = A − 1 b = 1 det A C T b x=A^{-1}b=\frac{1}{\det A}C^Tb x=A−1b=detA1CTb,这就是计算 x x x的公式,即克莱默法则(Cramer’s rule)。
现在来观察 x = 1 det A C T b x=\frac{1}{\det A}C^Tb x=detA1CTb,我们将得到的解拆分开来,对 x x x的第一个分量有 x 1 = y 1 det A x_1=\frac{y_1}{\det A} x1=detAy1,这里 y 1 y_1 y1是一个数字,其值为 y 1 = b 1 C 11 + b 2 C 21 + ⋯ + b n C n 1 y_1=b_1C_{11}+b_2C_{21}+\cdots+b_nC_{n1} y1=b1C11+b2C21+⋯+bnCn1,每当我们看到数字与代数余子式乘之积求和时,都应该联想到求行列式,也就是说 y 1 y_1 y1可以看做是一个矩阵的行列式,我们设这个矩阵为 B 1 B_1 B1。所以有 x i = det B 1 det A x_i=\frac{\det B_1}{\det A} xi=detAdetB1,同理有 x 2 = det B 2 det A x_2=\frac{\det B_2}{\det A} x2=detAdetB2, x 2 = det B 2 det A x_2=\frac{\det B_2}{\det A} x2=detAdetB2。
而 B 1 B_1 B1是一个型为 [ b a 2 a 3 ⋯ a n ] \Bigg[b a_2 a_3 \cdots a_n\Bigg] [ba2a3⋯an]的矩阵,即将矩阵 A A A的第一列变为 b b b向量而得到的新矩阵。其实很容易看出, det B 1 \det B_1 detB1可以沿第一列展开得到 y 1 = b 1 C 11 + b 2 C 21 + ⋯ + b n C n 1 y_1=b_1C_{11}+b_2C_{21}+\cdots+b_nC_{n1} y1=b1C11+b2C21+⋯+bnCn1。
一般的,有 B j = [ a 1 a 2 ⋯ a j − 1 b a j + 1 ⋯ a n ] B_j=\Bigg[a_1 a_2 \cdots a_{j-1} b a_{j+1} \cdots a_n\Bigg] Bj=[a1a2⋯aj−1baj+1⋯an],即将矩阵 A A A的第 j j j列变为 b b b向量而得到的新矩阵。所以,对于解的分量有 x j = det B j det A x_j=\frac{\det B_j}{\det A} xj=detAdetBj。
这个公式虽然很漂亮,但是并不方便计算。
体积
先提出命题:行列式的绝对值等于一个箱子的体积。
来看三维空间中的情形(二维空间对应的是面积),对于 3 3 3阶方阵 A A A,取第一行 ( a 1 , a 2 , a 3 ) (a_1,a_2,a_3) (a1,a2,a3),令其为三维空间中点 A 1 A_1 A1的坐标,同理有点 A 2 , A 3 A_2, A_3 A2,A3。连接这三个点与原点可以得到三条边,使用这三条边展开得到一个平行六面体, ∥ det A ∥ \left\|\det A\right\| ∥detA∥就是该平行六面体的体积。
性质1
对于三阶单位矩阵,其体积为 det I = 1 \det I=1 detI=1,此时这个箱子是一个单位立方体。这其实也证明了前面学过的行列式性质1。于是我们想,如果能接着证明性质2、3即可证明对于三维空间,行列式就是箱子的体积。
现在我们取矩阵
A
=
Q
A=Q
A=Q,而
Q
Q
Q是一个标准正交矩阵,此时这个箱子是一个立方体,可以看出其实这个箱子就是刚才的单位立方体经过旋转得到的。对于标准正交矩阵,有
Q
T
Q
=
I
Q^TQ=I
QTQ=I,等式两边取行列式得
det
(
Q
T
Q
)
=
1
=
∣
Q
T
∣
∣
Q
∣
\det(Q^TQ)=1=\left|Q^T\right|\left|Q\right|
det(QTQ)=1=∣∣QT∣∣∣Q∣,而根据行列式性质10有
∣
Q
T
∣
=
∣
Q
∣
\left|Q^T\right|=\left|Q\right|
∣∣QT∣∣=∣Q∣,所以
原
式
=
∣
Q
∣
2
=
1
,
∣
Q
∣
=
±
1
原式=\left|Q\right|^2=1, \left|Q\right|=\pm 1
原式=∣Q∣2=1,∣Q∣=±1。
性质2
对于行列式性质2,我们交换两行并不会改变箱子的大小,同时行列式的绝对值也没有改变,得证。
性质3
接下来在考虑不再是“单位”的立方体,即长方体。 假设 Q Q Q矩阵的第一行翻倍得到新矩阵 Q 2 Q_2 Q2,此时箱子变为在第一行方向上增加一倍的长方体箱子,也就是两个“标准正交箱子”在第一行方向上的堆叠。易知这个长方体箱子是原来体积的两倍,而根据行列式性质3.a有 det Q 2 = 2 det Q \det Q_2=2\det Q detQ2=2detQ,于是体积也符合行列式的数乘性质。
我们来看二阶方阵的情形, ∣ a + a ′ b + b ′ c d ∣ = ∣ a b c d ∣ + ∣ a ′ b ′ c d ∣ \begin{vmatrix}a+a'&b+b'\\c&d\end{vmatrix}=\begin{vmatrix}a&b\\c&d\end{vmatrix}+\begin{vmatrix}a'&b'\\c&d\end{vmatrix} ∣∣∣∣a+a′cb+b′d∣∣∣∣=∣∣∣∣acbd∣∣∣∣+∣∣∣∣a′cb′d∣∣∣∣。在二阶情况中,行列式就是一个求平行四边形面积的公式,原来我们求由四个点 ( 0 , 0 ) , ( a , b ) , ( c , d ) , ( a + c , b + d ) (0,0), (a,b), (c,d), (a+c,b+d) (0,0),(a,b),(c,d),(a+c,b+d)围成的四边形的面积,以前需要先求四边形的底边长,再做高求解,现在只需要计算 det A = a d − b c \det A=ad-bc detA=ad−bc即可(更加常用的是求由 ( 0 , 0 ) , ( a , b ) , ( c , d ) (0,0), (a,b), (c,d) (0,0),(a,b),(c,d)围成的三角形的面积,即 1 2 ( a d − b c ) \frac{1}{2}(ad-bc) 21(ad−bc)。也就是说,如果知道了歪箱子的顶点坐标,求面积(二阶情形)或体积(三阶情形)时,我们不再需要开方、求角度,只需要计算行列式的值就行了。
再多说两句我们通过好几讲得到的这个公式,在一般情形下,由点 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x_1,y_1), (x_2,y_2), (x_3,y_3) (x1,y1),(x2,y2),(x3,y3)围成的三角形面积等于 1 2 ∣ x 1 y 1 1 x 2 y 2 1 x 3 y 3 1 ∣ \frac{1}{2}\begin{vmatrix}x_1&y_1&1\\x_2&y_2&1\\x_3&y_3&1\end{vmatrix} 21∣∣∣∣∣∣x1x2x3y1y2y3111∣∣∣∣∣∣,计算时分别用第二行、第三行减去第一行化简到第三列只有一个 1 1 1(这个操作实际作用是将三角形移动到原点),得到 1 2 ∣ x 1 y 1 1 x 2 − x 1 y 2 − y 1 0 x 3 − x 1 y 3 − y 1 0 ∣ \frac{1}{2}\begin{vmatrix}x_1&y_1&1\\x_2-x_1&y_2-y_1&0\\x_3-x_1&y_3-y_1&0\end{vmatrix} 21∣∣∣∣∣∣x1x2−x1x3−x1y1y2−y1y3−y1100∣∣∣∣∣∣,再按照第三列展开,得到三角形面积等于 ( x 2 − x 1 ) ( y 3 − y 1 ) − ( x 3 − x 1 ) ( y 2 − y 1 ) 2 \frac{(x_2-x_1)(y_3-y_1)-(x_3-x_1)(y_2-y_1)}{2} 2(x2−x1)(y3−y1)−(x3−x1)(y2−y1)。
(这里大概提一下,性质3.b更详细的证明要看书)
第21讲:特征值和特征向量
特征值、特征向量是什么
给定矩阵 A A A,矩阵 A A A乘以向量 x x x,就像是使用矩阵 A A A作用在向量 x x x上,得到新的向量 A x Ax Ax。在这里,矩阵 A A A就像是一个函数,接受一个向量 x x x作为输入,给出向量 A x Ax Ax作为输出。
在这一过程中,我们对一些特殊的向量很感兴趣,他们在输入( x x x)输出( A x Ax Ax)后始终保持同一个方向,这是比较特殊的,因为在大多情况下, A x Ax Ax与 x x x指向不同的方向。在这种特殊的情况下, A x Ax Ax平行于 x x x,我们把满足这个条件的 x x x称为特征向量(Eigen vector)。这个平行条件用方程表示就是:
A x = λ x (1) Ax=\lambda x\tag{1} Ax=λx(1)
其中 λ \lambda λ称为特征值
例子
-
我们试着计算特征值为 0 0 0的特征向量,此时有 A x = 0 Ax=0 Ax=0,也就是特征值为 0 0 0的特征向量应该位于 A A A的零空间中。
也就是说,如果矩阵是奇异的,那么它将有一个特征值为 λ = 0 \lambda = 0 λ=0。
-
投影矩阵:我们再来看投影矩阵 P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)−1AT的特征值和特征向量。用向量 b b b乘以投影矩阵 P P P得到投影向量 P b Pb Pb,在这个过程中,当 b b b已经处于投影平面(即 A A A的列空间)中时, P b Pb Pb与 b b b是同向的,此时 b b b投影前后不变( P b = 1 ⋅ b Pb=1\cdot b Pb=1⋅b)。
即在投影平面中的所有向量都是投影矩阵的特征向量,而他们的特征值均为 1 1 1。再来观察投影平面的法向量,也就是投影一讲中的 e e e向量。我们知道对于投影,因为 e ⊥ C ( A ) e\bot C(A) e⊥C(A),所以 P e = 0 e Pe=0e Pe=0e,即特征向量 e e e的特征值为 0 0 0。
于是,投影矩阵的特征值为 λ = 1 , 0 \lambda=1, 0 λ=1,0。
-
置换矩阵:再多讲一个例子,二阶置换矩阵 A = [ 0 1 1 0 ] A=\begin{bmatrix}0&1\\1&0\end{bmatrix} A=[0110],经过这个矩阵处理的向量,其元素会互相交换位置。
那么特征值为 1 1 1的特征向量(即经过矩阵交换元素前后仍然不变)为 [ 1 1 ] \begin{bmatrix}1\\1\end{bmatrix} [11]。
特征值为 − 1 -1 −1的特征向量(即经过矩阵交换元素前后方向相反)为 [ 1 − 1 ] \begin{bmatrix}1\\-1\end{bmatrix} [1−1]。
再提前透露一个特征值的性质:我们把矩阵对角线元素之和称为矩阵的迹(trace),对于一个
n
×
n
n\times n
n×n的矩阵,将会有
n
n
n个特征值,而这些特征值之和等于该矩阵的迹
∑
i
=
1
n
λ
i
=
∑
i
=
1
n
a
i
i
\sum_{i=1}^n \lambda_i=\sum_{i=1}^n a_{ii}
i=1∑nλi=i=1∑naii
在上面二阶转置矩阵的例子中,如果我们求得了一个特征值 1 1 1,那么利用迹的性质,我们就可以直接推出另一个特征值是 − 1 -1 −1。
求解 A x = λ x Ax=\lambda x Ax=λx
求解思路
对于方程 A x = λ x Ax=\lambda x Ax=λx,有两个未知数,我们需要利用一些技巧从这一个方程中一次解出两个未知数,先移项得 ( A − λ I ) x = 0 (A-\lambda I)x=0 (A−λI)x=0。
观察 ( A − λ I ) x = 0 (A-\lambda I)x=0 (A−λI)x=0,右边的 λ I \lambda I λI相当于将 A A A矩阵平移了 λ \lambda λ个单位,而如果方程有非零解,则这个平移后的矩阵 ( A − λ I ) (A-\lambda I) (A−λI)一定是奇异矩阵。根据前面学到的行列式的性质,则有 det ( A − λ I ) = 0 (2) \det{(A-\lambda{I})}=0\tag{2} det(A−λI)=0(2)
这样一来,方程中就没有 x x x了,这个方程叫作特征方程(characteristic equation)。求出了特征值,再代回 ( A − λ I ) x = 0 (A-\lambda I)x=0 (A−λI)x=0,继续求 ( A − λ I ) (A-\lambda I) (A−λI)的零空间即可得到 x x x。
例子
特征值为实数
现在计算一个简单的例子,
A
=
[
3
1
1
3
]
A=\begin{bmatrix}3&1\\1&3\end{bmatrix}
A=[3113]
再来说一点题外话,这是一个对称矩阵,我们将得到实特征值,前面还有置换矩阵、投影矩阵,矩阵越特殊,则我们得到的特征值与特征向量也越特殊。看置换矩阵中的特征值,两个实数
1
,
−
1
1, -1
1,−1,而且它们的特征向量是正交的。
回到例题,计算 det ( A − λ I ) = ∣ 3 − λ 1 1 3 − λ ∣ \det{(A-\lambda{I})}=\begin{vmatrix}3-\lambda&1\\1&3-\lambda\end{vmatrix} det(A−λI)=∣∣∣∣3−λ113−λ∣∣∣∣,也就是对角矩阵平移再取行列式。原式继续化简得 ( 3 − λ ) 2 − 1 = λ 2 − 6 λ + 8 = 0 , λ 1 = 4 , λ 2 = 2 (3-\lambda)^2-1=\lambda^2-6\lambda+8=0, \lambda_1=4,\lambda_2=2 (3−λ)2−1=λ2−6λ+8=0,λ1=4,λ2=2。可以看到一次项系数中的 6 6 6就是矩阵的迹,常数项8就是矩阵的行列式。
继续计算特征向量, A − 4 I = [ − 1 1 1 − 1 ] A-4I=\begin{bmatrix}-1&1\\1&-1\end{bmatrix} A−4I=[−111−1],显然矩阵是奇异的(如果是非奇异说明特征值计算有误),解出矩阵的零空间 x 1 = [ 1 1 ] x_1=\begin{bmatrix}1\\1\end{bmatrix} x1=[11];同理计算另一个特征向量, A − 2 I = [ 1 1 1 1 ] A-2I=\begin{bmatrix}1&1\\1&1\end{bmatrix} A−2I=[1111],解出矩阵的零空间 x 2 = [ 1 − 1 ] x_2=\begin{bmatrix}1\\-1\end{bmatrix} x2=[1−1]。
回顾前面转置矩阵的例子,对矩阵 A ′ = [ 0 1 1 0 ] A'=\begin{bmatrix}0&1\\1&0\end{bmatrix} A′=[0110]有 λ 1 = 1 , x 1 = [ 1 1 ] , λ 2 = − 1 , x 2 = [ − 1 1 ] \lambda_1=1, x_1=\begin{bmatrix}1\\1\end{bmatrix}, \lambda_2=-1, x_2=\begin{bmatrix}-1\\1\end{bmatrix} λ1=1,x1=[11],λ2=−1,x2=[−11]。看转置矩阵 A ′ A' A′与本例中的对称矩阵 A A A有什么联系。
易得
A
=
A
′
+
3
I
A=A'+3I
A=A′+3I,两个矩阵特征值相同,而其特征值刚好相差
3
3
3。也就是如果给一个矩阵加上
3
I
3I
3I,则它的特征值会加
3
3
3,而特征向量不变。
这很容易证明,如果
A
x
=
λ
x
Ax=\lambda x
Ax=λx,则
(
A
+
3
I
)
x
=
λ
x
+
3
x
=
(
λ
+
3
)
x
(A+3I)x=\lambda x+3x=(\lambda+3)x
(A+3I)x=λx+3x=(λ+3)x,所以
x
x
x还是原来的
x
x
x,而
λ
\lambda
λ变为
λ
+
3
\lambda+3
λ+3。
接下来,看一个关于特征向量认识的误区:已知 A x = λ x , B x = α x Ax=\lambda x, Bx=\alpha x Ax=λx,Bx=αx,则有 ( A + B ) x = ( λ + α ) x (A+B)x=(\lambda+\alpha)x (A+B)x=(λ+α)x,当 B = 3 I B=3I B=3I时,在上例中我们看到,确实成立,但是如果 B B B为任意矩阵,则推论不成立,因为这两个式子中的特征向量 x x x并不一定相同,所以两个式子的通常情况是 A x = λ x , B y = α y Ax=\lambda x, By=\alpha y Ax=λx,By=αy,它们也就无从相加了。
特征值为复数
再来看旋转矩阵的例子,旋转 9 0 ∘ 90^\circ 90∘的矩阵 Q = [ cos 90 − sin 90 sin 90 cos 90 ] = [ 0 − 1 1 0 ] Q=\begin{bmatrix}\cos 90&-\sin 90\\\sin 90&\cos 90\end{bmatrix}=\begin{bmatrix}0&-1\\1&0\end{bmatrix} Q=[cos90sin90−sin90cos90]=[01−10](可将一个向量旋转 9 0 ∘ 90^\circ 90∘,用 Q Q Q表示因为旋转矩阵是正交矩阵中很重要的例子)
上面提到特征值的一个性质:特征值之和等于矩阵的迹;现在有另一个性质:特征值之积等于矩阵的行列式
∏ i = 1 n λ i = det A \prod_{i=1}^n\lambda_i=\det A i=1∏nλi=detA
对于 Q Q Q矩阵,有 { λ 1 + λ 2 = 0 λ 1 ⋅ λ 2 = 1 \begin{cases}\lambda_1+\lambda_2&=0\\\lambda_1\cdot\lambda_2&=1\end{cases} {λ1+λ2λ1⋅λ2=0=1,再来思考特征值与特征向量的由来,哪些向量旋转 9 0 ∘ 90^\circ 90∘后与自己平行,于是遇到了麻烦,并没有这种向量,也没有这样的特征值来满足前面的方程组。
我们来按部就班的计算, det ( Q − λ I ) = ∣ λ − 1 1 λ ∣ = λ 2 + 1 = 0 \det(Q-\lambda I)=\begin{vmatrix}\lambda&-1\\1&\lambda\end{vmatrix}=\lambda^2+1=0 det(Q−λI)=∣∣∣∣λ1−1λ∣∣∣∣=λ2+1=0,于是特征值为 λ 1 = i , λ 2 = − i \lambda_1=i, \lambda_2=-i λ1=i,λ2=−i,我们看到这两个值满足迹与行列式的方程组,即使矩阵全是实数,其特征值也可能不是实数。本例中即出现了一对共轭复数,我们可以说,如果矩阵越接近对称,那么特征值就越接近实数。如果矩阵越不对称,就像本例, Q T = − Q Q^T=-Q QT=−Q,这是一个反对称的矩阵,于是我得到了纯虚的特征值,这是极端情况,通常我们见到的矩阵是介于对称与反对称之间的。
于是我们看到,对于好的矩阵(置换矩阵)有实特征值及正交的特征向量,对于不好的矩阵( 9 0 ∘ 90^\circ 90∘旋转矩阵)有纯虚的特征值。
有特征值相等
再来看一个更糟的情况, A = [ 3 1 0 3 ] A=\begin{bmatrix}3&1\\0&3\end{bmatrix} A=[3013],这是一个三角矩阵,我们可以直接得出其特征值,即对角线元素。来看如何得到这一结论的: det ( A − λ I ) = ∣ 3 − λ 1 0 3 − λ ∣ = ( 3 − λ ) 2 = 0 \det(A-\lambda I)=\begin{vmatrix}3-\lambda&1\\0&3-\lambda\end{vmatrix}=(3-\lambda)^2=0 det(A−λI)=∣∣∣∣3−λ013−λ∣∣∣∣=(3−λ)2=0,于是 λ 1 = 3 , λ 2 = 3 \lambda_1=3, \lambda_2=3 λ1=3,λ2=3。而我们之所以说这是一个糟糕的状况,在于它的特征向量。
带入特征值计算特征向量,带入 λ 1 = 3 \lambda_1=3 λ1=3得 ( A − λ I ) x = [ 0 1 0 0 ] [ x 1 x 2 ] = [ 0 0 ] (A-\lambda I)x=\begin{bmatrix}0&1\\0&0\end{bmatrix}\begin{bmatrix}x_1\\x_2\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix} (A−λI)x=[0010][x1x2]=[00],算出一个特征值 x 1 = [ 1 0 ] x_1=\begin{bmatrix}1\\0\end{bmatrix} x1=[10],当我们带入第二个特征值 λ 1 = 3 \lambda_1=3 λ1=3时,我们无法得到另一个与 x 1 x_1 x1线性无关的特征向量了。
而本例中的矩阵 A A A是一个退化矩阵(degenerate matrix),重复的特征值在特殊情况下可能导致特征向量的短缺。
这一讲我们看到了足够多的“不好”的矩阵,下一讲会介绍一般情况下的特征值与特征向量。
第22讲:对角化和 A A A的幂
特征值、特征向量的用途:对角化矩阵
S − 1 A S = Λ S^{-1}AS=\Lambda S−1AS=Λ
上一讲我们提到关键方程 A x = λ x Ax=\lambda x Ax=λx,通过 det ( A − λ I ) = 0 \det(A-\lambda I)=0 det(A−λI)=0得到特征值 λ \lambda λ,再带回方程算出特征向量 x x x。
在得到特征值与特征向量后,该如何使用它们?我们可以利用特征向量来对角化给定矩阵。
n
n
n阶方阵
A
A
A,有
n
n
n个线性无关的特征向量
x
1
,
x
2
,
⋯
,
x
n
x_1, x_2, \cdots, x_n
x1,x2,⋯,xn,使用特征向量作为列向量组成一个矩阵
S
=
[
x
1
x
2
⋯
x
n
]
S=\Bigg[x_1x_2\cdots x_n\Bigg]
S=[x1x2⋯xn],即特征向量矩阵, 再使用公式
S
−
1
A
S
=
Λ
(1)
S^{-1}AS=\Lambda\tag{1}
S−1AS=Λ(1)
可将
A
A
A对角化。注意到公式中有
S
−
1
S^{-1}
S−1,也就是说特征向量矩阵
S
S
S必须是可逆的,于是我们需要
n
n
n个线性无关的特征向量。
现在,假设 A A A有 n n n个线性无关的特征向量,将它们按列组成特征向量矩阵 S S S,则 A S = A [ x 1 x 2 ⋯ x n ] AS=A\Bigg[x_1x_2\cdots x_n\Bigg] AS=A[x1x2⋯xn],当我们分开做矩阵与每一列相乘的运算时,易看出 A x 1 Ax_1 Ax1就是矩阵与自己的特征向量相乘,其结果应该等于 λ 1 x 1 \lambda_1x_1 λ1x1。那么 A S = [ ( λ 1 x 1 ) ( λ 2 x 2 ) ⋯ ( λ n x n ) ] AS=\Bigg[(\lambda_1x_1)(\lambda_2x_2)\cdots(\lambda_nx_n)\Bigg] AS=[(λ1x1)(λ2x2)⋯(λnxn)]。可以进一步化简原式,使用右乘向量按列操作矩阵的方法,将特征值从矩阵中提出来,得到 [ x 1 x 2 ⋯ x n ] [ λ 1 0 ⋯ 0 0 λ 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λ n ] = S Λ \Bigg[x_1x_2\cdots x_n\Bigg]\begin{bmatrix}\lambda_1&0&\cdots&0\\0&\lambda_2&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\lambda_n\end{bmatrix}=S\Lambda [x1x2⋯xn]⎣⎢⎢⎢⎡λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn⎦⎥⎥⎥⎤=SΛ。
于是我们看到,从 A S AS AS出发,得到了 S Λ S\Lambda SΛ,特征向量矩阵又一次出现了,后面接着的是一个对角矩阵,即特征值矩阵。这样,再继续左乘 S − 1 S^{-1} S−1就得到了公式 ( 1 ) (1) (1)。当然,运算的前提条件是特征向量矩阵 S S S可逆,即矩阵 A A A有 n n n个线性无关的特征向量。这个式子还有另一种写法, A = S Λ S − 1 A=S\Lambda S^{-1} A=SΛS−1。
我们来看如何应用这个公式,比如说要计算 A 2 A^2 A2。
- 先从 A x = λ x Ax=\lambda x Ax=λx开始,如果两边同乘以 A A A,有 A 2 x = λ A x = λ 2 x A^2x=\lambda Ax=\lambda^2x A2x=λAx=λ2x,于是得出结论,对于矩阵 A 2 A^2 A2,其特征值也会取平方,而特征向量不变。
- 再从 A = S Λ S − 1 A=S\Lambda S^{-1} A=SΛS−1开始推导,则有 A 2 = S Λ S − 1 S Λ S − 1 = S Λ 2 S − 1 A^2=S\Lambda S^{-1}S\Lambda S^{-1}=S\Lambda^2S^{-1} A2=SΛS−1SΛS−1=SΛ2S−1。同样得到特征值取平方,特征向量不变。
两种方法描述的是同一个现象,即对于矩阵幂运算 A 2 A^2 A2,其特征向量不变,而特征值做同样的幂运算。对角矩阵 Λ 2 = [ λ 1 2 0 ⋯ 0 0 λ 2 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λ n 2 ] \Lambda^2=\begin{bmatrix}\lambda_1^2&0&\cdots&0\\0&\lambda_2^2&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\lambda_n^2\end{bmatrix} Λ2=⎣⎢⎢⎢⎡λ120⋮00λ22⋮0⋯⋯⋱⋯00⋮λn2⎦⎥⎥⎥⎤。
特征值和特征向量给我们了一个深入理解矩阵幂运算的方法, A k = S Λ k S − 1 A^k=S\Lambda^kS^{-1} Ak=SΛkS−1。
再来看一个矩阵幂运算的应用:如果
k
→
∞
k\to\infty
k→∞,则
A
k
→
0
A^k\to 0
Ak→0(趋于稳定stable)的条件是什么?
从
S
Λ
k
S
−
1
S\Lambda^kS^{-1}
SΛkS−1易得,对于
i
=
1
,
2
,
3
,
.
.
.
,
n
i=1,2,3,...,n
i=1,2,3,...,n,每一个
i
i
i都有
∣
λ
i
∣
<
1
|\lambda_i|<1
∣λi∣<1时,即可。
关于矩阵可对角化的条件
-
如果一个矩阵有 n n n个互不相同的特征值(即没有重复的特征值),则该矩阵具有 n n n个线性无关的特征向量,因此该矩阵可对角化。
-
如果一个矩阵的特征值存在重复值,则该矩阵可能具有 n n n个线性无关的特征向量。比如取 10 10 10阶单位矩阵, I 10 I_{10} I10具有 10 10 10个相同的特征值 1 1 1,但是单位矩阵的特征向量并不短缺,每个向量都可以作为单位矩阵的特征向量,我们很容易得到 10 10 10个线性无关的特征向量。当然这里例子中的 I 10 I_{10} I10的本来就是对角矩阵,它的特征值直接写在矩阵中,即对角线元素。
同样的,如果是三角矩阵,特征值也写在对角线上,但是这种情况我们可能会遇到麻烦。
矩阵 A = [ 2 1 0 2 ] A=\begin{bmatrix}2&1\\0&2\end{bmatrix} A=[2012],计算行列式值 det ( A − λ I ) = ∣ 2 − λ 1 0 2 − λ ∣ = ( 2 − λ ) 2 = 0 \det(A-\lambda I)=\begin{vmatrix}2-\lambda&1\\0&2-\lambda\end{vmatrix}=(2-\lambda)^2=0 det(A−λI)=∣∣∣∣2−λ012−λ∣∣∣∣=(2−λ)2=0,所以特征值为 λ 1 = λ 2 = 2 \lambda_1=\lambda_2=2 λ1=λ2=2,带回 A x = λ x Ax=\lambda x Ax=λx得到计算 [ 0 1 0 0 ] \begin{bmatrix}0&1\\0&0\end{bmatrix} [0010]的零空间,我们发现 x 1 = x 2 = [ 1 0 ] x_1=x_2=\begin{bmatrix}1\\0\end{bmatrix} x1=x2=[10],代数重度(algebraic multiplicity,计算特征值重复次数时,就用代数重度,它是多项式根的次数,这里的多项式就是 ( 2 − λ ) 2 (2-\lambda)^2 (2−λ)2)为 2 2 2,这个矩阵无法对角化。这就是上一讲的退化矩阵。
我们不打算深入研究有重复特征值的情形。
A A A的幂
求 u k + 1 = A u k u_{k+1}=Au_k uk+1=Auk
已知矩阵 A A A满足可对角化条件, u 0 u_0 u0为特征向量,求解 u k + 1 = A u k u_{k+1} = Au_k uk+1=Auk:
从 u 1 = A u 0 u_1=Au_0 u1=Au0开始, u 2 = A 2 u 0 u_2=A^2u_0 u2=A2u0,所有 u k = A k u 0 u_k=A^ku_0 uk=Aku0。下一讲涉及微分方程(differential equation),会有求导的内容,本讲先引入简单的差分方程(difference equation)。本例是一个一阶差分方程组(first order system)。
要解此方程,需要将 u 0 u_0 u0展开为矩阵 A A A特征向量的线性组合,即 u 0 = c 1 x 1 + c 2 x 2 + ⋯ + c n x n = [ x 1 x 2 ⋯ x n ] [ c 1 c 2 ⋮ c n ] = S c u_0=c_1x_1+c_2x_2+\cdots+c_nx_n=\Bigg[x_1x_2\cdots x_n\Bigg]\begin{bmatrix}c_1\\c_2\\\vdots\\c_n\end{bmatrix}=Sc u0=c1x1+c2x2+⋯+cnxn=[x1x2⋯xn]⎣⎢⎢⎢⎡c1c2⋮cn⎦⎥⎥⎥⎤=Sc。于是 A u 0 = c 1 A x 1 + c 2 A x 2 + ⋯ + c n A x n = c 1 λ 1 x 1 + c 2 λ 2 x 2 + ⋯ + c n λ n x n Au_0=c_1Ax_1+c_2Ax_2+\cdots+c_nAx_n=c_1\lambda_1x_1+c_2\lambda_2x_2+\cdots+c_n\lambda_nx_n Au0=c1Ax1+c2Ax2+⋯+cnAxn=c1λ1x1+c2λ2x2+⋯+cnλnxn。继续化简原式, A u 0 = [ x 1 x 2 ⋯ x n ] [ λ 1 0 ⋯ 0 0 λ 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λ n ] [ c 1 c 2 ⋮ c n ] = S Λ c Au_0=\Bigg[x_1x_2\cdots x_n\Bigg]\begin{bmatrix}\lambda_1&0&\cdots&0\\0&\lambda_2&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\lambda_n\end{bmatrix}\begin{bmatrix}c_1\\c_2\\\vdots\\c_n\end{bmatrix}=S\Lambda c Au0=[x1x2⋯xn]⎣⎢⎢⎢⎡λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡c1c2⋮cn⎦⎥⎥⎥⎤=SΛc。用矩阵的方式同样可以得到该式: A u 0 = S Λ S − 1 u 0 = S Λ S − 1 S c = S Λ c Au_0=S\Lambda S^{-1}u_0=S\Lambda S^{-1}Sc=S\Lambda c Au0=SΛS−1u0=SΛS−1Sc=SΛc。
那么如果我们要求 A 100 u 0 A^{100}u_0 A100u0,则只需要将 λ \lambda λ变为 λ 100 \lambda^{100} λ100,而系数 c c c与特征向量 x x x均不变。
当我们真的要计算 A 100 u 0 A^{100}u_0 A100u0时,就可以使用 S Λ 100 c = c 1 λ 1 100 x 1 + c 2 λ 2 100 x 2 + ⋯ + c n λ n 100 x n S\Lambda^{100}c=c_1\lambda_1^{100}x_1+c_2\lambda_2^{100}x_2+\cdots+c_n\lambda_n^{100}x_n SΛ100c=c1λ1100x1+c2λ2100x2+⋯+cnλn100xn。
例子:斐波那契数列动态增长
问题描述
接下来看一个斐波那契数列(Fibonacci sequence)的例子:
0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , ⋯ , F 100 = ? 0,1,1,2,3,5,8,13,\cdots,F_{100}=? 0,1,1,2,3,5,8,13,⋯,F100=?,我们要求第一百项的公式,并观察这个数列是如何增长的。可以想象这个数列并不是稳定数列,因此无论如何该矩阵的特征值并不都小于一,这样才能保持增长。而他的增长速度,则由特征值来决定。
求解
求特征值
已知 F k + 2 = F k + 1 + F k F_{k+2}=F_{k+1}+F_{k} Fk+2=Fk+1+Fk,但这不是 u k + 1 = A u k u_{k+1}=Au_{k} uk+1=Auk的形式,而且只有一个方程,而不是方程组,同时这是一个二阶差分方程(就像含有二阶导数的微分方程,我们希望能够化简为一阶导数,也就是一阶差分)。
使用一个小技巧,令
u
k
=
[
F
k
+
1
F
k
]
u_{k}=\begin{bmatrix}F_{k+1}\\F_{k}\end{bmatrix}
uk=[Fk+1Fk],再追加一个方程成方程组:
{
F
k
+
2
=
F
k
+
1
+
F
k
F
k
+
1
=
F
k
+
1
\begin{cases}F_{k+2}&=F_{k+1}+F_{k}\\F_{k+1}&=F_{k+1}\end{cases}
{Fk+2Fk+1=Fk+1+Fk=Fk+1
令
u
k
=
[
F
k
+
1
F
k
]
u_k=\begin{bmatrix}F_{k+1}\\F_{k}\end{bmatrix}
uk=[Fk+1Fk],把方程组用矩阵表达得到
[
F
k
+
2
F
k
+
1
]
=
[
1
1
1
0
]
[
F
k
+
1
F
k
]
\begin{bmatrix}F_{k+2}\\F_{k+1}\end{bmatrix}=\begin{bmatrix}1&1\\1&0\end{bmatrix}\begin{bmatrix}F_{k+1}\\F_{k}\end{bmatrix}
[Fk+2Fk+1]=[1110][Fk+1Fk],于是我们得到了
u
k
+
1
=
A
u
k
,
A
=
[
1
1
1
0
]
u_{k+1}=Au_{k}, A=\begin{bmatrix}1&1\\1&0\end{bmatrix}
uk+1=Auk,A=[1110]。我们把二阶标量方程(second-order scalar problem)转化成了一阶向量方程组(first-order system)。
我们的矩阵 A = [ 1 1 1 0 ] A=\begin{bmatrix}1&1\\1&0\end{bmatrix} A=[1110]是一个对称矩阵,所以它的特征值将会是实数,且他的特征向量将会互相正交。因为是二阶,我们可以直接利用迹与行列式解方程组 { λ 1 + λ 2 = 1 λ 1 ⋅ λ 2 = − 1 \begin{cases}\lambda_1+\lambda_2&=1\\\lambda_1\cdot\lambda_2&=-1\end{cases} {λ1+λ2λ1⋅λ2=1=−1。在求解之前,我们先写出一般解法并观察 ∣ A − λ I ∣ = ∣ 1 − λ 1 1 − λ ∣ = λ 2 − λ − 1 = 0 \left|A-\lambda I\right|=\begin{vmatrix}1-\lambda&1\\1&-\lambda\end{vmatrix}=\lambda^2-\lambda-1=0 ∣A−λI∣=∣∣∣∣1−λ11−λ∣∣∣∣=λ2−λ−1=0,与前面斐波那契数列的递归式 F k + 2 = F k + 1 + F k → F k + 2 − F k + 1 − F k = 0 F_{k+2}=F_{k+1}+F_{k}\rightarrow F_{k+2}-F_{k+1}-F_{k}=0 Fk+2=Fk+1+Fk→Fk+2−Fk+1−Fk=0比较,我们发现这两个式子在项数与幂次上非常相近。
- 用求根公式解特征值得 { λ 1 = 1 2 ( 1 + 5 ) ≈ 1.618 λ 2 = 1 2 ( 1 − 5 ) ≈ − 0.618 \begin{cases}\lambda_1=\frac{1}{2}\left(1+\sqrt{5}\right)\approx{1.618}\\\lambda_2=\frac{1}{2}\left(1-\sqrt{5}\right)\approx{-0.618}\end{cases} {λ1=21(1+5 )≈1.618λ2=21(1−5 )≈−0.618,得到两个不同的特征值,一定会有两个线性无关的特征向量,则该矩阵可以被对角化。
求特征向量
我们先来观察这个数列是如何增长的,数列增长由什么决定?——特征值。哪一个特征值起决定性作用?——较大的一个。
F 100 ≈ c 1 ( 1 + 5 2 ) 100 F_{100}\approx c_1\left(\frac{1+\sqrt{5}}{2}\right)^{100} F100≈c1(21+5 )100,由于 − 0.618 -0.618 −0.618在幂增长中趋近于 0 0 0,所以近似的忽略该项,剩下较大的项,我们可以说数量增长的速度大约是 1.618 1.618 1.618。可以看出,这种问题与求解 A x = b Ax=b Ax=b不同,这是一个动态的问题, A A A的幂在不停的增长,而问题的关键就是这些特征值。
- 继续求解特征向量, A − λ I = [ 1 − λ 1 1 − λ ] A-\lambda I=\begin{bmatrix}1-\lambda&1\\1&-\lambda\end{bmatrix} A−λI=[1−λ11−λ],因为有根式且矩阵只有二阶,我们直接观察 [ 1 − λ 1 1 − λ ] [ ? ? ] = 0 \begin{bmatrix}1-\lambda&1\\1&-\lambda\end{bmatrix}\begin{bmatrix}?\\?\end{bmatrix}=0 [1−λ11−λ][??]=0,由于 λ 2 − λ − 1 = 0 \lambda^2-\lambda-1=0 λ2−λ−1=0,则其特征向量为 [ λ 1 ] \begin{bmatrix}\lambda\\1\end{bmatrix} [λ1],即 x 1 = [ λ 1 1 ] , x 2 = [ λ 2 1 ] x_1=\begin{bmatrix}\lambda_1\\1\end{bmatrix}, x_2=\begin{bmatrix}\lambda_2\\1\end{bmatrix} x1=[λ11],x2=[λ21]。
求系数c
最后,计算初始项 u 0 = [ F 1 F 0 ] = [ 1 0 ] u_0=\begin{bmatrix}F_1\\F_0\end{bmatrix}=\begin{bmatrix}1\\0\end{bmatrix} u0=[F1F0]=[10],现在将初始项用特征向量表示出来 [ 1 0 ] = c 1 x 1 + c 2 x 2 \begin{bmatrix}1\\0\end{bmatrix}=c_1x_1+c_2x_2 [10]=c1x1+c2x2,计算系数得 c 1 = 5 5 , c 2 = − 5 5 c_1=\frac{\sqrt{5}}{5}, c_2=-\frac{\sqrt{5}}{5} c1=55 ,c2=−55 ,问题解决。
思路总结
来回顾整个问题,对于动态增长的一阶方程组,初始向量是 u 0 u_0 u0,关键在于确定 A A A的特征值及特征向量。特征值将决定增长的趋势,发散至无穷还是收敛于某个值。接下来需要找到一个展开式,把 u 0 u_0 u0展开成特征向量的线性组合。
-
再下来就是套用公式,即 A A A的 k k k次方表达式 A k = S Λ k S − 1 A^k=S\Lambda^kS^{-1} Ak=SΛkS−1,则有 u 99 = A u 98 = ⋯ = A 99 u 0 = S Λ 99 S − 1 S c = S Λ 99 c u_{99}=Au_{98}=\cdots=A^{99}u_{0}=S\Lambda^{99}S^{-1}Sc=S\Lambda^{99}c u99=Au98=⋯=A99u0=SΛ99S−1Sc=SΛ99c,代入特征值、特征向量得 u 99 = [ F 100 F 99 ] = [ 1 + 5 2 1 − 5 2 1 1 ] [ ( 1 + 5 2 ) 99 0 0 ( 1 − 5 2 ) 99 ] [ 5 5 − 5 5 ] = [ c 1 λ 1 100 + c 2 λ 2 100 c 1 λ 1 99 + c 2 λ 2 99 ] u_{99}=\begin{bmatrix}F_{100}\\F_{99}\end{bmatrix}=\begin{bmatrix}\frac{1+\sqrt{5}}{2}&\frac{1-\sqrt{5}}{2}\\1&1\end{bmatrix}\begin{bmatrix}\left(\frac{1+\sqrt{5}}{2}\right)^{99}&0\\0&\left(\frac{1-\sqrt{5}}{2}\right)^{99}\end{bmatrix}\begin{bmatrix}\frac{\sqrt{5}}{5}\\-\frac{\sqrt{5}}{5}\end{bmatrix}=\begin{bmatrix}c_1\lambda_1^{100}+c_2\lambda_2^{100}\\c_1\lambda_1^{99}+c_2\lambda_2^{99}\end{bmatrix} u99=[F100F99]=[21+5 121−5 1]⎣⎢⎡(21+5 )9900(21−5 )99⎦⎥⎤[55 −55 ]=[c1λ1100+c2λ2100c1λ199+c2λ299],最终结果为 F 100 = c 1 λ 1 100 + c 2 λ 2 100 F_{100}=c_1\lambda_1^{100}+c_2\lambda_2^{100} F100=c1λ1100+c2λ2100。
-
原式的通解为 u k = c 1 λ k x 1 + c 2 λ k x 2 u_k=c_1\lambda^kx_1+c_2\lambda^kx_2 uk=c1λkx1+c2λkx2。
下一讲将介绍求解微分方程。