特征值(Eigenvalue)与特征向量(Eigenvector)
定义:若 A A A为 n × n n\times n n×n的矩阵, x x x为非零向量,若存在数 λ \lambda λ使得 A x = λ x Ax=\lambda x Ax=λx有非平凡解 x x x,则称 λ \lambda λ为 A A A的特征值, x x x则为对应于 λ \lambda λ的特征向量。
例1:设 A = [ 1 6 5 2 ] A=\begin{bmatrix}1&6\\5&2\end{bmatrix} A=[1562], u = [ 6 − 5 ] u=\begin{bmatrix}6\\-5\end{bmatrix} u=[6−5], v = [ 3 − 2 ] v=\begin{bmatrix}3\\-2\end{bmatrix} v=[3−2],判断 u u u和 v v v是不是矩阵 A A A的特征向量。
解:
A u = [ 1 6 5 2 ] [ 6 − 5 ] = [ − 24 20 ] = − 4 × [ 6 − 5 ] = − 4 u Au=\begin{bmatrix}1&6\\5&2\end{bmatrix}\begin{bmatrix}6\\-5\end{bmatrix}= \begin{bmatrix}-24\\20\end{bmatrix}=-4\times \begin{bmatrix}6\\-5\end{bmatrix}=-4u Au=[1562][6−5]=[−2420]=−4×[6−5]=−4u
所以,向量 u u u是特征值 λ = 4 \lambda = 4 λ=4对应的特征向量。
A v = [ 1 6 5 2 ] [ 3 − 2 ] = [ − 9 11 ] ≠ λ [ 3 − 2 ] Av=\begin{bmatrix}1&6\\5&2\end{bmatrix}\begin{bmatrix}3\\-2\end{bmatrix}= \begin{bmatrix}-9\\11\end{bmatrix}\neq \lambda \begin{bmatrix}3\\-2\end{bmatrix} Av=[1562][3−2]=[−911]=λ[3−2]
所以, A v Av Av不是向量 v v v的倍数,即向量 v v v不是矩阵向量 A A A的特征向量。
例2:请证明7是矩阵 A = [ 1 6 5 2 ] A=\begin{bmatrix}1&6\\5&2\end{bmatrix} A=[1562]的特征值,并求特征值7对应的特征向量。
解:
根据定义,存在数
λ
\lambda
λ使得
A
x
=
λ
x
Ax=\lambda x
Ax=λx有非平凡解
x
x
x,当方程
A
x
=
7
x
Ax=7x
Ax=7x有非平凡解时,
λ
=
7
\lambda = 7
λ=7才能是矩阵
A
A
A的特征值。即:
A x − 7 x = 0 Ax-7x=0 Ax−7x=0
( A − 7 I ) x = 0 (A-7I)x=0 (A−7I)x=0
此方程为齐次方程,先计算其系数矩阵 A − 7 I A-7I A−7I:
A − 7 I = [ 1 6 5 2 ] − [ 7 0 0 7 ] = [ − 6 6 5 − 5 ] A-7I=\begin{bmatrix}1&6\\5&2\end{bmatrix}-\begin{bmatrix}7&0\\0&7\end{bmatrix}=\begin{bmatrix}-6&6\\5&-5\end{bmatrix} A−7I=[1562]−[7007]=[−656−5]
显然, A − 7 I A-7I A−7I的列向量 [ − 6 5 ] \begin{bmatrix}-6\\5\end{bmatrix} [−65]和 [ 6 − 5 ] \begin{bmatrix}6\\-5\end{bmatrix} [6−5]因为满足:
1 × [ − 6 5 ] + 1 × [ 6 − 5 ] = [ 0 0 ] 1\times \begin{bmatrix}-6\\5\end{bmatrix}+1\times \begin{bmatrix}6\\-5\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix} 1×[−65]+1×[6−5]=[00]
所以此二列向量是线性相关的(当然,也可以看出此二列向量是-1倍数的关系,所以可以说明它们是线性相关的),所以方程 ( A − 7 I ) x = 0 (A-7I)x=0 (A−7I)x=0有非平凡解(即向量 x x x的元素不全为0的解),所以满足上述定义,所以7为矩阵 A A A的特征值。
容易解得上述方程组的解为:满足 x 1 = x 2 x_1=x_2 x1=x2的所有向量 x = [ x 1 x 2 ] x=\begin{bmatrix}x_1\\x_2\end{bmatrix} x=[x1x2],如 [ 1 1 ] \begin{bmatrix}1\\1\end{bmatrix} [11], [ 2 2 ] \begin{bmatrix}2\\2\end{bmatrix} [22]等,这些向量(零向量除外)都是 λ = 7 \lambda = 7 λ=7对应的特征向量。
当然,矩阵 A = [ 1 6 5 2 ] A=\begin{bmatrix}1&6\\5&2\end{bmatrix} A=[1562]的特征值并不只有7一个,对于所有满足 A x = λ x Ax=\lambda x Ax=λx,即 ( A − λ I ) x = 0 (A-\lambda I)x=0 (A−λI)x=0有非平凡解,的 λ \lambda λ都可以算矩阵 A A A的特征值。
特征空间:由零向量和所有对应于特征值 λ \lambda λ的特征向量构成。特征空间即 ( A − λ I ) x = 0 (A-\lambda I)x=0 (A−λI)x=0所有解得集合,也称为 A − λ I A-\lambda I A−λI的零空间。
特征方程(Characteristic Equation)
例1:求矩阵 A = [ 1 6 5 2 ] A=\begin{bmatrix}1&6\\5&2\end{bmatrix} A=[1562]的特征值。
解:
要求出所有使得
(
A
−
λ
I
)
x
=
0
(A-\lambda I)x=0
(A−λI)x=0有非平凡解的
λ
\lambda
λ的值。此问题等价于求出所有使得
A
−
λ
I
A-\lambda I
A−λI矩阵为不可逆矩阵:
A
−
λ
I
=
[
1
−
λ
6
5
2
−
λ
]
A-\lambda I =\begin{bmatrix}1-\lambda &6\\5&2-\lambda\end{bmatrix}
A−λI=[1−λ562−λ]
d e t ( A − λ I ) = ( 1 − λ ) ( 2 − λ ) − 30 = λ 2 − 3 λ − 28 = ( λ − 7 ) ( λ + 4 ) = 0 det(A-\lambda I )=(1-\lambda)(2-\lambda)-30=\lambda ^2-3\lambda-28=(\lambda-7)(\lambda+4)=0 det(A−λI)=(1−λ)(2−λ)−30=λ2−3λ−28=(λ−7)(λ+4)=0
所以 λ = 7 \lambda=7 λ=7或 λ = − 4 \lambda=-4 λ=−4为矩阵 A A A的特征值。
总结:
本例中,
d
e
t
(
A
−
λ
I
)
=
0
det(A-\lambda I )=0
det(A−λI)=0就是矩阵
A
A
A的特征方程,用特征方程可以判断矩阵
d
e
t
(
A
−
λ
I
)
det(A-\lambda I )
det(A−λI)是否可逆(矩阵的行列式值若为0,则不可逆;如果一个矩阵可逆,则其行列式值不等于零)。
数 λ \lambda λ是矩阵 A A A的特征值的充要条件是: λ \lambda λ是矩阵 A A A的特征方程 d e t ( A − λ I ) = 0 det(A-\lambda I )=0 det(A−λI)=0的根。
对于n阶的矩阵,同样可以用此方法求特征值。
特征多项式(Characteristic Polynomial)
d
e
t
(
A
−
λ
I
)
=
0
det(A-\lambda I )=0
det(A−λI)=0是矩阵
A
A
A的特征方程,其化简出来是一个特征多项式。
例:求矩阵
A
=
[
5
−
2
6
−
1
0
3
−
8
0
0
0
5
4
0
0
0
1
]
A=\begin{bmatrix}5&-2&6&-1\\0&3&-8&0\\0&0&5&4\\0&0&0&1\end{bmatrix}
A=⎣⎢⎢⎡5000−23006−850−1041⎦⎥⎥⎤的特征方程和特征多项式。
解:
d e t ( A − λ I ) = d e t [ 5 − λ − 2 6 − 1 0 3 − λ − 8 0 0 0 5 − λ 4 0 0 0 1 − λ ] = ( 5 − λ ) ( 3 − λ ) ( 5 − λ ) ( 1 − λ ) = ( 5 − λ ) 2 ( 3 − λ ) ( 1 − λ ) = λ 4 − 14 λ 3 + 68 λ 2 − 130 λ + 75 = 0 det(A-\lambda I)=det\begin{bmatrix}5-\lambda&-2&6&-1\\0&3-\lambda&-8&0\\0&0&5-\lambda&4\\0&0&0&1-\lambda\end{bmatrix}=(5-\lambda)(3-\lambda)(5-\lambda)(1-\lambda)=(5-\lambda)^2(3-\lambda)(1-\lambda)=\lambda ^4-14\lambda ^3+68\lambda^2-130\lambda+75=0 det(A−λI)=det⎣⎢⎢⎡5−λ000−23−λ006−85−λ0−1041−λ⎦⎥⎥⎤=(5−λ)(3−λ)(5−λ)(1−λ)=(5−λ)2(3−λ)(1−λ)=λ4−14λ3+68λ2−130λ+75=0
所以,矩阵 A A A的特征方程为:
( 5 − λ ) 2 ( 3 − λ ) ( 1 − λ ) = 0 (5-\lambda)^2(3-\lambda)(1-\lambda)=0 (5−λ)2(3−λ)(1−λ)=0,或:
λ 4 − 14 λ 3 + 68 λ 2 − 130 λ + 75 = 0 \lambda ^4-14\lambda ^3+68\lambda^2-130\lambda+75=0 λ4−14λ3+68λ2−130λ+75=0
而后者( λ 4 − 14 λ 3 + 68 λ 2 − 130 λ + 75 = 0 \lambda ^4-14\lambda ^3+68\lambda^2-130\lambda+75=0 λ4−14λ3+68λ2−130λ+75=0)又称为矩阵 A A A的特征多项式。
注:本例中,因子 ( λ − 5 ) (\lambda - 5) (λ−5)出现了2次,所以称特征值5有重数2,而其他的特征值3、1的重数为1。
使用MATLAB求矩阵特征值
例:对于上面的例题,求矩阵
A
=
[
1
6
5
2
]
A=\begin{bmatrix}1&6\\5&2\end{bmatrix}
A=[1562]特征值,使用eig(A)
函数即可:
A =
1 6
5 2
>> eig(A)
ans =
-4
7
用MATLAB求出矩阵 A A A特征值为-4和7,与上面手算的一致。
矩阵相似、相似变换
矩阵相似定义:如果 A A A和 B B B是 n × n n\times n n×n矩阵,若存在可逆矩阵 P P P使得 P − 1 A P = B P^{-1}AP=B P−1AP=B,或等价地 A = P B P − 1 A=PBP^{-1} A=PBP−1,那么可说 A A A相似于 B B B。令 Q = P − 1 Q=P^{-1} Q=P−1,则有 Q − 1 B Q = A Q^{-1}BQ=A Q−1BQ=A,即 B B B也相似于 A A A,所以两个方向都成立,这样我们可以简单地说 A A A和 B B B相似就行。
相似变换:把矩阵 A A A变成 P − 1 A P P^{-1}AP P−1AP(即 P − 1 A P = B P^{-1}AP=B P−1AP=B)的变换称为相似变换。
矩阵相似定理:如果 n × n n\times n n×n的矩阵 A A A是相似的,那么它们具有相同的特征多项式,因此也具有相同的特征值和相同的重数。
使用QR分解的方法求特征值(数值方法)
对于大多数矩阵来说,计算特征值是困难的,因为特征方程的零点用数值方法(如牛顿法)计算有困难,其计算的速度和精度难以保障。
所以,如果需要使用数值方法求矩阵特征值,就要换用其他方法。由矩阵相似定理可知,如果任何与矩阵
A
A
A相似的矩阵,都与矩阵
A
A
A有相同的特征值。
计算方法如下:先找到一系列可以收敛于一个上三角矩阵的且与矩阵
A
A
A相似的矩阵(使用QR分解的方法,求出这一系列矩阵),如果可以找到这样的矩阵,那么这一系列矩阵收敛的极限矩阵(三角矩阵)的对角线元素就是矩阵
A
A
A的特征值。
(注:此处用到三角矩阵的一个性质:三角矩阵的主对角线元素就是其特征值。例如,矩阵 A = [ 4 7 5 0 0 2 0 0 1 ] A=\begin{bmatrix}4&7&5\\0&0&2\\0&0&1\end{bmatrix} A=⎣⎡400700521⎦⎤的特征值是4、0和1;矩阵 B = [ 3 0 0 2 1 0 6 2 4 ] B=\begin{bmatrix}3&0&0\\2&1&0\\6&2&4\end{bmatrix} B=⎣⎡326012004⎦⎤的特征值是3、1和4。)
该方法的好处:对大多数矩阵,使用QR分解的方法(在这种求特征值的方法中,QR分解可以求出与原矩阵相似的且正交的矩阵,由于这些矩阵是相似且正交的,所以可以减少特征值求解过程的舍入误差),都能找到这样的收敛的一系列矩阵,且因为QR分解的数值计算法速度和精度都较好,所以用此方法计算的特征值,其计算速度和精度也较好。
实际计算中,极线矩阵往往会是分块上三角矩阵(block upper triangular matrix),对其求特征值是可行的。
上述方法总结为:设矩阵 A A A为 n × n n\times n n×n的方阵,将 A A A进行QR分解得: A = Q 0 R 0 A=Q_0R_0 A=Q0R0,然后构造 A 1 = R 0 Q 0 A_1=R_0Q_0 A1=R0Q0;然后对新构造的矩阵 A 1 A_1 A1进行QR分解得: A 1 = Q 1 R 1 A_1=Q_1R_1 A1=Q1R1,再用 A 1 A_1 A1的QR分解矩阵构造 A 2 A_2 A2得: A 2 = R 1 Q 1 A_2=R_1Q_1 A2=R1Q1,如此类推,直到生成矩阵 A n A_n An,且它的QR分解为: A n = Q n R n A_n=Q_nR_n An=QnRn,然后这个矩阵 A n A_n An的对角线下面的元素充分小或者出现明显不收敛时就停下。
在这个方法中,可以证明的推论(证明过程略):
- A = Q 0 A 1 Q 0 T A=Q_0A_1Q^T_0 A=Q0A1Q0T
- A = ( Q 0 Q 1 ) A 2 ( Q 0 Q 1 ) T A=(Q_0Q_1)A_2(Q_0Q_1)^T A=(Q0Q1)A2(Q0Q1)T
- Q 0 Q 1 Q_0Q_1 Q0Q1是正交矩阵
- 矩阵 A A A、 A 1 A_1 A1和 A 2 A_2 A2直到 A m A_m Am具有相同的特征值
矩阵对角化(Diagonalization)
背景:如果一个 n × n n\times n n×n的方阵 A A A可以被分解为 A = P D P − 1 A=PDP^{-1} A=PDP−1(其中 D D D为对角矩阵(diagonal matrix),即除了对角线元素外(当然,主对角线上的元素也是可以为0的),其他元素都为0的矩阵),这样分解可以显示更多得关于矩阵 A A A的特征值和特征向量的信息,也可以利用此分解式快速求解 A k A^k Ak( k k k较大时也能快速求出)。
例1:设对角阵 D = [ 5 0 0 3 ] D=\begin{bmatrix}5&0\\0&3\end{bmatrix} D=[5003],
则 D 2 = [ 5 0 0 3 ] [ 5 0 0 3 ] = [ 5 2 0 0 3 2 ] D^2=\begin{bmatrix}5&0\\0&3\end{bmatrix}\begin{bmatrix}5&0\\0&3\end{bmatrix}=\begin{bmatrix}5^2&0\\0&3^2\end{bmatrix} D2=[5003][5003]=[520032]
D 3 = D D 2 = [ 5 0 0 3 ] [ 5 2 0 0 3 2 ] = [ 5 3 0 0 3 3 ] D^3=DD^2=\begin{bmatrix}5&0\\0&3\end{bmatrix}\begin{bmatrix}5^2&0\\0&3^2\end{bmatrix}=\begin{bmatrix}5^3&0\\0&3^3\end{bmatrix} D3=DD2=[5003][520032]=[530033]
所以,可以总结出,对于 k ≥ 1 , D k = [ 5 k 0 0 3 k ] k\geq1,D^k=\begin{bmatrix}5^k&0\\0&3^k\end{bmatrix} k≥1,Dk=[5k003k]
总结:从本例可看出,对角阵的幂很容易计算。
例2:设矩阵 A = [ 7 2 − 4 1 ] A=\begin{bmatrix}7&2\\-4&1\end{bmatrix} A=[7−421],给定 A = P D P − 1 A=PDP^{-1} A=PDP−1,其中 P = [ 1 1 − 1 − 2 ] P=\begin{bmatrix}1&1\\-1&-2\end{bmatrix} P=[1−11−2], D = [ 5 0 0 3 ] D=\begin{bmatrix}5&0\\0&3\end{bmatrix} D=[5003],求 A k A^k Ak。
解:
先求矩阵 P P P的逆 P − 1 = [ 2 1 − 1 − 1 ] P^{-1}=\begin{bmatrix}2&1\\-1&-1\end{bmatrix} P−1=[2−11−1]
结合矩阵乘法: A 2 = ( P D P − 1 ) ( P D P − 1 ) = P D ( P − 1 P ) D P − 1 = P D D P − 1 = P D 2 P − 1 A^2=(PDP^{-1})(PDP^{-1})=PD(P^{-1}P)DP^{-1}=PDDP^{-1}=PD^2P^{-1} A2=(PDP−1)(PDP−1)=PD(P−1P)DP−1=PDDP−1=PD2P−1,
同理有: A 3 = A A 2 = ( P D P − 1 ) A 2 = ( P D P − 1 ) ( P D 2 P − 1 ) = P D ( P − 1 P ) D 2 P − 1 = P D 3 P − 1 A^3=AA^2=(PDP^{-1})A^2=(PDP^{-1})(PD^2P^{-1})=PD(P^{-1}P)D^2P^{-1}=PD^3P^{-1} A3=AA2=(PDP−1)A2=(PDP−1)(PD2P−1)=PD(P−1P)D2P−1=PD3P−1,
所以,一般地,对于 k ≥ 1 , A k = P D k P − 1 = [ 1 1 − 1 − 2 ] [ 5 k 0 0 3 k ] [ 2 1 − 1 − 1 ] = [ 2 ⋅ 5 k − 3 k 5 k − 3 k 2 ⋅ 3 k − 2 ⋅ 5 k 2 ⋅ 3 k − 5 k ] k\geq1,A^k=PD^kP^{-1}=\begin{bmatrix}1&1\\-1&-2\end{bmatrix}\begin{bmatrix}5^k&0\\0&3^k\end{bmatrix}\begin{bmatrix}2&1\\-1&-1\end{bmatrix}=\begin{bmatrix}2\cdot5^k-3^k &5^k-3^k\\2\cdot3^k-2\cdot5^k&2\cdot3^k-5^k\end{bmatrix} k≥1,Ak=PDkP−1=[1−11−2][5k003k][2−11−1]=[2⋅5k−3k2⋅3k−2⋅5k5k−3k2⋅3k−5k]
总结:根据相似定理,如果方阵 A A A相似于对角矩阵 D D D,则有 A = P D P − 1 A=PDP^{-1} A=PDP−1,那么此时可以称矩阵 A A A可对角化。
对角化定理
对角化定理: n × n n\times n n×n的方阵 A A A可对角化(即 A = P D P − 1 A=PDP^{-1} A=PDP−1,且 D D D为对角阵)的充要条件是:方阵 A A A有 n n n个线性无关的特征向量,也可以说是矩阵 P P P的列向量是 A A A的 n n n个线性无关特征向量。此时, D D D的主对角线上的元素分别是 A A A的对应于 P P P中的特征向量的特征值。
例1:判断矩阵是否可以对角化,如果可以,对角化之: A = [ 1 3 3 − 3 − 5 − 3 3 3 1 ] A=\begin{bmatrix}1&3&3\\-3&-5&-3\\3&3&1\end{bmatrix} A=⎣⎡1−333−533−31⎦⎤。
解:
先求矩阵 A A A的特征值:
0 = d e t ( A − λ I ) = − λ 3 − 3 λ + 4 = − ( λ − 1 ) ( λ + 2 ) 2 0=det(A-\lambda I)=-\lambda^3-3\lambda+4=-(\lambda-1)(\lambda+2)^2 0=det(A−λI)=−λ3−3λ+4=−(λ−1)(λ+2)2
所以,矩阵
A
A
A的特征值为
λ
=
1
\lambda=1
λ=1和
λ
=
−
2
\lambda=-2
λ=−2。
当矩阵阶数大于
2
×
2
2\times 2
2×2时,可以用MATLAB求特征值:
A =
1 3 3
-3 -5 -3
3 3 1
>> eig(A)
ans =
1.000000000000000e+00
-2.000000000000000e+00
-1.999999999999998e+00
用MATLAB求出来,可见 λ ≈ − 2 \lambda \approx-2 λ≈−2有两个,这是符合上面因式分解的结果的( λ = − 2 \lambda=-2 λ=−2的重数为2), λ = 1 \lambda=1 λ=1是另一个特征值。
再求矩阵
A
A
A的3个线性无关的特征向量:
因为矩阵
A
A
A是
3
×
3
3\times 3
3×3的矩阵,由对角化定理可知,需要找到3个线性无关的特征向量,如果找不到,那么
A
A
A就不能对角化:
求特征值
λ
=
1
\lambda=1
λ=1对应的基:
化简方程
(
A
−
λ
I
)
x
=
(
A
−
1
I
)
x
=
0
(A-\lambda I)x=(A-1 I)x=0
(A−λI)x=(A−1I)x=0对应的增广矩阵:
[
A
−
λ
I
0
]
=
[
1
−
λ
3
3
0
−
3
−
5
−
λ
−
3
0
3
3
1
−
λ
0
]
=
[
0
3
3
0
−
3
−
6
−
3
0
3
3
0
0
]
→
[
1
0
−
1
0
0
1
1
0
0
0
0
0
]
[A-\lambda I\quad 0]=\begin{bmatrix}1-\lambda&3&3&0\\-3&-5-\lambda&-3&0\\3&3&1-\lambda&0\end{bmatrix}=\begin{bmatrix}0&3&3&0\\-3&-6&-3&0\\3&3&0&0\end{bmatrix}\rightarrow \begin{bmatrix}1&0&-1&0\\0&1&1&0\\0&0&0&0\end{bmatrix}
[A−λI0]=⎣⎡1−λ−333−5−λ33−31−λ000⎦⎤=⎣⎡0−333−633−30000⎦⎤→⎣⎡100010−110000⎦⎤
通解为:
x
=
[
x
1
x
2
x
3
]
=
x
3
[
1
−
1
1
]
x=\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=x_3\begin{bmatrix}1\\-1\\1\end{bmatrix}
x=⎣⎡x1x2x3⎦⎤=x3⎣⎡1−11⎦⎤
所以特征值
λ
=
1
\lambda=1
λ=1对应的基为:
v
1
=
[
1
−
1
1
]
v_1=\begin{bmatrix}1\\-1\\1\end{bmatrix}
v1=⎣⎡1−11⎦⎤
求特征值
λ
=
−
2
\lambda=-2
λ=−2对应的基:
化简方程
(
A
−
λ
I
)
x
=
(
A
+
2
I
)
x
=
0
(A-\lambda I)x=(A+2 I)x=0
(A−λI)x=(A+2I)x=0对应的增广矩阵:
[
A
−
λ
I
0
]
=
[
1
−
λ
3
3
0
−
3
−
5
−
λ
−
3
0
3
3
1
−
λ
0
]
=
[
3
3
3
0
−
3
−
3
−
3
0
3
3
3
0
]
→
[
1
1
1
0
0
0
0
0
0
0
0
0
]
[A-\lambda I\quad 0]=\begin{bmatrix}1-\lambda&3&3&0\\-3&-5-\lambda&-3&0\\3&3&1-\lambda&0\end{bmatrix}=\begin{bmatrix}3&3&3&0\\-3&-3&-3&0\\3&3&3&0\end{bmatrix}\rightarrow \begin{bmatrix}1&1&1&0\\0&0&0&0\\0&0&0&0\end{bmatrix}
[A−λI0]=⎣⎡1−λ−333−5−λ33−31−λ000⎦⎤=⎣⎡3−333−333−33000⎦⎤→⎣⎡100100100000⎦⎤
通解为: x = [ x 1 x 2 x 3 ] = x 2 [ − 1 1 0 ] + x 3 [ − 1 0 1 ] x=\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=x_2\begin{bmatrix}-1\\1\\0\end{bmatrix}+x_3\begin{bmatrix}-1\\0\\1\end{bmatrix} x=⎣⎡x1x2x3⎦⎤=x2⎣⎡−110⎦⎤+x3⎣⎡−101⎦⎤
所以特征值 λ = − 2 \lambda=-2 λ=−2对应的基为:
v 2 = [ − 1 1 0 ] v_2=\begin{bmatrix}-1\\1\\0\end{bmatrix} v2=⎣⎡−110⎦⎤和 v 3 = [ − 1 0 1 ] v_3=\begin{bmatrix}-1\\0\\1\end{bmatrix} v3=⎣⎡−101⎦⎤
容易验证 v 1 v_1 v1和 v 2 v_2 v2和 v 3 v_3 v3是线性无关的。
使用上面求得的3个线性无关的特征向量构造矩阵 P = [ v 1 v 2 v 3 ] P=[v_1\quad v_2\quad v_3] P=[v1v2v3], v 1 v_1 v1、 v 2 v_2 v2和 v 3 v_3 v3的顺序可以随意排列。
P = [ v 1 v 2 v 3 ] = [ 1 − 1 − 1 − 1 1 0 1 0 1 ] P=[v_1\quad v_2\quad v_3]=\begin{bmatrix}1&-1&-1\\-1&1&0\\1&0&1\end{bmatrix} P=[v1v2v3]=⎣⎡1−11−110−101⎦⎤
再构造矩阵
D
D
D,把矩阵
A
A
A的特征值放在矩阵
D
D
D的主对角线上,注意特征值的次序要和上面构造
P
P
P时使用的特征向量的次序对应一致(例如,上面特征值1对应的特征向量
v
1
v_1
v1是排在第一列的,所以特征值1要放在
D
D
D的第一列的主对角线元素上):
D
=
[
1
0
0
0
−
2
0
0
0
−
2
]
D=\begin{bmatrix}1&0&0\\0&-2&0\\0&0&-2\end{bmatrix}
D=⎣⎡1000−2000−2⎦⎤
构造出
D
D
D和
P
P
P后,进行验算,看是否满足
A
=
P
D
P
−
1
A=PDP^{-1}
A=PDP−1,这个式子可以变形为
A
P
=
P
D
AP=PD
AP=PD,先判断矩阵
P
P
P是否可逆:
求矩阵
P
P
P的秩(rank):
P =
1 -1 -1
-1 1 0
1 0 1
>> rank(P)
ans =
3
矩阵 P P P的秩(rank)为3,和其阶数一致,所以矩阵 P P P是可逆的。
A P = [ 1 3 3 − 3 − 5 − 3 3 3 1 ] [ 1 − 1 − 1 − 1 1 0 1 0 1 ] = [ 1 2 2 − 1 − 2 0 1 0 − 2 ] AP=\begin{bmatrix}1&3&3\\-3&-5&-3\\3&3&1\end{bmatrix}\begin{bmatrix}1&-1&-1\\-1&1&0\\1&0&1\end{bmatrix}=\begin{bmatrix}1&2&2\\-1&-2&0\\1&0&-2\end{bmatrix} AP=⎣⎡1−333−533−31⎦⎤⎣⎡1−11−110−101⎦⎤=⎣⎡1−112−2020−2⎦⎤
P D = [ 1 − 1 − 1 − 1 1 0 1 0 1 ] [ 1 0 0 0 − 2 0 0 0 − 2 ] = [ 1 2 2 − 1 − 2 0 1 0 − 2 ] PD=\begin{bmatrix}1&-1&-1\\-1&1&0\\1&0&1\end{bmatrix}\begin{bmatrix}1&0&0\\0&-2&0\\0&0&-2\end{bmatrix}=\begin{bmatrix}1&2&2\\-1&-2&0\\1&0&-2\end{bmatrix} PD=⎣⎡1−11−110−101⎦⎤⎣⎡1000−2000−2⎦⎤=⎣⎡1−112−2020−2⎦⎤
可见 A P = P D AP=PD AP=PD成立且 P P P可逆,即 A = P D P − 1 A=PDP^{-1} A=PDP−1成立,所以以上矩阵 A A A的对角化成立。
例2:试对矩阵 A = [ 2 4 3 − 4 − 6 − 3 3 3 1 ] A=\begin{bmatrix}2&4&3\\-4&-6&-3\\3&3&1\end{bmatrix} A=⎣⎡2−434−633−31⎦⎤对角化。
解:
A
A
A的特征方程:
0
=
d
e
t
(
A
−
λ
I
)
=
−
(
λ
−
1
)
(
λ
+
2
)
2
0=det(A-\lambda I)=-(\lambda-1)(\lambda+2)^2
0=det(A−λI)=−(λ−1)(λ+2)2
所以特征值为:1和-2。
用上例的方法求得:
特征值1对应的特征向量为:
v
1
=
[
1
−
1
1
]
v_1=\begin{bmatrix}1\\-1\\1\end{bmatrix}
v1=⎣⎡1−11⎦⎤
特征值2对应的特征向量为:
v
2
=
[
−
1
1
0
]
v_2=\begin{bmatrix}-1\\1\\0\end{bmatrix}
v2=⎣⎡−110⎦⎤
检验
v
1
v_1
v1、
v
2
v_2
v2是否线性相关:
[
v
1
v
2
0
]
=
[
1
−
1
0
−
1
1
0
1
0
0
]
→
[
1
0
0
0
1
0
0
0
0
]
[v_1\quad v_2\quad 0]=\begin{bmatrix}1&-1&0\\-1&1&0\\1&0&0\end{bmatrix}\rightarrow \begin{bmatrix}1&0&0\\0&1&0\\0&0&0\end{bmatrix}
[v1v20]=⎣⎡1−11−110000⎦⎤→⎣⎡100010000⎦⎤
方程
[
v
1
v
2
]
x
=
0
[v_1\quad v_2]x=0
[v1v2]x=0仅有平凡解,所以矩阵
[
v
1
v
2
]
[v_1\quad v_2]
[v1v2]各列线性无关,所以特征向量
v
1
v_1
v1、
v
2
v_2
v2线性无关。
但是根据对角化定理,虽然 v 1 v_1 v1、 v 2 v_2 v2线性无关,但是仅有2个特征向量,没达到3个所以矩阵 A A A不能对角化。
例3:判断矩阵 A = [ 5 − 8 1 0 0 7 0 0 − 2 ] A=\begin{bmatrix}5&-8&1\\0&0&7\\0&0&-2\end{bmatrix} A=⎣⎡500−80017−2⎦⎤是否可以对角化。
解:
因为
A
A
A为三角阵,其主对角线元素就是特征值,所以其特征值为5、0和-2,这是三个相异的特征值,所以可以对角化。
总结:
一个判断矩阵对角化的充分条件:如果
n
×
n
n\times n
n×n的矩阵
A
A
A有
n
n
n个相异的特征值,则可以对角化。
当然,
n
×
n
n\times n
n×n的矩阵不是必须有
n
n
n个不同特征值才可以对角化的,例如上面的例2,仅有2个不同特征值也能对角化。
奇异值分解(Singular Value Decomposition,SVD)
背景:由上述对矩阵对角化的讨论可知,矩阵的对角化,即 A = P D P − 1 A=PDP^{-1} A=PDP−1( D D D为对角阵)的分解有很多简便的用途,但是不是所有矩阵都有这样的分解的。但是,所有的矩阵都可以分解成 A = Q D P − 1 A=QDP^{-1} A=QDP−1,这就是奇异值分解SVD,它是线性代数中最有用的分解之一。
例:矩阵 A = [ 4 11 14 8 7 − 2 ] A=\begin{bmatrix}4&11&14\\8&7&-2\end{bmatrix} A=[4811714−2],线性变换 x ∣ → A x x|\rightarrow Ax x∣→Ax将 R 3 R^3 R3中的单位球 { x : ∣ ∣ x ∣ ∣ = 1 } \{x:||x||=1\} {x:∣∣x∣∣=1}映射为 R 2 R^2 R2中的椭圆。请找出使得长度 ∣ ∣ A x ∣ ∣ ||Ax|| ∣∣Ax∣∣最大的一个单位向量 x x x,并计算这个最大长度。
解:
举例:例如
R
3
R^3
R3中的一个点
x
=
[
1
2
3
]
x=\begin{bmatrix}1\\2\\3\end{bmatrix}
x=⎣⎡123⎦⎤,经过线性变换
x
∣
→
A
x
x|\rightarrow Ax
x∣→Ax后,即:
x
′
=
A
x
=
[
4
11
14
8
7
−
2
]
[
1
2
3
]
=
[
68
16
]
x^{'}=Ax=\begin{bmatrix}4&11&14\\8&7&-2\end{bmatrix}\begin{bmatrix}1\\2\\3\end{bmatrix}=\begin{bmatrix}68\\16\end{bmatrix}
x′=Ax=[4811714−2]⎣⎡123⎦⎤=[6816]
可见,原来的三维点变成了二维,其线性变换公式就是 A x Ax Ax。
题目要求使得长度 ∣ ∣ A x ∣ ∣ ||Ax|| ∣∣Ax∣∣最大,那么也是 ∣ ∣ A x ∣ ∣ 2 ||Ax||^2 ∣∣Ax∣∣2最大,后者更好计算,因为:
∣ ∣ A x ∣ ∣ 2 = ( A x ) T ( A x ) = x T A T A x = x T ( A T A ) x ||Ax||^2=(Ax)^T(Ax)=x^TA^TAx=x^T(A^TA)x ∣∣Ax∣∣2=(Ax)T(Ax)=xTATAx=xT(ATA)x,
其中 ( 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 A^TA ATA是对称矩阵。
由于经过转化后的 A x Ax Ax的模为 x T ( A T A ) x x^T(A^TA)x xT(ATA)x,要使之最大,所以,现在问题转化为在条件 ∣ ∣ x ∣ ∣ = 1 ||x||=1 ∣∣x∣∣=1的限制下,求二次型 x T ( A T A ) x x^T(A^TA)x xT(ATA)x最大值,并求对应的单位向量。
因为,二次型 x T ( A T A ) x x^T(A^TA)x xT(ATA)x最大值就是矩阵 A T A A^TA ATA的最大特征值,所以先求阵 A T A A^TA ATA:
A T A = [ 4 8 11 7 14 − 2 ] [ 4 11 14 8 7 − 2 ] = [ 80 100 40 100 170 140 40 140 200 ] A^TA=\begin{bmatrix}4&8\\11&7\\14&-2\end{bmatrix}\begin{bmatrix}4&11&14\\8&7&-2\end{bmatrix}=\begin{bmatrix}80&100&40\\100&170&140\\40&140&200\end{bmatrix} ATA=⎣⎡4111487−2⎦⎤[4811714−2]=⎣⎡801004010017014040140200⎦⎤
所以二次型 x T ( A T A ) x = 80 x 1 2 + 170 x 2 2 + 200 x 3 2 + 200 x 1 x 2 + 80 x 1 x 3 + 280 x 2 x 3 x^T(A^TA)x=80x_1^2+170x_2^2+200x_3^2+200x_1x_2+80x_1x_3+280x_2x_3 xT(ATA)x=80x12+170x22+200x32+200x1x2+80x1x3+280x2x3
求出矩阵 A T A A^TA ATA特征值:
A =
80 100 40
100 170 140
40 140 200
>> eig(A)
ans =
-0.0000
90.0000
360.0000
特征值和对应的单位特征向量:
λ
1
=
360
,
u
1
=
[
1
3
2
3
2
3
]
\lambda_1 =360,u_1=\begin{bmatrix}\frac{1}{3}\\\frac{2}{3}\\\frac{2}{3}\end{bmatrix}
λ1=360,u1=⎣⎡313232⎦⎤
λ
2
=
90
,
u
2
=
[
−
2
3
−
1
3
2
3
]
\lambda_2 =90,u_2=\begin{bmatrix}-\frac{2}{3}\\-\frac{1}{3}\\\frac{2}{3}\end{bmatrix}
λ2=90,u2=⎣⎡−32−3132⎦⎤
λ
3
=
0
,
u
3
=
[
2
3
−
2
3
1
3
]
\lambda_3 =0,u_3=\begin{bmatrix}\frac{2}{3}\\-\frac{2}{3}\\\frac{1}{3}\end{bmatrix}
λ3=0,u3=⎣⎡32−3231⎦⎤
因为 ∣ ∣ A x ∣ ∣ 2 = x T ( A T A ) x ||Ax||^2=x^T(A^TA)x ∣∣Ax∣∣2=xT(ATA)x的最大值为360,且在对应的单位特征向量 u 1 = [ 2 3 − 2 3 1 3 ] u_1=\begin{bmatrix}\frac{2}{3}\\-\frac{2}{3}\\\frac{1}{3}\end{bmatrix} u1=⎣⎡32−3231⎦⎤处取得,
A u 1 = [ 4 11 14 8 7 − 2 ] [ 1 3 2 3 2 3 ] = [ 18 6 ] = [ y 1 y 2 ] Au_1=\begin{bmatrix}4&11&14\\8&7&-2\end{bmatrix}\begin{bmatrix}\frac{1}{3}\\\frac{2}{3}\\\frac{2}{3}\end{bmatrix}=\begin{bmatrix}18\\6\end{bmatrix}=\begin{bmatrix}y_1\\y_2\end{bmatrix} Au1=[4811714−2]⎣⎡313232⎦⎤=[186]=[y1y2]
[ y 1 y 2 ] \begin{bmatrix}y_1\\y_2\end{bmatrix} [y1y2]为经过线性变换 x ∣ → A x x|\rightarrow Ax x∣→Ax后的坐标,上式表明,向量 A u 1 = [ 18 6 ] Au_1=\begin{bmatrix}18\\6\end{bmatrix} Au1=[186]即指向新坐标系中距离原点最远的点 ( 18 , 6 ) (18,6) (18,6),即该椭圆长轴的一个端点。且对于 ∣ ∣ x ∣ ∣ = 1 ||x||=1 ∣∣x∣∣=1, ∣ ∣ A x ∣ ∣ ||Ax|| ∣∣Ax∣∣最大值为 360 \sqrt{360} 360。
奇异值(Singular Value)
定义:如果 A A A为 m × n m\times n m×n的矩阵, A T A A^TA ATA为对称矩阵且可正交对角化, { u 1 , … , u n } \{u_1,\dots,u_n\} {u1,…,un}是 R n R^n Rn的单位正交向基且构成 A T A A^TA ATA的特征向量, λ 1 , , … , λ n \lambda_1,,\dots,\lambda_n λ1,,…,λn是 A T A A^TA ATA对应的特征值,那么对于 1 ≤ i ≤ n 1\le i\le n 1≤i≤n,有:
∣ ∣ A u i ∣ ∣ 2 = ( A u i ) T ( A u i ) = v i T A T A u i = u i T ( A T A ) u i = u i T ( A T A u i ) = u i T ( λ i u i ) = λ i ||Au_i||^2=(Au_i)^T(Au_i)=v_i^TA^TAu_i=u_i^T(A^TA)u_i=u_i^T(A^TAu_i)=u_i^T(\lambda_iu_i)=\lambda_i ∣∣Aui∣∣2=(Aui)T(Aui)=viTATAui=uiT(ATA)ui=uiT(ATAui)=uiT(λiui)=λi
即
∣
∣
A
u
i
∣
∣
2
=
λ
i
||Au_i||^2=\lambda_i
∣∣Aui∣∣2=λi,可见
A
T
A
A^TA
ATA的所有特征值非负,对所有特征值进行排列:
λ
1
≥
λ
2
≥
⋯
≥
λ
n
≥
0
\lambda_1\ge \lambda_2\ge \dots \ge \lambda_n\ge0
λ1≥λ2≥⋯≥λn≥0,
则矩阵
A
A
A的奇异值是
A
T
A
A^TA
ATA特征值的平方根(按递减顺序排列),记作
σ
1
,
…
,
σ
n
\sigma_1,\dots,\sigma_n
σ1,…,σn,即
σ
i
=
λ
i
\sigma_i=\sqrt{\lambda_i}
σi=λi。
由上例可知,矩阵
A
A
A的奇异值其实是向量
A
u
1
,
…
,
A
u
n
Au_1,\dots,Au_n
Au1,…,Aun的长度。
所以,上例对应于特征值360、90、0的奇异值分别为
σ
1
=
λ
1
=
360
\sigma_1=\sqrt{\lambda_1}=\sqrt{360}
σ1=λ1=360
σ
2
=
λ
2
=
90
\sigma_2=\sqrt{\lambda_2}=\sqrt{90}
σ2=λ2=90
σ
3
=
λ
3
=
0
=
0
\sigma_3=\sqrt{\lambda_3}=\sqrt{0}=0
σ3=λ3=0=0
又因为 A A A的第二个奇异值是 ∣ ∣ A x ∣ ∣ ||Ax|| ∣∣Ax∣∣在所有与 u 1 u_1 u1正交的单位向量 u 2 u_2 u2上的最大值,且这个最大值在第二个单位特征向量 u 2 u_2 u2处获得,所以:
A u 2 = [ 4 11 14 8 7 − 2 ] [ − 2 3 − 1 3 2 3 ] = [ 3 − 9 ] Au_2=\begin{bmatrix}4&11&14\\8&7&-2\end{bmatrix}\begin{bmatrix}-\frac{2}{3}\\-\frac{1}{3}\\\frac{2}{3}\end{bmatrix}=\begin{bmatrix}3\\-9\end{bmatrix} Au2=[4811714−2]⎣⎡−32−3132⎦⎤=[3−9]
而点 ( 3 , − 9 ) (3,-9) (3,−9)在新的椭圆的短轴端点。
所以,矩阵 A A A的前两个奇异值其实是椭圆长版轴和短半轴的长度。
奇异值分解定理
定理:如果
A
A
A是一个秩为
r
r
r的
m
×
n
m\times n
m×n的矩阵,那么存在一个形为
Σ
=
[
D
0
0
0
]
\Sigma=\begin{bmatrix}D&0\\0&0\end{bmatrix}
Σ=[D000]的
m
×
n
m\times n
m×n的矩阵(其中
D
D
D为
r
×
r
r\times r
r×r的且对角线元素为正的对角阵,
r
r
r不超过
m
m
m、
n
n
n中较小的那个),其中
D
D
D的对角线元素是
A
A
A的前
r
r
r个奇异值,
σ
1
≥
σ
2
≥
⋯
≥
σ
r
≥
0
\sigma_1\ge\sigma_2\ge \dots \ge \sigma_r\ge0
σ1≥σ2≥⋯≥σr≥0,并且存在一个
m
×
m
m\times m
m×m的正交矩阵
U
U
U和一个
n
×
n
n\times n
n×n的正交矩阵
V
V
V使得
A
=
U
Σ
V
T
A=U\Sigma V^T
A=UΣVT。任何分解
A
=
U
Σ
V
T
A=U\Sigma V^T
A=UΣVT都称为
A
A
A的一个奇异值分解(SVD)。
注意,
U
U
U和
V
V
V不是由
A
A
A唯一确定的。
U
U
U中的列称为
A
A
A的左奇异向量(Left Singular Vectors),
V
V
V的列称为
A
A
A的右奇异向量(Right Singular Vectors)。
例:求上例中的矩阵 A = [ 4 11 14 8 7 − 2 ] A=\begin{bmatrix}4&11&14\\8&7&-2\end{bmatrix} A=[4811714−2]的一个奇异值分解。
解:
求奇异值分解可分三步
- 将矩阵 A T A A^TA ATA正交对角化。先求矩阵 A T A A^TA ATA的特征值及对应的特征向量的单位正交集。
- 计算矩阵
V
V
V和矩阵
Σ
\Sigma
Σ。将矩阵
A
T
A
A^TA
ATA的特征值降序排列,
由上例可知,
特征值和对应的单位特征向量:
λ
1
=
360
,
u
1
=
[
1
3
2
3
2
3
]
\lambda_1 =360,u_1=\begin{bmatrix}\frac{1}{3}\\\frac{2}{3}\\\frac{2}{3}\end{bmatrix}
λ1=360,u1=⎣⎡313232⎦⎤
λ
2
=
90
,
u
2
=
[
−
2
3
−
1
3
2
3
]
\lambda_2 =90,u_2=\begin{bmatrix}-\frac{2}{3}\\-\frac{1}{3}\\\frac{2}{3}\end{bmatrix}
λ2=90,u2=⎣⎡−32−3132⎦⎤
λ
3
=
0
,
u
3
=
[
2
3
−
2
3
1
3
]
\lambda_3 =0,u_3=\begin{bmatrix}\frac{2}{3}\\-\frac{2}{3}\\\frac{1}{3}\end{bmatrix}
λ3=0,u3=⎣⎡32−3231⎦⎤
所以
V
=
[
u
1
u
2
u
3
]
=
[
1
3
−
2
3
2
3
2
3
−
1
3
−
2
3
2
3
2
3
1
3
]
V=\begin{bmatrix}u_1&u_2&u_3\end{bmatrix}=\begin{bmatrix}\frac{1}{3}&-\frac{2}{3}&\frac{2}{3}\\\frac{2}{3}&-\frac{1}{3}&-\frac{2}{3}\\\frac{2}{3}&\frac{2}{3}&\frac{1}{3}\end{bmatrix}
V=[u1u2u3]=⎣⎡313232−32−313232−3231⎦⎤
下面构造矩阵
Σ
\Sigma
Σ:
由于上例对应于特征值360、90、0的奇异值分别为
σ
1
=
λ
1
=
360
\sigma_1=\sqrt{\lambda_1}=\sqrt{360}
σ1=λ1=360
σ
2
=
λ
2
=
90
\sigma_2=\sqrt{\lambda_2}=\sqrt{90}
σ2=λ2=90
σ
3
=
λ
3
=
0
=
0
\sigma_3=\sqrt{\lambda_3}=\sqrt{0}=0
σ3=λ3=0=0
所以非零奇异值为矩阵 D D D的对角线元素,所以:
D = [ 360 0 0 90 ] D=\begin{bmatrix}\sqrt{360}&0\\0&\sqrt{90}\end{bmatrix} D=[3600090]
而矩阵 D D D是矩阵 Σ \Sigma Σ的左上角,其他元素放0即可,所以:
Σ = [ D 0 ] = [ 360 0 0 0 90 0 ] \Sigma=\begin{bmatrix}D&0\end{bmatrix}=\begin{bmatrix}\sqrt{360}&0&0\\0&\sqrt{90}&0\end{bmatrix} Σ=[D0]=[360009000]
- 构造矩阵 U U U。当矩阵 A A A的秩为 r r r时,矩阵 U U U的前 r r r列是从 A u 1 , … , A u n Au_1,\dots,Au_n Au1,…,Aun计算得到的单位向量。因为本例中,矩阵 A A A有两个非零奇异值,所以 r a n k A = 2 rank\space A=2 rank A=2,且 ∣ ∣ A u 1 ∣ ∣ = σ 1 ||Au_1||=\sigma_1 ∣∣Au1∣∣=σ1, ∣ ∣ A u 2 ∣ ∣ = σ 2 ||Au_2||=\sigma_2 ∣∣Au2∣∣=σ2
由于上面计算得:
A
u
1
=
[
4
11
14
8
7
−
2
]
[
1
3
2
3
2
3
]
=
[
18
6
]
Au_1=\begin{bmatrix}4&11&14\\8&7&-2\end{bmatrix}\begin{bmatrix}\frac{1}{3}\\\frac{2}{3}\\\frac{2}{3}\end{bmatrix}=\begin{bmatrix}18\\6\end{bmatrix}
Au1=[4811714−2]⎣⎡313232⎦⎤=[186]
A u 2 = [ 4 11 14 8 7 − 2 ] [ − 2 3 − 1 3 2 3 ] = [ 3 − 9 ] Au_2=\begin{bmatrix}4&11&14\\8&7&-2\end{bmatrix}\begin{bmatrix}-\frac{2}{3}\\-\frac{1}{3}\\\frac{2}{3}\end{bmatrix}=\begin{bmatrix}3\\-9\end{bmatrix} Au2=[4811714−2]⎣⎡−32−3132⎦⎤=[3−9]
把向量 A u 1 = [ 18 6 ] Au_1=\begin{bmatrix}18\\6\end{bmatrix} Au1=[186]和向量 A u 2 = [ 3 − 9 ] Au_2=\begin{bmatrix}3\\-9\end{bmatrix} Au2=[3−9]单位化:
u 1 ′ = 1 σ 1 A u 1 = 1 1 8 2 + 6 2 [ 18 6 ] = 1 360 [ 18 6 ] = [ 3 10 1 10 ] u_1^{'}=\frac{1}{\sigma_1}Au_1=\frac{1}{\sqrt{18^2+6^2}}\begin{bmatrix}18\\6\end{bmatrix}=\frac{1}{\sqrt{360}}\begin{bmatrix}18\\6\end{bmatrix}=\begin{bmatrix}\frac{3}{\sqrt{10}}\\\frac{1}{\sqrt{10}}\end{bmatrix} u1′=σ11Au1=182+621[186]=3601[186]=[103101]
u 2 ′ = 1 σ 2 A u 2 = 1 3 2 + ( − 9 ) 2 [ 3 − 9 ] = 1 90 [ 3 − 9 ] = [ 1 10 − 3 10 ] u_2^{'}=\frac{1}{\sigma_2}Au_2=\frac{1}{\sqrt{3^2+(-9)^2}}\begin{bmatrix}3\\-9\end{bmatrix}=\frac{1}{\sqrt{90}}\begin{bmatrix}3\\-9\end{bmatrix}=\begin{bmatrix}\frac{1}{\sqrt{10}}\\-\frac{3}{\sqrt{10}}\end{bmatrix} u2′=σ21Au2=32+(−9)21[3−9]=901[3−9]=[101−103]
所以,现在得到了属于 R 2 R^2 R2的基, { u 1 , u 2 } \{u_1,u_2\} {u1,u2},
所以构造 U = [ u 1 u 2 ] = [ 3 10 1 10 1 10 − 3 10 ] U=\begin{bmatrix}u_1&u_2\end{bmatrix}=\begin{bmatrix}\frac{3}{\sqrt{10}}&\frac{1}{\sqrt{10}}\\\frac{1}{\sqrt{10}}&-\frac{3}{\sqrt{10}}\end{bmatrix} U=[u1u2]=[103101101−103]
所以 A A A的一个奇异值分解为:
A = U Σ V T = [ 3 10 1 10 1 10 − 3 10 ] [ 360 0 0 0 90 0 ] [ 1 3 2 3 2 3 − 2 3 − 1 3 2 3 2 3 − 2 3 1 3 ] A=U\Sigma V^T=\begin{bmatrix}\frac{3}{\sqrt{10}}&\frac{1}{\sqrt{10}}\\\frac{1}{\sqrt{10}}&-\frac{3}{\sqrt{10}}\end{bmatrix}\begin{bmatrix}\sqrt{360}&0&0\\0&\sqrt{90}&0\end{bmatrix}\begin{bmatrix}\frac{1}{3}&\frac{2}{3}&\frac{2}{3}\\-\frac{2}{3}&-\frac{1}{3}&\frac{2}{3}\\\frac{2}{3}&-\frac{2}{3}&\frac{1}{3}\end{bmatrix} A=UΣVT=[103101101−103][360009000]⎣⎡31−323232−31−32323231⎦⎤
例4:求矩阵 A = [ 1 − 1 − 2 2 2 − 2 ] A=\begin{bmatrix}1&-1\\-2&2\\2&-2\end{bmatrix} A=⎣⎡1−22−12−2⎦⎤的一个奇异值分解。
解:
先计算
A
T
A
=
[
9
−
9
−
9
9
]
A^TA=\begin{bmatrix}9&-9\\-9&9\end{bmatrix}
ATA=[9−9−99](
A
T
A
A^TA
ATA为对称矩阵且可正交对角化),求得
A
T
A
A^TA
ATA特征值为18,0.
特征值18对应的单位特征向量为:
v
1
=
[
−
1
2
1
2
]
v_1=\begin{bmatrix}-\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\end{bmatrix}
v1=[−2121]
特征值0对应的单位特征向量为: v 2 = [ 1 2 1 2 ] v_2=\begin{bmatrix}\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\end{bmatrix} v2=[2121]
所以 V = [ v 1 v 2 ] = [ − 1 2 1 2 1 2 1 2 ] V=\begin{bmatrix}v_1&v_2\end{bmatrix}=\begin{bmatrix}-\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\end{bmatrix} V=[v1v2]=[−21212121]
矩阵的奇异值为 σ 1 = 18 = 3 2 \sigma_1=\sqrt{18}=3\sqrt{2} σ1=18=32, σ 2 = 0 \sigma_2=0 σ2=0,因为只有一个非零奇异值,所以矩阵 D D D只有一个值,即 D = 3 2 D=3\sqrt{2} D=32,矩阵 Σ \Sigma Σ形状同 A A A:
Σ = [ 3 2 0 0 0 0 0 ] \Sigma=\begin{bmatrix}3\sqrt{2}&0\\0&0\\0&0\end{bmatrix} Σ=⎣⎡3200000⎦⎤
为了构造
U
U
U,先求
A
v
1
Av_1
Av1、
A
v
2
Av_2
Av2:
A
v
1
=
[
−
2
2
2
−
2
2
]
Av_1=\begin{bmatrix}-\sqrt{2}\\2\sqrt{2}\\-2\sqrt{2}\end{bmatrix}
Av1=⎣⎡−222−22⎦⎤
A v 2 = [ 0 0 0 ] Av_2=\begin{bmatrix}0\\0\\0\end{bmatrix} Av2=⎣⎡000⎦⎤
将 A v 1 Av_1 Av1单位化: u 1 = [ − 1 3 2 3 − 2 3 ] u_1=\begin{bmatrix}-\frac{1}{3}\\\frac{2}{3}\\-\frac{2}{3}\end{bmatrix} u1=⎣⎡−3132−32⎦⎤
矩阵 U U U的前 r r r列是从 A u 1 , … , A u n Au_1,\dots,Au_n Au1,…,Aun计算得到的单位向量。因为本例中,矩阵 A A A只有有1个非零奇异值,所以 r a n k A = 1 rank\space A=1 rank A=1,且 ∣ ∣ A v 1 ∣ ∣ = σ 1 ||Av_1||=\sigma_1 ∣∣Av1∣∣=σ1。
所以本例中 U U U的第一列是 u 1 = [ − 1 3 2 3 − 2 3 ] u_1=\begin{bmatrix}-\frac{1}{3}\\\frac{2}{3}\\-\frac{2}{3}\end{bmatrix} u1=⎣⎡−3132−32⎦⎤,而其他列要将 { u 1 } \{u_1\} {u1}扩充为 R 3 R^3 R3的单位正交基才能得到。因此,要找到另外两个与 u 1 u_1 u1正交的单位向量 u 2 u_2 u2、 u 3 u_3 u3,此关系可表述为:
u 1 T x = [ − 1 3 2 3 − 2 3 ] [ x 1 x 2 x 3 ] = − 1 3 x 1 + 2 3 x 2 − 2 3 x 3 = 0 u_1^Tx=\begin{bmatrix}-\frac{1}{3}&\frac{2}{3}&-\frac{2}{3}\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=-\frac{1}{3}x_1+\frac{2}{3}x_2-\frac{2}{3}x_3=0 u1Tx=[−3132−32]⎣⎡x1x2x3⎦⎤=−31x1+32x2−32x3=0
通解: x = [ x 1 x 2 x 3 ] = x 2 [ 2 1 0 ] + x 3 [ − 2 0 1 ] x=\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=x_2\begin{bmatrix}2\\1\\0\end{bmatrix}+x_3\begin{bmatrix}-2\\0\\1\end{bmatrix} x=⎣⎡x1x2x3⎦⎤=x2⎣⎡210⎦⎤+x3⎣⎡−201⎦⎤
u 2 = 1 5 [ 2 1 0 ] = [ 2 5 1 5 0 ] u_2=\frac{1}{\sqrt5}\begin{bmatrix}2\\1\\0\end{bmatrix}=\begin{bmatrix}\frac{2}{\sqrt5}\\\frac{1}{\sqrt5}\\0\end{bmatrix} u2=51⎣⎡210⎦⎤=⎣⎡52510⎦⎤
由于 [ 2 1 0 ] \begin{bmatrix}2\\1\\0\end{bmatrix} ⎣⎡210⎦⎤、 [ − 2 0 1 ] \begin{bmatrix}-2\\0\\1\end{bmatrix} ⎣⎡−201⎦⎤与 u 1 = [ − 1 3 2 3 − 2 3 ] u_1=\begin{bmatrix}-\frac{1}{3}\\\frac{2}{3}\\-\frac{2}{3}\end{bmatrix} u1=⎣⎡−3132−32⎦⎤都正交,
下面用格拉姆施密特方法求 S p a n { [ 2 1 0 ] Span\{\begin{bmatrix}2\\1\\0\end{bmatrix} Span{⎣⎡210⎦⎤, [ − 2 0 1 ] } \begin{bmatrix}-2\\0\\1\end{bmatrix}\} ⎣⎡−201⎦⎤}的一个正交基:
令 w 1 = [ 2 1 0 ] w_1=\begin{bmatrix}2\\1\\0\end{bmatrix} w1=⎣⎡210⎦⎤
w 2 = [ − 2 0 1 ] − − 4 5 [ 2 1 0 ] = [ − 2 5 4 5 1 ] w_2=\begin{bmatrix}-2\\0\\1\end{bmatrix}-\frac{-4}{5}\begin{bmatrix}2\\1\\0\end{bmatrix}=\begin{bmatrix}-\frac{2}{5}\\\frac{4}{5}\\1\end{bmatrix} w2=⎣⎡−201⎦⎤−5−4⎣⎡210⎦⎤=⎣⎡−52541⎦⎤
标准化:
u
2
=
1
5
[
2
1
0
]
=
[
2
5
1
5
0
]
u_2=\frac{1}{\sqrt5}\begin{bmatrix}2\\1\\0\end{bmatrix}=\begin{bmatrix}\frac{2}{\sqrt5}\\\frac{1}{\sqrt5}\\0\end{bmatrix}
u2=51⎣⎡210⎦⎤=⎣⎡52510⎦⎤
u 3 = 5 45 [ − 2 5 4 5 1 ] = [ − 2 45 4 45 5 45 ] u_3=\frac{5}{\sqrt{45}}\begin{bmatrix}-\frac{2}{5}\\\frac{4}{5}\\1\end{bmatrix}=\begin{bmatrix}-\frac{2}{\sqrt{45}}\\\frac{4}{\sqrt{45}}\\\frac{5}{\sqrt{45}}\end{bmatrix} u3=455⎣⎡−52541⎦⎤=⎣⎢⎡−452454455⎦⎥⎤
所以: U = [ u 1 u 2 u 3 ] = [ − 1 3 2 5 − 2 45 2 3 1 5 4 45 − 2 3 0 5 45 ] U=\begin{bmatrix}u_1&u_2&u_3\end{bmatrix}=\begin{bmatrix}-\frac{1}{3}&\frac{2}{\sqrt5}&-\frac{2}{\sqrt{45}}\\\frac{2}{3}&\frac{1}{\sqrt5}&\frac{4}{\sqrt{45}}\\-\frac{2}{3}&0&\frac{5}{\sqrt{45}}\end{bmatrix} U=[u1u2u3]=⎣⎢⎡−3132−3252510−452454455⎦⎥⎤
所以 A A A的一个奇异值分解为:
A = U Σ V T = [ u 1 u 2 u 3 ] = [ − 1 3 2 5 − 2 45 2 3 1 5 4 45 − 2 3 0 5 45 ] [ 3 2 0 0 0 0 0 ] [ − 1 2 1 2 1 2 1 2 ] = [ 1 − 1 − 2 2 2 − 2 ] A=U\Sigma V^T=\begin{bmatrix}u_1&u_2&u_3\end{bmatrix}=\begin{bmatrix}-\frac{1}{3}&\frac{2}{\sqrt5}&-\frac{2}{\sqrt{45}}\\\frac{2}{3}&\frac{1}{\sqrt5}&\frac{4}{\sqrt{45}}\\-\frac{2}{3}&0&\frac{5}{\sqrt{45}}\end{bmatrix}\begin{bmatrix}3\sqrt{2}&0\\0&0\\0&0\end{bmatrix}\begin{bmatrix}-\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\end{bmatrix}=\begin{bmatrix}1&-1\\-2&2\\2&-2\end{bmatrix} A=UΣVT=[u1u2u3]=⎣⎢⎡−3132−3252510−452454455⎦⎥⎤⎣⎡3200000⎦⎤[−21212121]=⎣⎡1−22−12−2⎦⎤
经验算上述分解是正确的。
MATLAB做SVD分解
对于上例中的矩阵
A
=
[
1
−
1
−
2
2
2
−
2
]
A=\begin{bmatrix}1&-1\\-2&2\\2&-2\end{bmatrix}
A=⎣⎡1−22−12−2⎦⎤,在MATLAB中做SVD分解,命令[U,S,V]=svd(A)
:
A =
1 -1
-2 2
2 -2
>> [U,S,V]=svd(A)
U =
-0.3333 0.6667 -0.6667
0.6667 0.6667 0.3333
-0.6667 0.3333 0.6667
S =
4.2426 0
0 0
0 0
V =
-0.7071 0.7071
0.7071 0.7071
可见MATLAB中得到的 U U U矩阵第一列与手算是一致的,第二第三列则不一致, S S S矩阵与手算的 Σ \Sigma Σ矩阵一致, V V V矩阵与手算的 V T V^T VT矩阵一致。