特征值与特征向量,原理与Matlab实现

求解原理

  定义: A A A n × n n \times n n×n 方阵,如果有数 λ \lambda λ n n n维非零列向量 X X X,满足下式,则称 λ \lambda λ A A A的一个特征值,非零向量 X X X为与 λ \lambda λ对应的特征向量
A X = λ X AX = \lambda X AX=λX
  Step1:特征值求解
  上式可写作 ( λ E − A ) X = 0 \left( {\lambda E - A} \right)X = {\bf{0}} (λEA)X=0,其中 E E E n n n 阶单位矩阵,从而得到下式,这是一个关于 λ \lambda λ n n n次多项式,也称为特征方程特征多项式,从而解得 n n n个特征值 λ 1 , λ 2 , . . . , λ n {\lambda _1},{\lambda _2},...,{\lambda _n} λ1,λ2,...,λn
∣ λ E − A ∣ = ∣ λ − a 11 − a 12 ⋯ − a 1 n − a 21 λ − a 22 ⋯ − a 2 n ⋮ ⋮ ⋱ ⋮ − a n 1 − a n 2 ⋯ λ − a n n ∣ = 0 \left| {\lambda E - A} \right| = \left| \begin{matrix} \lambda - a_{11} & -a_{12} & \cdots & -a_{1n} \\ -a_{21} & \lambda - a_{22} & \cdots & -a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ -a_{n1} & -a_{n2} & \cdots & \lambda - a_{nn} \end{matrix} \right| = 0 λEA= λa11a21an1a12λa22an2a1na2nλann =0
  Step2:特征向量求解
  对于每一个特征值 λ i \lambda_i λi,通过求解方程组 ( λ i E − A ) X i = 0 \left( {\lambda_i E - A} \right)X_i = {\bf{0}} (λiEA)Xi=0,得到特征向量 X i X_i Xi。这可以转化为齐次线性方程组求解问题,具体步骤如下:

  1. λ i E − A \lambda_i E - A λiEA 表示为增广矩阵形式。
  2. 对增广矩阵进行高斯消元,得到方程组的简化形式。
  3. 根据简化形式,利用回代法求解出特征向量 X i X_i Xi
      

基本性质

  性质1: 矩阵 A A A n n n个特征值之和等于 A A A n n n个对角元素之和,也常被成为 A A A的迹,记作 t r ( A ) tr(A) tr(A),即
λ 1 + λ 2 + . . . + λ n = a 11 + a 22 + . . . + a n n = t r ( A ) {\lambda _1} + {\lambda _2} + ... + {\lambda _n} = {a_{11}} + {a_{22}} + ... + {a_{nn}} = tr\left( A \right) λ1+λ2+...+λn=a11+a22+...+ann=tr(A)

  性质2:矩阵 A A A n n n个特征值之积等于 A A A的行列式,即
λ 1 λ 2 . . . λ n = ∣ A ∣ {\lambda _1}{\lambda _2}...{\lambda _n} = \left| A \right| λ1λ2...λn=A

  性质3:线性无关的特征向量可实现矩阵 A A A的相似对角化,记 P = [ X 1 X 2 . . . X n ] P = \left[ {{X_1}{X_2}...{X_n}} \right] P=[X1X2...Xn],则
P − 1 A P = d i a g ( λ 1 , λ 2 , . . . , λ n ) {P^{ - 1}}AP = diag\left( {{\lambda _1},{\lambda _2},...,{\lambda _n}} \right) P1AP=diag(λ1,λ2,...,λn)

  性质4:特征值是唯一确定的,但是特征向量具有不同的形式。补充:一方面,特征向量可以选择不同的模长;另一方面,特征向量可以选择不同的基向量。例如,对于单重特征值,特征向量是一维的,可以选择两个方向,对于双重的特征值,特征向量是二维的,可以选择任意一组基向量作为特征向量,详见下述解析计算。

解析计算

  对于矩阵 A A A
A = [ − 1 1 1 1 − 1 1 1 1 − 1 ] A = \left[ \begin{array}{ccc} -1 & 1 & 1 \\ 1 & -1 & 1 \\ 1 & 1 & -1 \\ \end{array} \right] A= 111111111

  Step1:特征值求解
  展开方程 ∣ λ E − A ∣ = 0 \left| {\lambda E - A} \right| = 0 λEA=0 得到:
∣ λ E − A ∣ = ∣ λ + 1 − 1 − 1 − 1 λ + 1 − 1 − 1 − 1 λ + 1 ∣ = 0 \left| {\lambda E - A} \right| = \left| \begin{matrix} \lambda + 1 & -1 & -1 \\ -1 & \lambda + 1 & -1 \\ -1 & -1 & \lambda + 1 \\ \end{matrix} \right| = 0 λEA= λ+1111λ+1111λ+1 =0
  展开行列式,得到关于 λ \lambda λ 的多项式:
( λ − 1 ) ( λ + 2 ) 2 = 0 (\lambda - 1)(\lambda + 2)^2 = 0 (λ1)(λ+2)2=0
  解这个特征多项式,得到特征值 λ 1 = − 1 \lambda_1 = -1 λ1=1 λ 2 = λ 3 = − 2 \lambda_2 = \lambda_3 = -2 λ2=λ3=2

  Step2:特征向量求解

  对于特征值 λ 1 = − 1 \lambda_1 = -1 λ1=1,我们解方程组 ( λ 1 E − A ) X = 0 (\lambda_1 E - A)X = \mathbf{0} (λ1EA)X=0,即:

( 0 − 1 − 1 − 1 0 − 1 − 1 − 1 0 ) X = ( 0 0 0 ) \left( \begin{matrix} 0 & -1 & -1 \\ -1 & 0 & -1 \\ -1 & -1 & 0 \\ \end{matrix} \right) X = \left( \begin{matrix} 0 \\ 0 \\ 0 \\ \end{matrix} \right) 011101110 X= 000
  对增广矩阵进行高斯消元,得到简化形式为:
( 1 0 1 0 1 1 0 0 0 ) X = ( 0 0 0 ) \left( \begin{matrix} 1 & 0 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 0 \\ \end{matrix} \right) X = \left( \begin{matrix} 0 \\ 0 \\ 0 \\ \end{matrix} \right) 100010110 X= 000
  这里有一个自由变量,我们令 x 3 = t x_3 = t x3=t,其中 t ≠ 0 t \neq 0 t=0,然后可以得到:
X = t ( − 1 − 1 1 ) X = t \left( \begin{matrix} -1 \\ -1 \\ 1 \\ \end{matrix} \right) X=t 111
  因此,对应于特征值 λ 1 = − 1 \lambda_1 = -1 λ1=1 的特征向量为 X 1 = ( − 1 − 1 1 ) X_1 = \left( \begin{matrix} -1 \\ -1 \\ 1 \end{matrix} \right) X1= 111

  对于特征值 λ 2 = λ 3 = − 2 \lambda_2 = \lambda_3 = -2 λ2=λ3=2,我们解方程组 ( λ 2 E − A ) X = 0 (\lambda_2 E - A)X = \mathbf{0} (λ2EA)X=0,即:

( − 1 − 1 − 1 − 1 − 1 − 1 − 1 − 1 − 1 ) X = ( 0 0 0 ) \left( \begin{matrix} -1 & -1 & -1 \\ -1 & -1 & -1 \\ -1 & -1 & -1 \\ \end{matrix} \right) X = \left( \begin{matrix} 0 \\ 0 \\ 0 \\ \end{matrix} \right) 111111111 X= 000

  对增广矩阵进行高斯消元,得到简化形式为:
( 1 1 1 0 0 0 0 0 0 ) X = ( 0 0 0 ) \left( \begin{matrix} 1 & 1 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{matrix} \right) X = \left( \begin{matrix} 0 \\ 0 \\ 0 \\ \end{matrix} \right) 100100100 X= 000

  这里有两个自由变量,我们令 x 2 = s x_2 = s x2=s x 3 = t x_3 = t x3=t,其中 s , t ≠ 0 s, t \neq 0 s,t=0,然后可以得到:
X = s ( 1 − 1 0 ) + t ( 1 0 − 1 ) X = s \left( \begin{matrix} 1 \\ -1 \\ 0 \\ \end{matrix} \right) + t \left( \begin{matrix} 1 \\ 0 \\ -1 \\ \end{matrix} \right) X=s 110 +t 101

  因此,对应于特征值 λ 2 = λ 3 = − 2 \lambda_2 = \lambda_3 = -2 λ2=λ3=2 的特征向量为 X 2 = ( 1 − 1 0 ) X_2 = \left( \begin{matrix} 1 \\ -1 \\ 0 \end{matrix} \right) X2= 110 X 3 = ( 1 0 − 1 ) X_3 = \left( \begin{matrix} 1 \\ 0 \\ -1 \end{matrix} \right) X3= 101

Matlab实现

  实际过程中,可直接采用Matlab求解特征值和特征向量,示例代码如下所示。

% 给定矩阵 A
A = [-1, 1, 1; 1, -1, 1; 1, 1, -1];

% 求解特征值和特征向量
[V, D] = eig(A);

% 输出特征值和特征向量
disp('特征值:');
disp(diag(D)');
disp('特征向量:');
disp(V);

  如下结果可以看出,求解所得特征值与解析计算是一致的,但特征向量的选择有所不同。一方面,Matlab进行了模长度的归一化(通过 λ = 1 \lambda=1 λ=1的特征向量可以看出);另一方面,Matlab选择的是正交基作为 λ = 2 \lambda=2 λ=2的特征向量。
在这里插入图片描述

参考文献

参考1:线性代数,特征值与特征向量

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值