线性代数(20)——特征值和特征向量(上)


特征值和特征向量是线性代数中十分关键的一部分内容。

概念

特征值和特征向量都是方阵的属性。描述的是方阵的特征,同时特征值和特征向量表征是当方阵做变换时候的一个特征。具体举例如下,

以一个向量在两个空间坐标系中的转换为例,给出空间基向量的矩阵,一个是标准基,另一个是 A A A
在这里插入图片描述
对于一些向量,满足如下特点,
在这里插入图片描述
总结为一个向量经过坐标转换后对应的向量与其本身相比方向不变,是其某个倍数。这种向量 u ⃗ \vec{u} u 称为 A A A矩阵对应于 λ \lambda λ的特征向量,相应的倍数称为 A A A矩阵的特征值。

求解特征值和特征向量

对于 A u ⃗ = λ u ⃗ A\vec{u} = λ\vec{u} Au =λu 而言,零向量在任何情况下是肯定满足的,即零向量是一个平凡解。所以,特征向量不考虑零向量

但是, λ = 0 λ=0 λ=0并不平凡,当 λ = 0 λ=0 λ=0时, A u ⃗ = 0 A\vec{u} = 0 Au =0是一个齐次线性方程组。回顾之前的知识,如果矩阵 A A A可逆,则 A u ⃗ = 0 A\vec{u}=0 Au =0这个线性系统的 u ⃗ \vec{u} u 只有零解,但零向量不考虑在特征向量中,所以 u ⃗ \vec{u} u 不为零向量。故此时 A A A不可逆。所以特征值可以为0。

计算过程

方程有非零解对应的就是向量 u ⃗ \vec{u} u 不是零向量,回顾之前矩阵可逆的一系列等价命题,
在这里插入图片描述
因为此时 u ⃗ ≠ 0 \vec{u}≠0 u ̸=0,所以方阵 A A A不可逆,对应着如上所有命题的逆命题,其中与计算相关的还有一个命题就是矩阵 A A A的行列式在 A A A不可逆时为0。所以求取特征值和特征向量就转化为一个求取行列式的问题,
d e t ( A − λ I ) = 0 det(A-\lambda I)=0 det(AλI)=0
这也就是行列式是求取特征值和特征向量的基础的原因。上面的方程中只有 λ λ λ一个未知数,对于所有的矩阵 A A A都是适用的,所以上面的方程也称为特征方程

以上面笔记中的 A A A矩阵为例,
∣ A − λ I ∣ = ∣ 4 − λ − 2 1 1 − λ ∣ = ( 4 − λ ) ( 1 − λ ) − ( − 2 ) = λ 2 − 5 λ + 6 = ( λ − 2 ) ( λ − 3 ) = 0 |A-\lambda I|=\begin{vmatrix}4-\lambda&-2\\1&1-\lambda\end{vmatrix}\\=(4-\lambda)(1-\lambda)-(-2)\\=\lambda^2-5\lambda+6=(\lambda-2)(\lambda-3)=0 AλI=4λ121λ=(4λ)(1λ)(2)=λ25λ+6=(λ2)(λ3)=0
可得,
λ 1 = 2 λ 2 = 3 \lambda_1=2\\\lambda_2=3 λ1=2λ2=3
对于每一个特征值求取特征向量,该过程就是一个求取线性系统解的过程,
在这里插入图片描述
对于一个特征值 λ λ λ而言,特征向量是不唯一的,有无数个。

基于上面的推导,也将矩阵可逆的等价命题补全,
在这里插入图片描述

相关概念

  1. u ⃗ \vec{u} u A A A对应于 λ λ λ的一个特征向量,则 k u ⃗ k\vec{u} ku 也是一个特征向量( k ≠ 0 k≠0 k̸=0
    对该结论进行证明,
    A ( k u ⃗ ) = k ( A u ⃗ ) = k ( λ u ⃗ ) = λ ( k u ⃗ ) A(k\vec{u})=k(A\vec{u})=k(\lambda \vec{u})=\lambda(k\vec{u}) A(ku )=k(Au )=k(λu )=λ(ku )
  2. ( A − λ I ) u ⃗ = 0 (A-λI)\vec{u}=0 (AλI)u =0可以视为特征向量构成了 A − λ I A-λI AλI 零空间(刨除零向量),此时 E λ = O ∪ λ 的 特 征 向 量 Eλ = {O}∪{λ的特征向量} Eλ=Oλ E λ Eλ Eλ称为 λ λ λ对应的特征空间。
  3. 计算 λ λ λ的过程中, d e t ( A − λ I ) = 0 det(A-λI)=0 det(AλI)=0是一个关于 λ λ λ n n n次方程,对应 λ λ λ存在 n n n个解。
    如果 n n n维矩阵 A A A n n n个特征值,即 n n n个实数解,且每个解各不相同,则称为简单特征值
    如果特征方程得到的n个特征值有相同的值存在的情况,此时的特征值称为多重特征值
    如果特征方程在实数范围内没有解,但是在复数范围内存在解,则称特征值为复数特征值
    在这里插入图片描述

特征值与特征向量的性质

特殊方阵的特征值和特征向量

  1. 对角矩阵
    在这里插入图片描述
    对角矩阵的特征值计算时根本无需求解矩阵的特征方程,对角线上的每个元素都是一个特征值。
  2. 上三角矩阵和下三角矩阵
    在这里插入图片描述
    上三角矩阵和下三角矩阵计算行列式的方式与对角矩阵相同,所以其特征值也和对角矩阵是一样的。

若λ是方阵A的特征值,则λm是Am的特征值

对这一问题的证明分为两种情况

  1. m ≥ 1 m≥1 m1时,
    在这里插入图片描述
  2. m = − 1 m=-1 m=1时,此时 A − 1 A^{-1} A1是矩阵 A A A的逆
    在这里插入图片描述

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

在这里插入图片描述

LAPACK是一种线性代数库,用于解决各种数值线性代数问题,包括矩阵特征值特征向量的求解。下面我们来介绍一下LAPACK库中求解矩阵特征值特征向量的函数。 1. DSYEV函数 DSYEV函数用于求解实对称矩阵的特征值特征向量。该函数的原型如下: ``` void dsyev(char jobz, char uplo, int n, double* a, int lda, double* w, double* work, int lwork, int* info); ``` 参数说明: - jobz:指定计算特征值还是特征向量,取值为'N'(只计算特征值)或'V'(同时计算特征值特征向量)。 - uplo:指定矩阵的上三角部分还是下三角部分存储在数组a中,取值为'U'(上三角部分)或'L'(下三角部分)。 - n:矩阵的维数。 - a:存储矩阵的一维数组。 - lda:指定a数组中每个列向量的存储长度(通常为n)。 - w:存储特征值的一维数组。 - work:工作空间数组。 - lwork:指定work数组的长度(通常为3n)。 - info:返回求解结果,取值为0表示成功,其他值表示出错。 2. ZGEEV函数 ZGEEV函数用于求解复矩阵的特征值特征向量。该函数的原型如下: ``` void zgeev(char jobvl, char jobvr, int n, std::complex<double>* a, int lda, std::complex<double>* w, std::complex<double>* vl, int ldvl, std::complex<double>* vr, int ldvr, std::complex<double>* work, int lwork, double* rwork, int* info); ``` 参数说明: - jobvl:指定是否计算左特征向量,取值为'N'(不计算)或'V'(计算)。 - jobvr:指定是否计算右特征向量,取值为'N'或'V'。 - n:矩阵的维数。 - a:存储矩阵的一维数组。 - lda:指定a数组中每个列向量的存储长度(通常为n)。 - w:存储特征值的一维数组。 - vl:存储左特征向量的一维数组。 - ldvl:指定vl数组中每个列向量的存储长度(通常为n)。 - vr:存储右特征向量的一维数组。 - ldvr:指定vr数组中每个列向量的存储长度(通常为n)。 - work:工作空间数组。 - lwork:指定work数组的长度(通常为2n)。 - rwork:实数数组,长度为2n(用于存储中间计算结果)。 - info:返回求解结果,取值为0表示成功,其他值表示出错。 以上就是LAPACK库中求解矩阵特征值特征向量的函数介绍。需要注意的是,在调用这些函数之前,需要先将矩阵按列存储方式存储在一维数组中,并传入一些参数,如矩阵的维数、存储方式等。具体的参数可以参考LAPACK库的文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值