Linear Algebra(11):特征值和特征向量 2025.12.21 1 Categories / 1 Tags / 2.2k Words
Blog Post

Linear Algebra(11):特征值和特征向量

Linear Algebra(11):特征值和特征向量

线性代数

特征值和特征向量

什么是特征值和特征向量

行列式本质上是方阵的一个属性, 而特征值和特征向量也是方阵的一个属性. 其中的**“特征"描述的就是方阵的"特征”**, 更加准确的说对于一个矩阵既可以理解成变换又可以理解成空间,所谓的理解成空间是因为一个矩阵可以表示空间的基.

而特征值和特征向量更主要的是从变换的视角看方阵,当我们把方阵理解成一个变换,这个变换拥有一些特征. 这些特征将被特征值和特征向量表示出来.

具体看一个例子:

这个矩阵A可以理解为表示二维空间的一组基, 也可理解为这个基对应坐标系的坐标转换矩阵,可以将二维平面的一个点转换到另外一个位置,比如上面将(1,4)转换到(-4,5).

这个变换过程中我们比较关心一些特殊的向量:

这些向量通过矩阵A转换后,方向没有改变,结果是原来的常数倍.

用数学式子表达:

其中 称为A的特征值(eigenvalue) , 称为A对应于 的特征向量eigenvector .

具体有什么用? 后续可见

如何求解特征值和特征向量?观察上面式子,可知零向量肯定满足,是平凡解.

所以特征向量不考虑零向量. 但 并不平凡, ,此时是一个齐次方程组是有非零解的. A可逆就只有零解,此时希望 有非零解,这个A不可逆,所以如果 是矩阵A的一个特征值,就说明A不可逆,反映了A的特征,并不是任意一个矩阵其特征值都可以为0. 所以特征值可以为0.

因此转换为了一个行列式的问题,行列式是求特征值和特征向量的基础. 这个方程也称为特征方程.

至此矩阵A的特征值以及对应的特征向量求出来了.

对应一个 特征值的特征向量不止一个,而是一组,即无数个. 如果u是A对应 的一个特征向量,则ku也是一个特征向量.

特征向量组成了 零空间,刨除零向量.

称为 对应的特征空间.

特征值和特征向量的性质

通过上面的讲解可知,对于方阵A:

image-20251221105121428

多了新的一条等价命题,如果A可逆,则0不是A的特征值.

性质1:对角矩阵(上三角、下三角)的特征值是其对角线上的元素.(证明略)

性质2:若 是A的特征值,则 的特征值. (取-1也成立 )

推论:若 是A的特征值,则 的特征值.

性质3:如果矩阵A含有两个不同的特征值,则他们对应的特征向量线性无关.

代码求解特征值和特征向量示例:

1
2
3
4
5
6
7
8
9
10
11
import numpy as np
from numpy.linalg import eig


if __name__ == "__main__":

A1 = np.array([[4,-2],[1,1]])

eigenvalues, eigenvectors = eig(A1)
print(eigenvalues)
print(eigenvectors)

image-20251221114713852

这个结果与上面例子求解的结果对应.

矩阵相似型

如果矩阵A, B满足 ,则称A和B相似.

类比相似三角形. 矩阵相似本质上是从不同视角观察相同的内容.

如果P是一个坐标系,则A变换是在P坐标系下观察的B变换。

image-20251221125133825

A和B本质是一个变换,只是观察的坐标系不同.

如果A和B相似,A和B的特征方程相同,特征值相同.

这就是特征值和特征向量真正表征的”特征“,当我们把矩阵看作一个变换,这个变换不管从哪个角度哪个坐标系去看,它们都具有相同的特征. 既然已经知道对于一个变换可以从不同的角度去看,我们肯定希望找到一个最好的角度,用这个最好的角度去看它使得计算变换容易.

矩阵对角化

在P坐标系下观察B看到的是A,那么就可以变换P坐标系相应A就产生了变化,希望找到一个最好的A使得B这个变化非常简单. 这就是矩阵对角化所做的任务.

如果A有n个线性无关的特征向量,则A和某个D相似.

D变换是P坐标系下观察到的A.

那么一个A如何分解成 的形式?答案藏在特征值和特征向量中.

一个矩阵A如果可以被对角化的话:

D主对角线上的元素是矩阵A的特征值,P是对应的特征向量组成的特征向量矩阵.

如果A有n个不相同的特征值,则A可以被对角化.

如果A没有n个不相同的特征值,A不一定不能被对角化.

对角化代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import numpy as np
from numpy.linalg import eig, inv
from LA.LinearSystem import rank
from LA.Matrix import Matrix


def diagonalzie(A):
assert A.ndim ==2
assert A.shape[0] == A.shape[1]

eigvalues, eigvectors = eig(A)

P = eigvectors
if rank(Matrix(P.tolist())) != A.shape[0]:
print("Matrix can not be diagonalized")
return None, None, None

D = np.diag(eigvalues)
Pinv = inv(P)

return P, D, Pinv

if __name__ == "__main__":

A1 = np.array([[4,-2],
[1,1]])
P1, D1, Pinv1 = diagonalzie(A1)
print(P1)
print(D1)
print(Pinv1)
print(P1.dot(D1).dot(Pinv1))

image-20251221133448771

对角化应用

求解矩阵的幂:

这样计算矩阵的幂只用到了两次矩阵乘法.

为什么关心矩阵的幂?

大量问题的形式都跟矩阵的幂有关:

Copyright

Article Copyright

Author
sukiame
Link
https://sukiame.cn/2025/12/21/p40-特征值和特征向量/
Notice
Unless otherwise stated, this article is licensed under CC BY-NC-SA 4.0 . Please keep the original link when reusing.
Link copied to clipboard.