矩阵的特征值与特征向量

喜欢这篇文章吗?喜欢的话去看博主的置顶博客,即可依据分类找到此文章的原版得到更好的体验,

图片及代码显示的问题,笔者深感抱歉,想要更好的体验去原博文即可。


title: 矩阵的特征值与特征向量
mathjax: true
date: 2020-02-26 16:31:55
categories: [mathematics,matrix,矩阵的特征值与特征向量]
tags: [mathematics,matrix]
keywords: [mathematics,matrix]


建议先看这个

{% post_link 矩阵分解%}

矩阵特征值的与特征向量

  若矩阵 A A A,列向量 X X X,常数 λ \lambda λ满足 A X = λ X AX=\lambda X AX=λX,则我们称 λ \lambda λ A A A的一个特征值, X X X A A A的一个特征向量

解析解

  一元高次方程 d e t ( X − λ E ) = 0 det(X-\lambda E)=0 det(XλE)=0,这在X的阶很高的时候,几乎是无用的。

近似解

   因为我们难以得到矩阵特征值的解析解,所以这里使用近似解来逼近。

Given变换

  Given变换是一种旋转变换,他的变换矩阵与单位矩阵相比只有四个元素不一样,变换矩阵如下
$$
\begin{aligned}
\left[\begin{matrix}

&1\
&&.\
&&&.\
&&&&.\
&&&&&\cos\theta &&&&\sin\theta\
&&&&&&.\
&&&&&&&.\
&&&&&&&&.\
&&&&&-\sin\theta &&&&\cos\theta\
&&&&&&&&&&.&\
&&&&&&&&&&&.&\
&&&&&&&&&&&&.&\
&&&&&&&&&&&&&1&\
\end{matrix}\right]
\end{aligned}
$$
  不难证明这个矩阵是正交矩阵,不难证明左乘这个变换只会改变两行,右乘这个矩阵只会改变两列

Hessenberg矩阵

  次对角线下方元素为0
[ x x x x x x x x x x x x x x x x x x x ] \begin{aligned} \left[\begin{matrix} &x&x&x&x&x\\ &x&x&x&x&x\\ &&x&x&x&x\\ &&&x&x&x\\ &&&&x&x\\ \end{matrix}\right] \end{aligned} xxxxxxxxxxxxxxxxxxx
  任何一个方阵都有上海森伯格形式的相似矩阵,

幂法

   幂法是最基础的算法,我们先来描述一下这个过程
   我们随机选择一个初始列向量 Y Y Y,假设它能够被矩阵A的特征向量线性组合出来,则 lim ⁡ N → ∞ A N Y = 一 个 特 征 向 量 \begin{aligned}\lim_{N\to\infty}A^NY\end{aligned}=一个特征向量 NlimANY=
   这里使用快速幂算法就亏大了快速幂迭代一次 O ( N 3 ) O(N^3) O(N3),普通迭代一次 O ( N 2 ) O(N^2) O(N2),所以普通迭代就行了,
   证明: 对于大部分 Y Y Y来说,如果它能够被组合出来即 Y = k 1 X 1 + K 2 X 2 + K 3 X 3 + . . . Y=k_1X_1+K_2X_2+K_3X_3+... Y=k1X1+K2X2+K3X3+...,且满足特征值满足条件 λ 1 > λ 2 > . . . \lambda_1>\lambda_2>... λ1>λ2>...
   则有 A N Y = k 1 A N X 1 + k 2 A N X 2 + . . . = k 1 λ 1 N X 1 + k 2 λ 2 N X 2 + . . . A^NY=k_1A^NX_1+k_2A^NX_2+...=k_1\lambda_1^NX_1+k_2\lambda_2^NX_2+... ANY=k1ANX1+k2ANX2+...=k1λ1NX1+k2λ2NX2+...,所以这个极限是显然趋近于特征值绝对值最大的特征向量的。
   所以这个算法在大多数情况下都能成功。考虑到幂法会增长很快,我们可以在迭代过程中单位化。

反幂法

   求逆以后在用幂法,我们会得到特征值最小的特征向量,这很容易证明。

jacobi迭代法

  只能处理对称矩阵
   这个算法使用相似矩阵,每次使用一个Given变换,让绝对值最大的非对角线上的元素变为0,这导致了整体势能的下降,最终相似矩阵的非对角线元素会趋近于0,Given变换是一个稀疏矩阵,他和单位矩阵只有四个元素不同,是一种旋转矩阵,加上相似变换以后,这导致他只会改变两行和两列,最终我们就得出了特征值。

QR迭代法

   还是先说做法,再给出证明,根据QR分解我们有 A = Q R A=QR A=QR,构造 A 2 = R Q = Q − 1 A Q A_2 = RQ = Q^{-1}AQ A2=RQ=Q1AQ,我们就不难发现 A 2 A_2 A2 A A A相似,我们用同样的办法,从 A 1 A_1 A1得到 A 2 A_2 A2,从 A 2 A_2 A2得到 A 3 A_3 A3…不断的迭代下去,最终 A i A_i Ai对角线一下的元素会趋近于0,这是特征值就算出来了.QR算法的本质其实还是幂法,
   我们考虑幂法的过程,他可以求出一个特征向量,如果我们在幂法结束以后,得到了 X 1 X_1 X1,然后我们再随机选择一个 Y 2 Y_2 Y2,把 Y 2 Y_2 Y2 X 1 X_1 X1的分量去掉,然后进行幂法迭代,这时候我们会得到特征值第二大的特征向量,因为 Y 2 Y_2 Y2再去掉 X 1 X_1 X1方向上的分量以后,已经不再包含 X 1 X_1 X1方向上的值了,也即 k 1 k_1 k1为0,这时候幂法得到的极限是第二大特征向量,随后我们可以顺序得到第三大、第四大、、、,这样太蠢了,我们考虑一次性把他们呢求出来,我们一次性就选择n个随机向量构成矩阵Z,然后用A左乘得到AZ,然后对AZ
使用斯密斯正交化得到 Z 2 Z_2 Z2,可以证明 Z n Z_n Zn将趋近于A的所有特征向量构成的矩阵。证明很多细节地方没有处理,这也就是为什么QR算法会失败的原因,但QR算法在大多数情况下是能够成功的,
   即我们得到了算法迭代 Y i = G r a m S c h m i d t ( A Y i − 1 ) Y_i=GramSchmidt(AY_{i-1}) Yi=GramSchmidt(AYi1),这个算法叫归一化算法,和上面那个算法优点小区别,但本质上是一样的,只是标记不一样而已。
   如果我们能够提前把矩阵变为上海森伯格形式,QR算法的速度将大大提高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值