17 特征值与特征向量之特征分解

在上一篇文章中,我们介绍了特征值与特征向量的基本定义。这一篇将深入研究它们的“特征分解”(eigen decomposition),并探讨如何利用特征值和特征向量将矩阵表示为其基本成分的乘积形式。

特征值与特征向量的回顾

首先,复习一下若干核心概念。一个矩阵 ( A ) 的特征值 ( \lambda ) 和特征向量 ( \mathbf{v} ) 满足以下关系:

$$
A \mathbf{v} = \lambda \mathbf{v}
$$

在上述等式中,矩阵 ( A ) 作用于特征向量 ( \mathbf{v} ) 的结果是一个纯粹的缩放,缩放因子就是特征值 ( \lambda )。

什么是特征分解?

特征分解是指将一个方阵分解为特征向量和特征值的形式。具体来说,对于一个矩阵 ( A ),如果它的特征值和特征向量满足以下关系:

$$
A = V \Lambda V^{-1}
$$

其中,( V ) 是由矩阵 ( A ) 的特征向量组成的矩阵,且 ( \Lambda ) 是对角矩阵,包含 ( A ) 的特征值。这个分解形式被称为特征分解。

条件

特征分解的前提条件是矩阵 ( A ) 必须是可对角化的。一般来说,矩阵具有 ( n ) 个线性无关的特征向量时,它才可被对角化。

特征分解的步骤

让我们通过一个具体的例子来演示特征分解的过程。设矩阵 ( A ) 如下:

$$
A = \begin{pmatrix}
4 & 1 \
2 & 3
\end{pmatrix}
$$

Step 1: 计算特征值

特征值的计算通过求解特征多项式来实现。特征多项式由以下公式得到:

$$
\text{det}(A - \lambda I) = 0
$$

其中 ( I ) 是单位矩阵。我们计算:

$$
A - \lambda I = \begin{pmatrix}
4 - \lambda & 1 \
2 & 3 - \lambda
\end{pmatrix}
$$

计算行列式:

$$
\text{det}(A - \lambda I) = (4 - \lambda)(3 - \lambda) - 2 \cdot 1 = \lambda^2 - 7\lambda + 10
$$

解这个二次方程,我们有:

$$
\lambda^2 - 7\lambda + 10 = 0
$$

通过求根公式得:

$$
\lambda_1 = 5, \quad \lambda_2 = 2
$$

Step 2: 计算特征向量

对于每个特征值,通过解线性方程组 ( (A - \lambda I) \mathbf{v} = 0 ) 来找到特征向量。

  1. 对于特征值 ( \lambda_1 = 5 ):

$$
A - 5I = \begin{pmatrix}
-1 & 1 \
2 & -2
\end{pmatrix}
$$

我们得到方程组:

$$
-1x + 1y = 0 \implies y = x
$$

因此对应的特征向量是 ( \mathbf{v_1} = k \begin{pmatrix} 1 \ 1 \end{pmatrix} )(( k ) 为任意常数)。

  1. 对于特征值 ( \lambda_2 = 2 ):

$$
A - 2I = \begin{pmatrix}
2 & 1 \
2 & 1
\end{pmatrix}
$$

同样得到的方程组为:

$$
2x + 1y = 0 \implies y = -2x
$$

所以对应的特征向量是 ( \mathbf{v_2} = k \begin{pmatrix} 1 \ -2 \end{pmatrix} )。

Step 3: 构造特征分解

现在我们有了特征值和特征向量:

  • 特征值:( \lambda_1 = 5 ), ( \lambda_2 = 2 )
  • 特征向量:( \mathbf{v_1} = \begin{pmatrix} 1 \ 1 \end{pmatrix} ), ( \mathbf{v_2} = \begin{pmatrix} 1 \ -2 \end{pmatrix} )

构造矩阵 ( V ) 和对角矩阵 ( \Lambda ):

$$
V = \begin{pmatrix}
1 & 1 \
1 & -2
\end{pmatrix}, \quad \Lambda = \begin{pmatrix}
5 & 0 \
0 & 2
\end{pmatrix}
$$

我们可以验证 ( A = V \Lambda V^{-1} ) 是否成立。

代码示例

使用 Python 和 NumPy,我们可以轻松实现特征分解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import numpy as np

# 定义矩阵 A
A = np.array([[4, 1],
[2, 3]])

# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)

print("特征值:", eigenvalues)
print("特征向量:\n", eigenvectors)

# 重新构造 A
V = eigenvectors
Lambda = np.diag(eigenvalues)
A_reconstructed = V @ Lambda @ np.linalg.inv(V)

print("重构的 A:\n", A_reconstructed)

运行上述代码,应得到与原矩阵 ( A ) 相同的结果,证明我们的特征分解是正确的。

总结

特征分解是线性代数中一个重要的工具,尤其在机器学习和数据分析中应用广泛。通过特征分解,我们能够将复杂的矩阵分解为更简单、更易处理的形式。这对我们理解数据的结构以及进行降维(如主成分分析)等操作至关重要。

在下一篇文章中,我们将探讨“内积与正交性”的相关概念,特别是内积的定义与性质。请继续关注!

17 特征值与特征向量之特征分解

https://zglg.work/ai-linear-you-need/17/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论