怎么求矩阵的特征值(Eigenvalue)

方阵的特征值的计算历来是线性代数课程里较难掌握的一部分。它不仅涉及到带字母的行列式的计算,还包含了多项的求根的过程。现在我们来看看矩阵特征值的求法。

例 :求矩阵
\[A=\begin{pmatrix}
1&-2&4\\
2&3&1\\
1&1&1
\end{pmatrix}\]
的特征值.

求方阵\(A\)的特征值, 就是求多项式 \(|A-\lambda I|\) 的根. 它的基本步骤是这样的:

  1. 求出行列式 \(|A-\lambda I|\) , 它是一个关于 \(\lambda\) 的多项式 (就是特征多项式);
  2. 令多项式 \(|A-\lambda I |\) = 0, 求出 \(\lambda\) 的值 (就是特征值, 或者特征根)

现在我们来看这个题的完整的解法.

解:\(A\) 的特征多项式为
\[|A-\lambda I|=\begin{vmatrix}
1-\lambda&-2&4\\
2&3-\lambda&1\\
1&1&1-\lambda
\end{vmatrix}\]

先交换1, 3 两行,再将第一行乘以 \(-2\) 加到第二行, 乘以 \(\lambda-1\)加到第三行, 再对第一列展开, 就得到
\[\begin{align}|A-\lambda I|&=\begin{vmatrix}
1-\lambda&-2&4\\
2&3-\lambda&1\\
1&1&1-\lambda
\end{vmatrix}\\
&=-\begin{vmatrix}
1&1&1-\lambda\\
0&1-\lambda&-1+2\lambda\\
0&-3+\lambda&4-(1-\lambda)^2
\end{vmatrix}\\
&=-\begin{vmatrix}
1-\lambda&-1+2\lambda\\
-3+\lambda&4-(1-\lambda)^2
\end{vmatrix}
\end{align}\]

把第一列提出因子\(-1\), 并将第2 行第2 列的元素展开,可得
\[|A-\lambda I|=
\begin{vmatrix}
\lambda-1&-1+2\lambda\\
-\lambda+3&(1+\lambda)(3-\lambda)
\end{vmatrix}=
(3-\lambda)\begin{vmatrix}
\lambda-1&-1+2\lambda\\
1&1+\lambda
\end{vmatrix}=(\lambda-3)(-\lambda)(\lambda-2).
\]

令\(|A-\lambda I|=0\), 就得到了方阵\(A\) 的特征值为 \(\lambda_1=3, \lambda_2=0, \lambda_3=2\)

线性代数(Linear Algebra)怎么学

  1. 线性代数的基本计算技巧是初等(行)变换(row reduction),离开了这个技巧,计算基本上不能进行。需要用到的地方太多了,基本上贯穿了整个课程。例如解线性方程组,求逆矩阵,求特征向量,判定向量组的线性相关性等等。

    初等变换的基本技术有两点:其一、按列进行,先将第一列除第一个数字外,全部化成零。然后第二列,第三列等等进行。其二,每次找个最简单的数字的行做为基本行,进行变换。当然最简单的数学莫过于 \(1\) 了。

  2. 线性代数的基本理论是线性方程组的理论。它是其它理论的基础。例如可以用它来判定向量组的线性相关性,可以用来求特征向量,可以用来判定矩阵是否可逆,可以确定一个向量是不是其它向量的线性组合等等。

    线性方程组的基本理论有两个方面,解的结构和求解方法。求解方法就是高斯消元法,也就是初等变换的方法。、、

    而解的结构,又有两个方面。齐次方程 \(A{\vec x}=0\) 和非齐次方程 \(A{\vec x}={\vec b}\)。

    齐次方程:

    1. 方程组有非零解的充分必要条件是 \(\text {Rank} (A) < n\) 。其中 \(\text {Rank} (A)\) 可以简单地认为是行变换后,阶梯形(REF)矩阵中非零行的行数。\(n\) 是方程中未知元的个数。
    2. 齐次方程组只有零解的条件是 \(\text {Rank} (A) = n\)

    非齐次方程:

    1. 方程组无解的条件是 \(\text {Rank} (A) < \text {Rank} (A,{\vec b})\)
    2. 方程组有唯一解的条件是 \(\text {Rank} (A) = \text {Rank} (A,{\vec b}) = n\)
    3. 方程组有无穷多个解的条件是 \(\text {Rank} (A) = \text {Rank} (A,{\vec b}) < n\)
    4. 方程组的通解为 \({\vec x}={\vec x_h}+{\vec \eta}\),其中 \(\vec x_h\) 是 \(A{\vec x}=0\) 的通解,\(\vec \eta\) 是非齐次方程 \(A{\vec x}={\vec b}\) 的一个(特)解。
  3. 第二个计算技巧是行列式(determinant) 的计算。在计算特征值的时候,一定会用到行列式的计算。另外,还可以用行列来判定矩阵是否可逆,向量组是否相关,还可以判定方程组有解、无解或者有无穷多个解等等。
  4. 线性方程组应用比较多的方面是特征值与特征向量,这个一定要会。在矩阵的对角化,解常微分方程组,随机过程等等方面都有应用。这部分的内容的计算,都是应用行列式和方程组的计算。

怎么找 Column space 和 Null Space (列空间和零空间)

Column space 和 Null space,听起来很难的样子,其实求它们并不算很难的一件事。在做完初等行变换(Row reduction),把矩阵变成行阶梯形(Row reduced form)后,Column space 的 basis 就很容易得到了,而求零空间,其实就是求齐次方程的解空间。我们来具体讲一下怎么求这两个空间。

因为向量空间(Vector space)完全可以由其基表示,所以只要求出它的基就可以。现在我们讲一讲怎么求列空间的基。只需要两步就可以。
第一步:将矩阵化成行阶梯形(REF)
第二步:找出每一个非零行,第一个非零元(pivot number)所在的列,对应的原矩阵里的列,就是列空间的基( Column space 的 basis)。

我们来看一个例子:设\(A\) 为如下的矩阵
\[
\begin{pmatrix}
1&4&8&-3&-7\\
-1&2&7&3&4\\
-2&2&9&5&5\\
3&6&9&-5&-2
\end{pmatrix}\]

通过初等行变换,它可以变成

\[
\begin{pmatrix}
1&4&8&0&5\\
0&2&5&0&-1\\
0&0&0&1&4\\
0&0&0&0&0
\end{pmatrix}\]

现在已经变成了行阶梯形矩阵了。我们只需要找到每个非零行的首个非零元就知道列空间的基了。第一、二、三行都是非零行,它们的首个非零元在第一、二、四列,所以,列空间的基是原矩阵里的第一、二、四列,也就是说,\(Col A\) 的基由下列三个向量组成:

\[
\begin{pmatrix}
1\\
-1\\
-2\\
3
\end{pmatrix},
\begin{pmatrix}
4\\
2\\
2\\
6\end{pmatrix},
\begin{pmatrix}
-3\\
3\\
5\\
-5
\end{pmatrix}
\]

或者说 \[{\rm Col} A= {\rm span}\left(\begin{pmatrix}
1\\
-1\\
-2\\
3
\end{pmatrix},
\begin{pmatrix}
4\\
2\\
2\\
6\end{pmatrix},
\begin{pmatrix}
-3\\
3\\
5\\
-5
\end{pmatrix}\right)\]

现在我们转到怎么找零空间。由零空间的定义,\(Null A=\{\vec{x}|A\vec{x}=0\}\),所以,找零空间就是解方程组 \(A\vec{x}=0\}\) 。我们仍然以上面的 \(A\) 为例。我们先将它化成行最简形(RREF)
\[
\begin{pmatrix}
1&4&8&0&5\\
0&2&5&0&-1\\
0&0&0&1&4\\
0&0&0&0&0
\end{pmatrix}
\sim
\begin{pmatrix}
1&0&-2&0&-3\\
0&1&\frac{5}{2}&0&-\frac{1}{2}\\
0&0&0&1&4\\
0&0&0&0&0
\end{pmatrix}
\]

它的解是
\[\vec{x}=
C_1\begin{pmatrix}
2\\
-\frac{5}{2}\\
1\\
0\\
0
\end{pmatrix}+C_2
\begin{pmatrix}
3\\
\frac{1}{2}\\
0\\
-4\\
1
\end{pmatrix}
\]

所以零空间是
\[
Null A={\rm span}\left(\begin{pmatrix}
2\\
-\frac{5}{2}\\
1\\
0\\
0
\end{pmatrix},
\begin{pmatrix}
3\\
\frac{1}{2}\\
0\\
-4\\
1
\end{pmatrix}\right)
\]

初等变换技巧总结

总有同学问,初等变换有什么技巧吗?其实,初等变换已经是线性代数里最简单有效的技巧了,当然,它本身还是有一点点技巧的,应用这些技巧,可以让你的初等变换变得容易那么一点点。

初等变换的技巧并不多,总结起来,就这么三条:

  1. 逐列进行。如果是要化成三角形,第一步,将第一列除第一个元素外,全部化成0;接着,将第二列的第二个元素下方的全部化成 0 ;依此下去,直到最后一列。如果是化成行阶梯形,也是先从第一列开始,将第一个元素的下方全部化成 0 ;然后第二列,第三列等等。

    如果是要化成行最简,那么化成阶梯形后,再从最后一个阶梯开始,将每个阶梯的第一个非 0 元的上方化成,依次往前进行。

  2. 找最简单的数字。每次化简前,将最简单的数字所在的行交换到基础行。所谓基础行(这是我给的定义,呵呵),对于三角形来说,就是主对角线元素所在的行,例如,现在要化简第三列,那么第三行就是基础行,因为我们要将第三行第三列元素的下方都化成 0 。如果是要化成阶梯形,那么基础行就是已经化完了的行的下一行。
  3. 耐心。不要着急,因为初等变换要做很多数字的四则运算,很容易出错,也很容易让人厌倦,所以这时候耐心很重要。耐心才不容易出错。

现在我们来看一个例子,说明一下怎么用这两个原则,逐列进行与找最简单的数字。

例 1:将矩阵化成行最简矩阵
\[\begin{pmatrix}
2&3&1&-3&-7\\
1&2&0&-2&-4\\
3&-2&8&3&0\\
2&-3&7&4&3
\end{pmatrix}\]

解:我们来看,这个矩阵怎么运用前面所说的两个法则。逐列进行,那么就是从第一列开始,将第一个元素的下方全部变成 0 。然后再第二列,第三列等等。来看第一列,第一列里最简单的数字是 1 ,所以将 1 所在的行交换到第一行(基础行),我们得到
\[\begin{pmatrix}
2&3&1&-3&-7\\
1&2&0&-2&-4\\
3&-2&8&3&0\\
2&-3&7&4&3
\end{pmatrix}\sim
\begin{pmatrix}
1&2&0&-2&-4\\
2&3&1&-3&-7\\
3&-2&8&3&0\\
2&-3&7&4&3
\end{pmatrix}\]

然后,将下方的数字全部变成 0 ,那么将第一行乘以 -2 加到第二行,乘以 -3 加到第三行,乘以 -2 加到第四行,得到
\[
\begin{pmatrix}
1&2&0&-2&-4\\
2&3&1&-3&-7\\
3&-2&8&3&0\\
2&-3&7&4&3
\end{pmatrix}\sim
\begin{pmatrix}
1&2&0&-2&-4\\
0&-1&1&1&1\\
0&-8&8&9&12\\
0&-7&7&8&11
\end{pmatrix}
\]

现在第一列化完了,该化第二列了。我们看到,第二列里,最简单的是 -1,它就在第二行里,就不用交换了。现在将第二行乘以 -8 加到第三行,乘以 -7 加到第四行,得到

\[\begin{pmatrix}
1&2&0&-2&-4\\
0&-1&1&1&1\\
0&-8&8&9&12\\
0&-7&7&8&11
\end{pmatrix}\sim
\begin{pmatrix}
1&2&0&-2&-4\\
0&-1&1&1&1\\
0&0&0&1&4\\
0&0&0&1&4
\end{pmatrix}
\]

现在该第三列了。但是因为第三列里,第三个元素之后都是 0 ,所以从阶梯形的定义,我们不需要对它进行运算。阶梯形里,第三个阶梯的第一个非 0 元在第四列,所以下一个是第四列,第四列里,第三个元素是 1 ,所以也不用交换行了,将第三行乘以 -1 加到第四行,就得到了
\[\begin{pmatrix}
1&2&0&-2&-4\\
0&-1&1&1&1\\
0&0&0&1&4\\
0&0&0&1&4
\end{pmatrix}\sim
\begin{pmatrix}
1&2&0&-2&-4\\
0&-1&1&1&1\\
0&0&0&1&4\\
0&0&0&0&0
\end{pmatrix}
\]

现在已经是行阶梯形了,如果要化成行最简,那么每一个阶梯的第一个非 0 元的上方也应该化成 0 。这个时候,就是从最后一个阶梯开始。我们看,最后一个阶梯的第一个非 0 元在第四列,第三行。所以,将第三行乘以 -1 加到第二行,乘以 2 加到第一行,我们得到了
\[\begin{pmatrix}
1&2&0&-2&-4\\
0&-1&1&1&1\\
0&0&0&1&4\\
0&0&0&0&0
\end{pmatrix}\sim
\begin{pmatrix}
1&2&0&0&4\\
0&-1&1&0&-3\\
0&0&0&1&4\\
0&0&0&0&0
\end{pmatrix}
\]

同理,将第二行乘以 2 加到第一行,得到了
\[\begin{pmatrix}
1&2&0&0&4\\
0&-1&1&0&-3\\
0&0&0&1&4\\
0&0&0&0&0
\end{pmatrix}\sim
\begin{pmatrix}
1&0&2&0&-2\\
0&-1&1&0&-3\\
0&0&0&1&4\\
0&0&0&0&0
\end{pmatrix}
\]

最后,将每一个阶梯的第一个非 0 元化成 1 。为此,只需要将第二行乘以 -1 ,我们的工作就完成了。
\[\begin{pmatrix}
1&0&2&0&-2\\
0&-1&1&0&-3\\
0&0&0&1&4\\
0&0&0&0&0
\end{pmatrix}
\sim\begin{pmatrix}
1&0&2&0&-2\\
0&1&-1&0&3\\
0&0&0&1&4\\
0&0&0&0&0
\end{pmatrix}
\]