特征值与特征向量、特征方程、特征多项式、矩阵相似、相似变换、矩阵对角化、奇异值分解(Singular Value Decomposition)手算加MATLAB

特征值(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=[65] v = [ 3 − 2 ] v=\begin{bmatrix}3\\-2\end{bmatrix} v=[32],判断 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][65]=[2420]=4×[65]=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][32]=[911]=λ[32]

所以, 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 Ax7x=0

( A − 7 I ) x = 0 (A-7I)x=0 (A7I)x=0

此方程为齐次方程,先计算其系数矩阵 A − 7 I A-7I A7I

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} A7I=[1562][7007]=[6565]

显然, A − 7 I A-7I A7I的列向量 [ − 6 5 ] \begin{bmatrix}-6\\5\end{bmatrix} [65] [ 6 − 5 ] \begin{bmatrix}6\\-5\end{bmatrix} [65]因为满足:

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×[65]=[00]

所以此二列向量是线性相关的(当然,也可以看出此二列向量是-1倍数的关系,所以可以说明它们是线性相关的),所以方程 ( A − 7 I ) x = 0 (A-7I)x=0 (A7I)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=λ23λ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=5000230068501041的特征方程和特征多项式。

解:

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)=det5λ00023λ00685λ01041λ=(5λ)(3λ)(5λ)(1λ)=(5λ)2(3λ)(1λ)=λ414λ3+68λ2130λ+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 λ414λ3+68λ2130λ+75=0

而后者( λ 4 − 14 λ 3 + 68 λ 2 − 130 λ + 75 = 0 \lambda ^4-14\lambda ^3+68\lambda^2-130\lambda+75=0 λ414λ3+68λ2130λ+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 P1AP=B,或等价地 A = P B P − 1 A=PBP^{-1} A=PBP1,那么可说 A A A相似于 B B B。令 Q = P − 1 Q=P^{-1} Q=P1,则有 Q − 1 B Q = A Q^{-1}BQ=A Q1BQ=A,即 B B B也相似于 A A A,所以两个方向都成立,这样我们可以简单地说 A A A B B B相似就行。

  相似变换:把矩阵 A A A变成 P − 1 A P P^{-1}AP P1AP(即 P − 1 A P = B P^{-1}AP=B P1AP=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的对角线下面的元素充分小或者出现明显不收敛时就停下。

在这个方法中,可以证明的推论(证明过程略):

  1. A = Q 0 A 1 Q 0 T A=Q_0A_1Q^T_0 A=Q0A1Q0T
  2. 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
  3. Q 0 Q 1 Q_0Q_1 Q0Q1是正交矩阵
  4. 矩阵 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=PDP1(其中 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} k1Dk=[5k003k]

总结:从本例可看出,对角阵的幂很容易计算。

例2:设矩阵 A = [ 7 2 − 4 1 ] A=\begin{bmatrix}7&2\\-4&1\end{bmatrix} A=[7421],给定 A = P D P − 1 A=PDP^{-1} A=PDP1,其中 P = [ 1 1 − 1 − 2 ] P=\begin{bmatrix}1&1\\-1&-2\end{bmatrix} P=[1112] 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} P1=[2111]

结合矩阵乘法: 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=(PDP1)(PDP1)=PD(P1P)DP1=PDDP1=PD2P1

同理有: 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=(PDP1)A2=(PDP1)(PD2P1)=PD(P1P)D2P1=PD3P1

所以,一般地,对于 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} k1Ak=PDkP1=[1112][5k003k][2111]=[25k3k23k25k5k3k23k5k]

  总结:根据相似定理,如果方阵 A A A相似于对角矩阵 D D D,则有 A = P D P − 1 A=PDP^{-1} A=PDP1,那么此时可以称矩阵 A A A可对角化

对角化定理

  对角化定理 n × n n\times n n×n的方阵 A A A可对角化(即 A = P D P − 1 A=PDP^{-1} A=PDP1,且 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=133353331

解:

先求矩阵 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)=λ33λ+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=(A1I)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λ3335λ3331λ000=033363330000100010110000

通解为: 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=x3111
所以特征值 λ = 1 \lambda=1 λ=1对应的基为: v 1 = [ 1 − 1 1 ] v_1=\begin{bmatrix}1\\-1\\1\end{bmatrix} v1=111

求特征值 λ = − 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λ3335λ3331λ000=333333333000100100100000

通解为: 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=x2110+x3101

所以特征值 λ = − 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]=111110101

再构造矩阵 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=100020002

构造出 D D D P P P后,进行验算,看是否满足 A = P D P − 1 A=PDP^{-1} A=PDP1,这个式子可以变形为 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=133353331111110101=111220202

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=111110101100020002=111220202

可见 A P = P D AP=PD AP=PD成立且 P P P可逆,即 A = P D P − 1 A=PDP^{-1} A=PDP1成立,所以以上矩阵 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=243463331对角化。

解:

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=111
特征值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]=111110000100010000
方程 [ 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=500800172是否可以对角化。

解:
因为 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=PDP1 D D D为对角阵)的分解有很多简便的用途,但是不是所有矩阵都有这样的分解的。但是,所有的矩阵都可以分解成 A = Q D P − 1 A=QDP^{-1} A=QDP1,这就是奇异值分解SVD,它是线性代数中最有用的分解之一。

例:矩阵 A = [ 4 11 14 8 7 − 2 ] A=\begin{bmatrix}4&11&14\\8&7&-2\end{bmatrix} A=[48117142],线性变换 x ∣ → A x x|\rightarrow Ax xAx 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 xAx后,即:
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=[48117142]123=[6816]

可见,原来的三维点变成了二维,其线性变换公式就是 A x Ax Ax

题目要求使得长度 ∣ ∣ A x ∣ ∣ ||Ax|| Ax最大,那么也是 ∣ ∣ A x ∣ ∣ 2 ||Ax||^2 Ax2最大,后者更好计算,因为:

∣ ∣ 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 Ax2=(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=41114872[48117142]=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=323132
λ 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=323231

因为 ∣ ∣ A x ∣ ∣ 2 = x T ( A T A ) x ||Ax||^2=x^T(A^TA)x Ax2=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=323231处取得,

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=[48117142]313232=[186]=[y1y2]

[ y 1 y 2 ] \begin{bmatrix}y_1\\y_2\end{bmatrix} [y1y2]为经过线性变换 x ∣ → A x x|\rightarrow Ax xAx后的坐标,上式表明,向量 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 1in,有:

∣ ∣ 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 Aui2=(Aui)T(Aui)=viTATAui=uiT(ATA)ui=uiT(ATAui)=uiT(λiui)=λi

∣ ∣ A u i ∣ ∣ 2 = λ i ||Au_i||^2=\lambda_i Aui2=λi,可见 A T A A^TA ATA的所有特征值非负,对所有特征值进行排列:
λ 1 ≥ λ 2 ≥ ⋯ ≥ λ n ≥ 0 \lambda_1\ge \lambda_2\ge \dots \ge \lambda_n\ge0 λ1λ2λn0
则矩阵 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=[48117142]323132=[39]

而点 ( 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σr0,并且存在一个 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=[48117142]的一个奇异值分解。

解:
求奇异值分解可分三步

  1. 将矩阵 A T A A^TA ATA正交对角化。先求矩阵 A T A A^TA ATA的特征值及对应的特征向量的单位正交集。
  2. 计算矩阵 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=323132
λ 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=323231

所以
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]=313232323132323231

下面构造矩阵 Σ \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=[360 0090 ]

而矩阵 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]=[360 0090 00]

  1. 构造矩阵 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=[48117142]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=[48117142]323132=[39]

把向量 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=[39]单位化:

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+62 1[186]=360 1[186]=[10 310 1]

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)2 1[39]=90 1[39]=[10 110 3]

所以,现在得到了属于 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]=[10 310 110 110 3]

所以 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=[10 310 110 110 3][360 0090 00]313232323132323231

例4:求矩阵 A = [ 1 − 1 − 2 2 2 − 2 ] A=\begin{bmatrix}1&-1\\-2&2\\2&-2\end{bmatrix} A=122122的一个奇异值分解。

解:

先计算 A T A = [ 9 − 9 − 9 9 ] A^TA=\begin{bmatrix}9&-9\\-9&9\end{bmatrix} ATA=[9999] 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=[2 12 1]

特征值0对应的单位特征向量为: v 2 = [ 1 2 1 2 ] v_2=\begin{bmatrix}\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\end{bmatrix} v2=[2 12 1]

所以 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]=[2 12 12 12 1]

矩阵的奇异值为 σ 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} Σ=32 00000

为了构造 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=2 22 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=313232

矩阵 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=313232,而其他列要将 { 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=[313232]x1x2x3=31x1+32x232x3=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=x2210+x3201

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=5 1210=5 25 10

由于 [ 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=313232都正交,

下面用格拉姆施密特方法求 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=20154210=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=5 1210=5 25 10

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=45 552541=45 245 445 5

所以: 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]=3132325 25 1045 245 445 5

所以 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]=3132325 25 1045 245 445 532 00000[2 12 12 12 1]=122122

经验算上述分解是正确的。

MATLAB做SVD分解

  对于上例中的矩阵 A = [ 1 − 1 − 2 2 2 − 2 ] A=\begin{bmatrix}1&-1\\-2&2\\2&-2\end{bmatrix} A=122122,在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矩阵一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值