欢迎光临散文网 会员登陆 & 注册

特征向量和特征值--北太天元学习17

2023-07-24 17:31 作者:卢朓  | 我要投稿

在本节中,我们将了解特征向量和特征值,以及它们的几个性质。如果我们把矩阵A作用于向量v 得到A*v看成对向量v作了一种操作(例如,旋转,拉伸等), 则特征值和特征向量说明了Av在几何上如何与v相关,线性代数课程将进一步讨论几何上如何联系,因此我们现在重点讨论代数定义。
定义: 对于方阵A, 如果一个非零向量v,使得对于某些λ∈R,A*v=λ*v, 则v称为A的特征向量,
数λ被称为与特征向量v相关的特征值。
例:
A=[1 1;  2 0] 有两个特征向量:v1=[−1; 2] 和v_2= [1; 1]。相应的特征值λ1=-1和λ2=2。
[ 1 1 ; 2 0]* [-1; 2] = λ1 * [-1; 2]
[ 1 1 ; 2 0]* [1; 1] =  λ2 * [-1; 2]

特征向量和特征值的性质

1. 如果v是与特征值λ相关的特征向量,那么对于任何非零α∈R,αv也是与λ相关的本征向量。
 上面的命题说,由于本征向量可以是任何长度,所以它们可以仅通过方向来表征。
 例如,[0.5; −1] 与前例中的[−1; 2] 是相同特征值λ1=-1的特征向量。


2. 假设A是形式为A=diag([d_1, ..., d_n])的对角矩阵, 那么我们很容易确定
A 的所有的特征值是 d_1, ..., d_n , 相应的特征值向量是 e1=[1; 0; ...; 0],
e2 = [ 0; 1; ... ; 0 ] , ... e_n = [0; 0; ...; 1].
显然 [e1, e2, ... en] 构成了n阶单位矩阵 I.
所以,我们可以会所对角线矩阵的特征值简单地说就是对角线上的元素,相应的特征向量
是单位矩阵的相应列。


求解A*v=λ*v等于求解A*v−λ*v=0或A*v−I*λ*v=0,其中I是适当大小的单位矩阵。
然后我们可以将v提出来,使得(A−λ*I)*v=0。解必须是非零的,因为特征向量不能是零。
这里当然考虑的A是一个方阵,此时(A−λ*I)v=0 的充分必要条件是 det(A−λ*I)=0。
这就给我们提供了一个求解A的特征值的方法,就是去求解  det(A−λ*I)=0.

在北太天元中,我们使用内置命令 eig 来求特征值和特征向量
 >> A=[1 1;  2 0]
A =
  2x2 double
   1   1
   2   0
>> [v,d] = eig(A)
v =
  2x2 double
    0.7071   -0.4472
    0.7071    0.8944
d =
  2x2 double
   2   0
   0  -1
eig的返回第一个参数v 保存的A的特征向量,d 是一个由A的特征值构成的对角矩阵
我们可以验证
A*v(:,1) 和 d(1,1)*v(:,1) 是相等的,这验证了
v的第一列 v(:,1) 是 A 的相应于特征值d(1,1) 的特征向量.
实际上,我们有
A*v = v*d
Input [8] >> A*v
ans =
  2x2 double
    1.4142    0.4472
    1.4142   -0.8944
Input [9] >> v*d
ans =
  2x2 double
    1.4142    0.4472
    1.4142   -0.8944
进一步的我们在 A*v = v*d 的两边同时右乘以v的逆inv(v) , 我们就得到
A*v*inv(v) = v*d* inv(v)
利用 v*inv(v) = I, 以及A*I = A, 我们就得到
A = v*d*inv(v)
上面的式子就称为矩阵A的特征分解 (eigen decompostion).
当然,并不是每一个矩阵A都存在特征分解,例如
A = [ 0 1; 0 0 ]
Input [10] >> A = [ 0 1 ; 0 0 ]
A =
  2x2 double
   0   1
   0   0
Input [11] >> [v,d] = eig(A)
v =
  2x2 double
    1.0000   -1.0000
    0.0000    0.0000
d =
  2x2 double
   0   0
   0   0
我们可以看到北太天元计算返回的特征向量组成的矩阵不是逆的,
我们也可以利用北太天元的内置命令det(v)来计算 v 的行列式
Input [12] >> det(v)
ans =
  1x1 double
   0

但是一旦我们发现能够得到矩阵A 的特征值分解,就会对我们有很大的帮助。
我举个例子来说明这一点。
例如
x_0 = [ 1 ; 1 ] ;
x_{n+1} = A * x_{n} , n = 0 , 1, 2, ...  
其中 A = [ 1 1 ; 2 0 ]

我们知道 x_1 = A * x_0, x_2 = A * x_1 = A * ( A * x_0) = A * A * x_0 = A^2 x_0
如此递推,我们知道
x_{n+1} = A^n * x_0
其中 A^n 是 n个矩阵A相乘,
    Input [15] >> A = [ 1 1 ; 2  0 ]
A =
  2x2 double
   1   1
   2   0
Input [16] >> A*A
ans =
  2x2 double
   3   1
   2   2
Input [17] >> A*A*A
ans =
  2x2 double
   5   3
   6   2
我们计算来A^2, A^3 ,发现很难找到规律, 但是我们知道了矩阵
A = v * d * inv(v)
那么
A^2 = v * d * inv(v) * v * d * inv(v) = v * d^2 * inv(v)  
按照这个样子
A^n = v * d^n * inv(v)  
而对角矩阵d的n次方是非常好计算的 d^n  还是对角矩阵,对角线由d的对角线元素的n次方
构成。
利用上面的分析,我们就可以得到上的递推关系式给出的数列的通项表达式
x_{n+1} = v * d^n * inv(v) * x_{0}

上面选择的特征向量构成的矩阵不是唯一的,例如,我们就可以用

Input [39] >> V
V =
  2x2 double
      -1              1
       2              1
Input [40] >> inv(V)
ans =
  2x2 double
      -1/3            1/3
       2/3            1/3

d = diag ([ -1, 2]);


特征向量和特征值--北太天元学习17的评论 (共 条)

分享到微博请遵守国家法律