如何求矩阵的特征值和特征向量
举例求解矩阵的特征值和特征向量
(先明确:只有方阵才能求出特征值,非方阵只能求奇异值。)
直接举一个例子:求下面矩阵M的特征值和特征向量。
M=[460−3−50−3−61]M =\begin{bmatrix} 4 & 6 & 0 \\ -3 & -5 & 0 \\ -3 & -6 & 1 \end{bmatrix} M=⎣⎡4−3−36−5−6001⎦⎤
设矩阵M的特征值为λ\lambdaλ,列出矩阵M的特征方程:矩阵M减去,λ\lambdaλ乘以和M同等大小的单位矩阵E。再让它们整体的行列式的值等于0即可。如下所示:
∣M−λE∣=0(1)|M - \lambda E| = 0\tag{1}∣M−λE∣=0(1)
求解(1)式的步骤如下:
∣M−λE∣=[4−λ60−3−5−λ0−3−61−λ]=(1−λ)[4−λ6−3−5−λ]=(λ−1)2(λ+2)|M - \lambda E| = \begin{bmatrix} 4-\lambda & 6 & 0 \\ -3 & -5-\lambda & 0 \\ -3 & -6 & 1-\lambda \end{bmatrix} = (1-\lambda) \begin{bmatrix} 4-\lambda & 6 \\ -3 & -5-\lambda \end{bmatrix} = (\lambda -1)^{2}(\lambda + 2)∣M−λE∣=⎣⎡4−λ−3−36−5−λ−6001−λ⎦⎤=(1−λ)[4−λ−36−5−λ]=(λ−1)2(λ+2)
所以特征值为1和-2,重数是1。
然后,把每个特征值λ\lambdaλ带入到下方的线性方程组(M−λE)x=0(M - \lambda E)x = 0(M−λE)x=0,求出特征向量。
当λ1=−2\lambda_{1}=-2λ1=−2时,解线性方程组:(M−(−2)E)x=0(M - (-2)E)x = 0(M−(−2)E)x=0。
∣M+2E∣=[660−3−30−3−63]⇒先变成增广矩阵[6600−3−300−3−630]⇒再初等行变换[110000000−110]|M + 2E| = \begin{bmatrix} 6 & 6 & 0 \\ -3 & -3 & 0 \\ -3 & -6 & 3 \end{bmatrix} \xRightarrow{先变成增广矩阵} \begin{bmatrix} 6 & 6 & 0 & 0\\ -3 & -3 & 0 & 0\\ -3 & -6 & 3 & 0 \end{bmatrix} \xRightarrow{再初等行变换} \begin{bmatrix} 1 & 1 & 0 & 0\\ 0 & 0 & 0 & 0\\ 0 & -1 & 1 & 0 \end{bmatrix} ∣M+2E∣=⎣⎡6−3−36−3−6003⎦⎤先变成增广矩阵⎣⎡6−3−36−3−6003000⎦⎤再初等行变换⎣⎡10010−1001000⎦⎤
所以,x1+x2=0;−x2+x3=0x_{1}+x_{2}=0; -x_{2}+x_{3}=0x1+x2=0;−x2+x3=0。随便带一个值,一般取x3=1x_{3}=1x3=1,可解得x2=1,x1=−1。x_{2}=1,x_{1}=-1。x2=1,x1=−1。
解得:x1=−1,x2=1,x3=1x_{1}=-1,x_{2}=1,x_{3}=1x1=−1,x2=1,x3=1,所以λ1\lambda_{1}λ1的特征向量为:p1=[−111]。p_{1} =\begin{bmatrix}-1\\ 1\\ 1\end{bmatrix}。p1=⎣⎡−111⎦⎤。
当λ2=λ3=1\lambda_{2}=\lambda_{3}=1λ2=λ3=1时,解线性方程组:(M−E)x=0(M - E)x = 0(M−E)x=0。
∣M−E∣=[360−3−60−3−60]⇒先变成增广矩阵[3600−3−600−3−600]⇒再初等行变换[120000000000]|M - E| = \begin{bmatrix} 3 & 6 & 0 \\ -3 & -6 & 0 \\ -3 & -6 & 0 \end{bmatrix} \xRightarrow{先变成增广矩阵} \begin{bmatrix} 3 & 6 & 0 & 0\\ -3 & -6 & 0 & 0\\ -3 & -6 & 0 & 0 \end{bmatrix} \xRightarrow{再初等行变换} \begin{bmatrix} 1 & 2 & 0 & 0\\ 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 \end{bmatrix} ∣M−E∣=⎣⎡3−3−36−6−6000⎦⎤先变成增广矩阵⎣⎡3−3−36−6−6000000⎦⎤再初等行变换⎣⎡100200000000⎦⎤
所以,x1+2x2=0;x3=0x_{1}+2x_{2}=0; x_{3}=0x1+2x2=0;x3=0。随便带一个值,这里取x1=−2x_{1}=-2x1=−2,可解得x2=1。x_{2}=1。x2=1。
解得:x1=−2,x2=1,x3=0x_{1}=-2,x_{2}=1,x_{3}=0x1=−2,x2=1,x3=0,所以λ2\lambda_{2}λ2特征向量为:p2=[−210]。p_{2} = \begin{bmatrix}-2\\ 1\\ 0\end{bmatrix}。p2=⎣⎡−210⎦⎤。
再取,x1=x2=0,x3=1x_{1}=x_{2}=0,x_{3}=1x1=x2=0,x3=1,可解得λ3\lambda_{3}λ3的特征向量为:p3=[001]。p_{3} = \begin{bmatrix}0\\ 0\\ 1\end{bmatrix}。p3=⎣⎡001⎦⎤。
综上所述:矩阵M的特征值为λ1=−2,λ2=λ3=1\lambda_{1}=-2,\lambda_{2}=\lambda_{3}=1λ1=−2,λ2=λ3=1。对应的特征向量为:p1=[−111]p_{1} =\begin{bmatrix}-1\\ 1\\ 1\end{bmatrix}p1=⎣⎡−111⎦⎤、p2=[−210]、p3=[001]p_{2} = \begin{bmatrix}-2\\ 1\\ 0\end{bmatrix}、p_{3} =\begin{bmatrix}0\\ 0\\ 1\end{bmatrix}p2=⎣⎡−210⎦⎤、p3=⎣⎡001⎦⎤。
如何再继续进行矩阵的特征分解呢?
接下来进行矩阵的特征分解,上面已经求出了矩阵M的特征值和特征向量了,下面就非常简单了。
设矩阵Q为矩阵M的特征向量按列组成的矩阵。将特征向量按照从大到小、从左到右按列排列构成Q。 Λ 是对角矩阵,其对角线上的元素为对应的特征值。(按照刚才特征向量的位置,把对应特征值从上往下排列)如下所示:
Q=[−20−1101011],Λ=[10001000−2]。Q= \begin{bmatrix} -2 & 0 &-1\\ 1 & 0 &1 \\ 0 & 1 &1 \end{bmatrix} ,Λ= \begin{bmatrix} 1 & 0 &0\\ 0 & 1 &0 \\ 0 & 0 &-2 \end{bmatrix} 。 Q=⎣⎡−210001−111⎦⎤,Λ=⎣⎡10001000−2⎦⎤。
所以最后,方阵M的特征值分解为:
M=QΛQ−1=[−20−1101011][10001000−2][−20−1101011]−1M=QΛQ^{-1}= \begin{bmatrix} -2 & 0 &-1\\ 1 & 0 &1 \\ 0 & 1 &1 \end{bmatrix} \begin{bmatrix} 1 & 0 &0\\ 0 & 1 &0 \\ 0 & 0 &-2 \end{bmatrix} \begin{bmatrix} -2 & 0 &-1\\ 1 & 0 &1 \\ 0 & 1 &1 \end{bmatrix}^{-1} M=QΛQ−1=⎣⎡−210001−111⎦⎤⎣⎡10001000−2⎦⎤⎣⎡−210001−111⎦⎤−1
最后注意:
能够进行特征分解的矩阵,要满足以下两个条件:
1.如果矩阵的所有特征根都不相等,那么绝对可以特征分解。
2.如果矩阵有等根,只需等根(重特征值)对应的那几个特征向量,是线性无关的。那么也可以特征分解。如果不是就不能了。
综合说:就是要有n个线性无关的特征向量。
如何求矩阵的特征值和特征向量相关推荐
- numpy求矩阵的特征值与特征向量(np.linalg.eig函数详解)
numpy求矩阵的特征值与特征向量(np.linalg.eig) 语法 np.linalg.eig(a) 功能 Compute the eigenvalues and right eigenvecto ...
- matlab编程 利用生成一个10阶魔方矩阵,求矩阵的特征值、特征向量,对于特征值,请按照降序进行排列,对应的特征向量进行同样的排序。...
您可以使用 Matlab 中的 eig 函数来计算矩阵的特征值和特征向量.例如,假设您要求解的矩阵为 A,则可以使用以下代码求解: [V,D] = eig(A);
- 用R求矩阵的特征值和特征向量
最近在学习多元统计分析的主成分分析时,发现需要经常计算矩阵的特征值和特征向量,自己就找了下用R来做计算的函数. 我们可以用sigen()函数来计算特征对. #创建一个矩阵 a <- matrix ...
- python求雅可比矩阵_雅可比算法求矩阵的特征值和特征向量
目的 求一个实对称矩阵的所有特征值和特征向量. 前置知识 对于一个实对称矩阵\(A\),必存在对角阵\(D\)和正交阵\(U\)满足$$D=U^TAU$$\(D\)的对角线元素为\(A\)的特征值,\ ...
- matlab中怎么求矩阵的特征值和特征向量
https://jingyan.baidu.com/article/d169e186047d86436611d88a.html matlab如何求矩阵特征值_xiaolu的专栏-CSDN博客_matl ...
- 利用OpenCV求矩阵的特征值和特征向量
来源: 互联网 首先安转和配置OpenCV windows版,在此不赘述! 首先看看OpenCV中的矩阵运算的相关知识:CvMat(多通道矩阵) CvMat的结构定义: typedef struct ...
- 求矩阵全部特征值和特征向量的QR方法
计算方法 本专栏为西安交通大学的<数值计算>研究生教材里面提供的计算方法撰写Python程序. ThinkZtoA ¥29.90 订阅博主 import numpy as np impor ...
- MATLAB反幂法求矩阵最小特征值及其特征向量
A=input('输入代解矩阵:'); x=input('输入特征向量的迭代初值(列向量):'); k=0; while 1jk=1;for j=2:numel(A(1,:)) % 由 numel(A ...
- matlab——求矩阵最大特征值对应的特征向量
A=[1,1,2,3,4;1,1,1,2,3;1/2,1,1,1,2;1/3,1/2,1,1,1;1/4,1/3,1/2,1,1];%待求矩阵[x,y]=eig(A);%求矩阵的特征值和特征向量,x为 ...
- 乘幂法计算矩阵主特征值和特征向量-Matlab实现
文章目录 1.前言 2.方法介绍 3.算法步骤 4.数值实验 5.总结 6.Matlab代码 1.前言 乘幂法主要用于求实矩阵按模最大的特征值(主特征值)和相应特征向量.本文通过Matlab解决实际例 ...
最新文章
- Linux桌面环境与命令行环境切换快捷键,以及linux 图形界面 X Server 关闭 启动
- 从网游策划谈《梦幻西游》的成功之道
- Android permission 访问权限一览
- spring mvc学习(32):原生代码导入
- ionic app 优化三件套,让其更贴近原生app
- UNDO 表空间管理
- 关于求XXX.class.getResource(xxx).getPath()的用法
- noip模拟赛 入阵曲
- 【FlexSim2019】自学笔记:交通工具路径设置 | NetworkNode | 操作员固定路径 | 叉车固定路径
- iOS开发之字符串(NSString)的截取的几种方法
- centos6 系统安装 system-config-kickstart 工具
- DSP技术是利用计算机或,DSP技术是什么?
- 腾讯翻译君在线翻译怎么翻译整个文件_腾讯文档:在线多人协作文档工具
- 大一上c语言基础知识题
- 20145240 《信息安全系统设计基础》第六周同学问题总结
- 龙芯 python_html页面转PDF、图片操作记录,Vue项目入门实例
- [转载评论]月入1.5万 中产阶层该买什么车?
- android中自动翻译你看不懂的英文代码插件,让你实现在androistudio中学习英语!!
- EXCEL双击文件打开是空白的
- js实现字母序号自动递增