Eigen 矩阵的特征值特征向量求解(EVD分解)
用Eigen库求解矩阵的特征值和特征向量。
矩阵的特征值特征向量求解(EVD分解)
- 一、EVD分解原理
- 1.特征值
- 2.特征值分解过程
- 二、EVD分解举例
- 三、Eigen库实求解特征值与特征向量
- 1.C++代码
- 2.输出结果
一、EVD分解原理
1.特征值
如果说一个向量vvv是方阵An×nA_{n \times n}An×n的特征向量,将一定可以表示成下面的形式:
Av=λvAv=\lambda vAv=λv
写成矩阵的形式为:
AP=P[λ1λ2⋱λn]AP=P \begin{bmatrix} \lambda _1 \\ & \lambda _2 \\ & & \ddots \\ & & & \lambda _n \\ \end{bmatrix} AP=P⎣⎢⎢⎡λ1λ2⋱λn⎦⎥⎥⎤
即:
AP=PΣAP=P\Sigma AP=PΣ
其中,Pn×nP_{n\times n}Pn×n为特征向量vin×1{v_i}_{n\times 1}vin×1组成的矩阵:
P=[v1v2⋯vn]P=\begin{bmatrix} v_1 &v_2 & \cdots &v_n \end{bmatrix} P=[v1v2⋯vn]
2.特征值分解过程
如果矩阵AAA是一个n×nn\times nn×n的实对称
矩阵(即A=ATA=A^TA=AT ),那么它可以被分解成如下的形式:
A=PΣPT=P[λ1λ2⋱λm]PTA=P\Sigma P^T=P \begin{bmatrix} \lambda _1 \\ & \lambda _2 \\ & & \ddots \\ & & & \lambda _m \\ \end{bmatrix} P^T A=PΣPT=P⎣⎢⎢⎡λ1λ2⋱λm⎦⎥⎥⎤PT
其中Pn×nP_{n\times n}Pn×n为标准正交阵
(特征向量要归一化),即有PPT=I,PTP=IPP^T=I,P^TP=IPPT=I,PTP=I,Σ\SigmaΣ为对角矩阵,维度为n×nn\times nn×n。λi\lambda _iλi为特征值。
二、EVD分解举例
A=[2−1−12]A= \begin{bmatrix} 2 &-1 \\ -1 & 2 \\ \end{bmatrix} A=[2−1−12]
由定义可知:
Av=λvAv=\lambda v Av=λv
于是有:
Av−λv=0Av-\lambda v=0 Av−λv=0
即:
(A−λI)v=0(A-\lambda I) v=0 (A−λI)v=0
其中III为单位矩阵。
若想得到vvv的非零解,则需要使得∣A−λI∣=0|A-\lambda I|=0∣A−λI∣=0,带入矩阵AAA:
则有:
A−λI=[2−λ−1−12−λ]A-\lambda I= \begin{bmatrix} 2-\lambda &-1 \\ -1 & 2-\lambda \\ \end{bmatrix} \quad A−λI=[2−λ−1−12−λ]
令其行列式为0:
∣A−λI∣=∣2−λ−1−12−λ∣=0|A-\lambda I|= \begin{vmatrix} 2-\lambda &-1 \\ -1 & 2-\lambda \end{vmatrix} =0 ∣A−λI∣=∣∣∣∣2−λ−1−12−λ∣∣∣∣=0
则有:
(2−λ)(2−λ)−1=0(2-\lambda)(2-\lambda)-1 =0 (2−λ)(2−λ)−1=0
对这个等式进行分解因式,求解结果可得λ1=3,λ2=1\lambda _1=3,\lambda _2=1λ1=3,λ2=1。
(λ−3)(λ−1)=0(\lambda -3)(\lambda -1)=0 (λ−3)(λ−1)=0
有了特征值,可以带回到下面这个方程:
(A−λI)v=0(A-\lambda I) v=0 (A−λI)v=0
λ1=3\lambda _1=3λ1=3:
[2−λ−1−12−λ]v1=[2−3−1−12−3][v11v12]=0\begin{bmatrix} 2-\lambda &-1 \\ -1 & 2-\lambda \\ \end{bmatrix} v_1= \begin{bmatrix} 2-3 &-1 \\ -1 & 2-3 \\ \end{bmatrix} \begin{bmatrix} v_{11} \\ v_{12}\\ \end{bmatrix} =0 [2−λ−1−12−λ]v1=[2−3−1−12−3][v11v12]=0
解得v11=−v12v_{11}=-v_{12}v11=−v12,也就是说,v11v_{11}v11和v12v_{12}v12数值相反。可取向量v11=1v_{11}=1v11=1,v12=−1v_{12}=-1v12=−1,即v1=[1,−1]Tv_1=[1,-1]^Tv1=[1,−1]T,归一化为v1=[22,−22]Tv_1=[\frac {\sqrt 2}{2},-\frac {\sqrt 2}{2}]^Tv1=[22,−22]T。
λ2=1\lambda _2=1λ2=1:
[2−λ−1−12−λ]v2=[2−1−1−12−1][v21v22]=0\begin{bmatrix} 2-\lambda &-1 \\ -1 & 2-\lambda \\ \end{bmatrix} v_2= \begin{bmatrix} 2-1&-1 \\ -1 & 2-1 \\ \end{bmatrix} \begin{bmatrix} v_{21} \\ v_{22}\\ \end{bmatrix} =0 [2−λ−1−12−λ]v2=[2−1−1−12−1][v21v22]=0
解得v21=v22v_{21}=v_{22}v21=v22,也就是说,v22v_{22}v22等于v21v_{21}v21。可取向量v21=1,v22=1v_{21}=1,v_{22}=1v21=1,v22=1,即v2=[1,1]Tv_2=[1,1]^Tv2=[1,1]T,归一化为v2=[22,22]Tv_2=[\frac {\sqrt 2}{2},\frac {\sqrt 2}{2}]^Tv2=[22,22]T。
P=[2222−2222]P=\begin{bmatrix} \frac {\sqrt 2}{2}&\frac {\sqrt 2}{2} \\ -\frac {\sqrt 2}{2} &\frac {\sqrt 2}{2} \\ \end{bmatrix} P=[22−222222]
A[2222−2222]=[2222−2222][31]A\begin{bmatrix} \frac {\sqrt 2}{2}&\frac {\sqrt 2}{2} \\ -\frac {\sqrt 2}{2} &\frac {\sqrt 2}{2} \\ \end{bmatrix}= \begin{bmatrix} \frac {\sqrt 2}{2}&\frac {\sqrt 2}{2} \\ -\frac {\sqrt 2}{2}&\frac {\sqrt 2}{2} \\ \end{bmatrix} \begin{bmatrix} 3 \\ &1 \\ \end{bmatrix} A[22−222222]=[22−222222][31]
[2−1−12][2222−2222]=[2222−2222][31]\begin{bmatrix} 2 &-1 \\ -1 & 2 \\ \end{bmatrix} \begin{bmatrix} \frac {\sqrt 2}{2}&\frac {\sqrt 2}{2} \\ -\frac {\sqrt 2}{2} &\frac {\sqrt 2}{2}\\ \end{bmatrix}= \begin{bmatrix} \frac {\sqrt 2}{2}&\frac {\sqrt 2}{2} \\ -\frac {\sqrt 2}{2} &\frac {\sqrt 2}{2}\\ \end{bmatrix} \begin{bmatrix} 3 \\ &1 \\ \end{bmatrix} [2−1−12][22−222222]=[22−222222][31]
刚好等式成立,对于EVD分解A=PΣPTA=P\Sigma P^TA=PΣPT有如下等式成立:
A=[2222−2222][31][2222−2222]TA= \begin{bmatrix} \frac {\sqrt 2}{2}&\frac {\sqrt 2}{2} \\ -\frac {\sqrt 2}{2} &\frac {\sqrt 2}{2} \\ \end{bmatrix} \begin{bmatrix} 3 \\ &1 \\ \end{bmatrix} \begin{bmatrix} \frac {\sqrt 2}{2}&\frac {\sqrt 2}{2} \\ -\frac {\sqrt 2}{2} &\frac {\sqrt 2}{2} \\ \end{bmatrix}^T A=[22−222222][31][22−222222]T
三、Eigen库实求解特征值与特征向量
1.C++代码
#include <iostream>
#include <Eigen/Dense>using namespace std;
using namespace Eigen;int main()
{Matrix2d A;A<< 2,-1,-1,2;cout << "Here is a 2x2 matrix, A:" << endl << A << endl << endl;EigenSolver<Matrix2d> es(A);//下面是输出特征值和特征向量的实部,可以不用这种方式//cout << "The eigenvalues of A are:" << endl << es.eigenvalues().real()[0]<<"," << es.eigenvalues().real()[1] << endl;//cout << "The matrix of eigenvectors, V, is:" << endl << es.eigenvectors().real() << endl << endl;//求解特征值Matrix2d d = es.pseudoEigenvalueMatrix();cout << d<< endl;//求解特征向量Matrix2d v = es.pseudoEigenvectors();cout << v << endl;system("pause");return 0;
}
2.输出结果
Here is a 2x2 matrix, A:2 -1
-1 23 0
0 10.707107 0.707107
-0.707107 0.707107
Eigen 矩阵的特征值特征向量求解(EVD分解)相关推荐
- 三阶矩阵的特征值一般求解
这里先简单介绍一下,对于一个给定的三阶矩阵,相信学过线性代数的大部分同学都会求解他的特征值,但是,在解特定的题目的时候我们是否发现有一般的规律呢,下面我们就简单介绍一下(一般解的形式这里也没有给出,不 ...
- 如何用计算机求特征值特征向量,利用QR算法求解矩阵的特征值和特征向量
利用QR算法求解矩阵的特征值和特征向量 为了求解一般矩阵(不是那种幼稚到shi的2 x 2矩阵)的特征值. 根据定义的话,很可能需要求解高阶方程... 这明显是个坑...高阶方程你肿么破... 折腾了 ...
- C语言通过QR分解计算矩阵的特征值和特征向量
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h>// ...
- 利用QR算法求解矩阵的特征值和特征向量
利用QR算法求解矩阵的特征值和特征向量 为了求解一般矩阵(不是那种幼稚到shi的2 x 2矩阵)的特征值. 根据定义的话,很可能需要求解高阶方程... 这明显是个坑...高阶方程你肿么破... 折腾了 ...
- 特征向量矩阵,特征值矩阵,矩阵的对角化分解
特征向量矩阵S,由矩阵A的所有线性无关的特征向量按列排列组成的矩阵. 特征值矩阵,有矩阵A的所有特征值放在对角线位置组成的对角矩阵. 矩阵对角化:AS = S(讲AS展开可以推导出这个公式) 上式两边 ...
- 线性代数之 矩阵的特征值,特征向量,特征分解
线性代数之 矩阵的特征值,特征向量和特征分解 前言 特征值和特征向量 求矩阵特征值 矩阵的特征分解 补充:实对称矩阵 后记 前言 矩阵的特征分解是比较基础的知识了,但是应用却十分广泛,比如主成分分析. ...
- 雅可比旋转求解对称二维矩阵的特征值和特征向量
问题描述: 给定一个矩阵,如下: A=[a11a21a12a22] A=\begin{bmatrix} a_{11}&a_{12}\\ a_{21}& a_{22} \end{bmat ...
- matlab矩阵正交变换,在线计算专题(12):矩阵的特征值、特征向量、正交变换与二次型与常见矩阵分解...
1.计算特征多项式 例 计算以下矩阵的特征多项式 参考输入表达式为characteristic polynomial {{-1,1,0},{-4,3,0},{1,0,2}} 执行计算得到的结果如下. ...
- 矩阵的特征值、特征向量、特征值分解、奇异值分解之间的关系
可逆矩阵 A⋅A−1=A−1⋅A=EA\cdot A^{-1}=A^{-1}\cdot A = EA⋅A−1=A−1⋅A=E 矩阵的几何意义是对一组向量进行变换,包括方向和模长的变化.而逆矩阵表示对其 ...
最新文章
- 时间管理大师!一程序员同时给谷歌和 Facebook 打工??
- FreeBSD下查看各软件版本命令
- TableView的集合
- MySql 数据库 - 重置数据库、重置初始密码方法,数据库初始化方法,长时间不用忘记密码暴力解决方法
- CCNA——网络初认识
- 1.3MB 的超轻YOLO算法!全平台通用,准确率接近YOLOv3,速度快上45%丨开源
- iar atof 问题
- java中扫描类_java类扫描
- 佛祖保佑代码无bug图片_程序员都有哪些奇趣的代码注释,细思极恐
- C#调用API函数EnumWindows枚举窗口的方法
- LNMP环境下搭建SVN服务器
- oracle VM manager 3.1 试验备忘录
- excel制图小技巧
- 去携程面试,问HR待遇如何,HR说我太看重钱,不录取我
- 使用spark-submit工具提交Spark作业
- php excel加密,excel工作表加密怎么设置?
- MiniGUI——第一个程序helloworld
- chrome无法打开任何网站提示证书过期
- 《算法分析与设计》复习笔记
- 关于“硬解码”与“软解码”