这一块在线性代数中属于重点且较难理解的内容,下面仅个人学习过程中的体会,错误之处欢迎指出,有更简洁易懂的理解方式也欢迎留言学习。
文章目录
- 概念
- 计算
- 几何直观理解
- 意义
概念
矩阵本身就是一个线性变换,对一个空间中的向量应用这个矩阵,一般几何表现上为向量发生了旋转、伸缩、反射等变换。如果存在一个向量,在变换前变换后方向不变,这样的向量就是这个矩阵的特征向量。
计算
按照上面定义,对于一个矩阵 A A A和一个向量 v v v, A ⋅ v = λ v A \cdot v=\lambda v A⋅v=λv,也就是向量 v v v在变换前后只有长度上的变化,没有方向上的变化,这样的向量 v v v和缩放倍数 λ \lambda λ分别叫做特征值和特征向量。
以下面这个矩阵A为例计算特征值:
  
      
       
        
        
          [ 
         
         
          
           
            
            
              2 
             
            
           
           
            
            
              1 
             
            
           
          
          
           
            
            
              0 
             
            
           
           
            
            
              1 
             
            
           
          
         
        
          ] 
         
        
       
         \begin{bmatrix} 2&1 \\ 0&1 \end{bmatrix} 
        
       
     [2011]
  
     
      
       
       
         A 
        
       
         ⋅ 
        
       
         v 
        
       
         = 
        
       
         λ 
        
       
         v 
        
       
      
        A \cdot v=\lambda v 
       
      
    A⋅v=λv
 =>  
     
      
       
       
         A 
        
       
         ⋅ 
        
       
         v 
        
       
         = 
        
       
         λ 
        
       
         I 
        
       
         v 
        
       
      
        A \cdot v=\lambda I v 
       
      
    A⋅v=λIv
 =>  
     
      
       
       
         ( 
        
       
         A 
        
       
         − 
        
       
         λ 
        
       
         I 
        
       
         ) 
        
       
         ⋅ 
        
       
         v 
        
       
         = 
        
       
         0 
        
       
      
        (A - \lambda I) \cdot v=\mathbf{0} 
       
      
    (A−λI)⋅v=0
 =>  
     
      
       
       
         A 
        
       
         − 
        
       
         λ 
        
       
         I 
        
       
         = 
        
       
         0 
        
       
      
        A - \lambda I=0 
       
      
    A−λI=0
 =>
  
      
       
        
         
         
           [ 
          
          
           
            
             
              
              
                2 
               
              
                − 
               
              
                λ 
               
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               0 
              
             
            
            
             
              
              
                1 
               
              
                − 
               
              
                λ 
               
              
             
            
           
          
         
           ] 
          
         
        
          = 
         
        
          0 
         
        
       
         \begin{bmatrix} 2-\lambda&1 \\ 0&1-\lambda \end{bmatrix}=0 
        
       
     [2−λ011−λ]=0
 =>  
     
      
       
       
         ( 
        
       
         2 
        
       
         − 
        
       
         λ 
        
       
         ) 
        
       
         ( 
        
       
         1 
        
       
         − 
        
       
         λ 
        
       
         ) 
        
       
         = 
        
       
         0 
        
       
      
        (2-\lambda)(1-\lambda)=0 
       
      
    (2−λ)(1−λ)=0
  
     
      
       
       
         λ 
        
       
         = 
        
       
         1 
        
       
      
        \lambda=1 
       
      
    λ=1 或  
     
      
       
       
         λ 
        
       
         = 
        
       
         2 
        
       
      
        \lambda=2 
       
      
    λ=2
1) 
     
      
       
       
         λ 
        
       
         = 
        
       
         1 
        
       
      
        \lambda=1 
       
      
    λ=1时: 
     
      
       
       
         ( 
        
       
         A 
        
       
         − 
        
       
         λ 
        
       
         I 
        
       
         ) 
        
       
         ⋅ 
        
       
         v 
        
       
         = 
        
       
         0 
        
       
      
        (A - \lambda I) \cdot v=\mathbf{0} 
       
      
    (A−λI)⋅v=0
 =>
  
      
       
        
         
         
           [ 
          
          
           
            
             
             
               1 
              
             
            
            
             
             
               1 
              
             
            
           
           
            
             
             
               0 
              
             
            
            
             
             
               0 
              
             
            
           
          
         
           ] 
          
         
         
         
           [ 
          
          
           
            
             
             
               x 
              
             
            
           
           
            
             
             
               y 
              
             
            
           
          
         
           ] 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
             
               0 
              
             
            
           
           
            
             
             
               0 
              
             
            
           
          
         
           ] 
          
         
        
       
         \begin{bmatrix} 1&1 \\ 0&0 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix}= \begin{bmatrix} 0 \\ 0 \end{bmatrix} 
        
       
     [1010][xy]=[00]
 =>
  
      
       
        
        
          x 
         
         
         
           [ 
          
          
           
            
             
             
               1 
              
             
            
           
           
            
             
             
               0 
              
             
            
           
          
         
           ] 
          
         
        
          + 
         
        
          y 
         
         
         
           [ 
          
          
           
            
             
             
               1 
              
             
            
           
           
            
             
             
               0 
              
             
            
           
          
         
           ] 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
             
               0 
              
             
            
           
           
            
             
             
               0 
              
             
            
           
          
         
           ] 
          
         
        
       
         x \begin{bmatrix} 1\\ 0 \end{bmatrix}+ y \begin{bmatrix} 1\\ 0 \end{bmatrix}= \begin{bmatrix} 0 \\ 0 \end{bmatrix} 
        
       
     x[10]+y[10]=[00]
 =>
  
     
      
       
       
         x 
        
       
         + 
        
       
         y 
        
       
         = 
        
       
         0 
        
       
      
        x+y=0 
       
      
    x+y=0,所以(-1, 1)是 
     
      
       
       
         λ 
        
       
         = 
        
       
         1 
        
       
      
        \lambda=1 
       
      
    λ=1时的一个特征向量。
2)同样的过程可以求出 λ = 2 \lambda=2 λ=2时(1, 0)是一个特征向量。
从计算过程还可以看出:特征值与特征向量的取值无关,只跟矩阵本身有关。且特征向量可以在该向量的所在直线上有无穷多个。
几何直观理解
上面计算的特征值和特征向量表明,在二维空间中对一个图形应用矩阵A的变换,该变换会将原图形在向量(1, -1)的方向维持不变,将向量(-1, 1)的方向拉伸2倍。
可视化:
import numpy as np
import matplotlib.pyplot as plt
# 定义一个二维椭圆
def generate_ellipse(num_points=100, a=2, b=1):
    theta = np.linspace(0, 2 * np.pi, num_points)
    x = a * np.cos(theta)
    y = b * np.sin(theta)
    return x, y
# 定义一个非对称变换矩阵
transformation_matrix = np.array([[2, 1],
                                  [0, 1]])
# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(transformation_matrix)
# 生成原始椭圆
x, y = generate_ellipse()
# 将椭圆应用变换
xy_transformed = np.dot(transformation_matrix, np.array([x, y]))
x_transformed, y_transformed = xy_transformed
# 动态计算新的坐标轴范围
x_min, x_max = x_transformed.min(), x_transformed.max()
y_min, y_max = y_transformed.min(), y_transformed.max()
padding = 0.5  # 添加一些额外的空间
# 绘制原始和变换后的椭圆
fig, ax = plt.subplots(1, 2, figsize=(12, 6))
# 原始椭圆
ax[0].plot(x, y, color='b')
ax[0].set_title('Original Ellipse')
ax[0].set_xlim(-2.5, 2.5)  # 紧凑的范围
ax[0].set_ylim(-1.5, 1.5)
ax[0].set_aspect('equal', 'box')
# 变换后的椭圆
ax[1].plot(x_transformed, y_transformed, color='r')
ax[1].set_title('Transformed Ellipse')
ax[1].set_xlim(x_min - padding, x_max + padding)
ax[1].set_ylim(y_min - padding, y_max + padding)
ax[1].set_aspect('equal', 'box')
# 绘制特征向量
origin = np.array([[0, 0], [0, 0]])  # 原点
ax[1].quiver(*origin, eigenvectors[0, :], eigenvectors[1, :], color=['g', 'g'], angles='xy', scale_units='xy', scale=1)
# 在图形旁边显示变换矩阵和特征值
textstr = f'Transformation Matrix:\n{transformation_matrix}\n\n'
textstr += f'Eigenvalues:\n{eigenvalues}\n\n'
textstr += f'Eigenvectors:\n{eigenvectors}'
props = dict(boxstyle='round', facecolor='wheat', alpha=0.5)
plt.gcf().text(0.5, 0.02, textstr, fontsize=10, bbox=props)
plt.tight_layout()
plt.show()

 绿色的是两个特征向量。
从左边椭圆 => 右边椭圆的变化过程, 可以看成是先将整个椭圆沿着向量(1, 0)方向拉伸2倍,后将图形在向量(-1, 1)方向还原(因为在上一步两边拉伸的过程中,每一个原刻度处的圆弧上下距离都会被拉远,所以(-1, 1)方向也会被被拉长),所以整个图形表现为:两边拉长,且左低右高。
意义
特征向量和特征值的意义个人理解主要在于用来描述矩阵所表示的线性变换,也就是用特征向量和特征值来近似刻画矩阵的效果。
怎么理解这种近似刻画呢?个人理解是,无论是一个平面图形还是立体图形,以及更高维…,只要几个不变的方向拉伸效果确定了,那么其他方向也就确定了,可以这么确定的理由是:线性变换! 线性,也就是不会出现陡增或陡减,是一种“平缓”的过渡。
特征向量和特征值也可以被用来简化矩阵高次幂的计算。


















