我们来聊聊矩阵的特征值。这东西听起来挺吓人的,名字里又是“特征”又是“值”,好像是什么高深莫ទ数学。但其实,只要搞清楚它到底在干嘛,你会发现它还挺直观的。
想象一下,你有一个向量,它在空间里指向一个特定的方向。然后,你用一个矩阵去“动”它一下。这个“动”的过程,在数学上叫作线性变换。矩阵就像一个操作指令,告诉向量该怎么变。它可以拉伸向量,可以压缩向量,也可以旋转向量,或者几种操作一起上。
在大多数情况下,一个向量被矩阵作用之后,它的方向会改变。比如,一个本来指向东北方向的向量,被矩阵一“推”,可能就指向正西了。这是常态。
但是,总有那么一些“特殊”的向量。这些向量很执着,被矩阵作用了之后,方向居然不变,还在原来的那条直线上。它可能被拉长了,也可能被缩短了,甚至方向完全反过来(也就是被乘以了一个负数),但它就是不离开自己原来所在的那条直线。这种特殊的向量,我们就叫它“特征向量”。
而那个让特征向量伸长或缩短的比例因子,就是我们今天要说的“特征值”。
所以,一句话概括就是:对于一个给定的矩阵,如果一个向量被这个矩阵作用后,效果仅仅相当于用一个数去乘以这个向量,那么这个向量就是特征向量,这个数就是特征值。
这个关系用数学公式来写,就是下面这个样子:
Av = λv
这里,A 是我们的矩阵,v 是那个特殊的向量(特征向量),λ (lambda) 就是那个缩放的比例(特征值)。这个公式是核心,后面所有的计算都围绕它展开。
好,那我们怎么把这个 λ 找出来呢?
首先,我们得把上面那个公式变个形。我们把右边的 λv 移到左边去:
Av – λv = 0
这个 0 在这里不是一个数字,而是一个零向量。
看着这个式子,我们还不能直接把 A 和 λ 合并,因为 A 是一个矩阵,而 λ 是一个标量,一个普普通通的数。它们的类型不一样。为了解决这个问题,我们需要引入一个帮手——单位矩阵 I。单位矩阵就是一个对角线上全是 1,其他地方全是 0 的矩阵。它有个很棒的性质,就是任何向量乘以它,都等于向量本身,即 Iv = v。
所以,我们可以把 λv 写成 λIv。这样一来,我们的公式就变成了:
Av – λIv = 0
现在,我们就可以把向量 v 提取出来了:
(A – λI)v = 0
这个公式 (A – λI)v = 0 告诉我们一个很重要的信息。它说,矩阵 (A – λI) 乘以向量 v 之后,结果是一个零向量。
我们来想一下,什么情况下一个矩阵乘以一个非零向量会得到零向量?我们知道,v 是特征向量,它不能是零向量。如果 v 是零向量,那任何矩阵乘以它都得零,那就没意义了,我们找不到任何“特殊”的方向。所以,v 肯定不是零向量。
既然 v 不是零向量,那么问题就出在 (A – λI) 这个矩阵身上。一个矩阵乘以一个非零向量得到零向量,这说明这个矩阵把一个有长度有方向的向量“压”成了一个没有长度没有方向的点。这意味着这个矩阵是“奇异”的,或者说“不可逆”的。在数学上,一个矩阵是奇异的,它的行列式就必须等于零。
所以,关键的一步来了:
det(A – λI) = 0
这个公式被称为“特征方程”或“特征多项式”。我们所有的计算,就是要解这个方程,把满足这个条件的 λ 给找出来。只要找到了 λ,就找到了特征值。
我们来看一个具体的例子。假设我们有这么一个 2×2 的矩阵 A:
A =
| 2 1 |
| 1 2 |
我们要找它的特征值 λ。
第一步:构建 (A – λI) 矩阵。
首先,我们写出单位矩阵 I,因为 A 是 2×2 的,所以 I 也是 2×2 的:
I =
| 1 0 |
| 0 1 |
然后,我们计算 λI:
λI =
| λ 0 |
| 0 λ |
接着,我们用 A 减去 λI:
A – λI =
| 2-λ 1 |
| 1 2-λ |
第二步:计算行列式 det(A – λI)。
对于一个 2×2 矩阵,行列式的计算很简单,就是主对角线元素相乘,减去副对角线元素相乘。
det(A – λI) = (2-λ)(2-λ) – 11
展开这个式子:
= 4 – 2λ – 2λ + λ² – 1
= λ² – 4λ + 3
第三步:让行列式等于零,解方程。
我们现在得到了特征方程:
λ² – 4λ + 3 = 0
这是一个简单的一元二次方程。我们可以用因式分解来解它:
(λ – 1)(λ – 3) = 0
这个方程的解很明显:
λ₁ = 1
λ₂ = 3
所以,矩阵 A 的两个特征值就是 1 和 3。
这两个特征值是什么意思呢?它们意味着,存在一些向量,当它们被矩阵 A 作用后,一个方向上的向量会被缩短为原来的 1 倍(也就是长度不变),另一个方向上的向量会被拉长为原来的 3 倍。这两个方向就是由对应的特征向量指出的。
我们再来看一个 3×3 矩阵的例子,过程是一样的,只是计算量大一点。
假设矩阵 B 是:
B =
| 4 -2 2 |
| -1 3 -1 |
| -1 1 1 |
第一步:构建 (B – λI)。
B – λI =
| 4-λ -2 2 |
| -1 3-λ -1 |
| -1 1 1-λ |
第二步:计算行列式 det(B – λI)。
3×3 矩阵的行列式计算要复杂一些。我们可以用代数余子式展开。比如,沿着第一行展开:
det(B – λI) = (4-λ) det(| 3-λ -1 |) – (-2) det(| -1 -1 |) + 2 det(| -1 3-λ |)
| 1 1-λ | | -1 1-λ | | -1 1 |)
= (4-λ) [(3-λ)(1-λ) – (-1)(1)] + 2 [(-1)(1-λ) – (-1)(-1)] + 2 [(-1)(1) – (3-λ)(-1)]
我们一步一步地计算:
= (4-λ) (3 – 3λ – λ + λ² + 1) + 2 (-1 + λ – 1) + 2 (-1 + 3 – λ)
= (4-λ) (λ² – 4λ + 4) + 2 (λ – 2) + 2 (2 – λ)
= (4-λ) (λ-2)² + 2(λ-2) – 2(λ-2)
= (4-λ) (λ-2)²
第三步:让行列式等于零,解方程。
我们得到的特征方程是:
(4-λ)(λ-2)² = 0
这个方程的解是:
λ₁ = 4
λ₂ = 2
λ₃ = 2
所以,矩阵 B 的特征值是 4 和 2。其中,2 是一个“重根”,我们称它的代数重数为 2。
找到特征值有什么用呢?用处很大。
比如在物理学中,研究一个系统的振动,特征值就对应着系统的固有振动频率。当外部激励的频率接近某个固有频率时,就会发生共振,这在桥梁设计或者航空航天工程中是必须考虑的问题。
在数据科学领域,有一个很重要的技术叫作主成分分析(PCA),它的核心就是计算数据协方差矩阵的特征值和特征向量。 那些最大的特征值对应的特征向量,指出了数据变化最剧烈的方向,也就是数据包含信息最多的方向。通过保留这些主要方向,我们可以在不损失太多信息的前提下,把高维度的数据降低到低维度,方便分析和可视化。
谷歌的 PageRank 算法,最早用来给网页排序,它的基本思想也和特征值有关。 整个互联网可以看作一个巨大的矩阵,网页是节点,链接是边。一个网页的重要性(它的 PageRank 值)被定义为所有链接到它的网页重要性的加权和。最终,这会归结为一个求一个巨大矩阵的特征向量的问题,而这个特征向量的各个分量,就代表了每个网页的排名得分。
所以,求特征值这个操作,本质上是在寻找一个线性变换中的“不变性”。我们想知道,在这个由矩阵描述的变换中,哪些方向是稳定的,只是被简单地拉伸或压缩。找到了这些方向(特征向量)和对应的拉伸压缩比例(特征值),我们就抓住了这个变换最核心的性质。这就像理解一个人的性格,你不需要知道他做的每一件小事,但你需要知道他的核心价值观和行为准则。特征值和特征向量,就是矩阵的“性格”。

七点爱学
评论前必须登录!
立即登录 注册