MATLAB 之特征值与特征向量、jordan标准形

简介:

实验六  特征值与特征向量、若当标准形

实验目的

1.了解特征值与特征向量基本概念及其性质;

2.了解若当标准型的基本概念;

3.学习、掌握MATLAB软件有关的命令。

实验准备

1.特征多项式

设A为n阶方阵, 如果数“ ”和n维列向量x使得关系式 成立, 则称 为方阵A的特征值, 非零向量x称为A对应于特征值“ ”的特征向量。

poly(A),返回矩阵A的特征多项式的向量表示形式,例如:

>> clear

>> A=[1 0;2 3];

>> p=poly(A)         %矩阵A的特征多项式的向量表示形式

p =

     1    -4     3

>> f=poly2str(p,’x’)     %矩阵A的特征多项式

f =

   x^2 – 4 x + 3

或者由定义出发,计算特征多项式.例如:

>> clear

>> A=[1 0;2 3];

>> E=eye(2);        %2阶单位阵

>> syms x

>> f=det(x*E-A)      %矩阵A的特征多项式

f =

 (x-1)*(x-3)

2.特征值与特征向量eigenvalue

求一个方阵的特征值与特征向量可以使用函数eig( ).

d=eig(A),  返回A所有特征值组成的列向量d.

[V,D]= eig(A),  返回A所有特征值组成的矩阵D和特征向量组成的矩阵V.

[V,D]= eigs(A), 返回A所有特征值(按大小次序)组成的对角矩阵D和特征向量组成的矩阵V,且满足D=V-1AV.

d=eig(A,B), 返回复数矩阵A+Bi所有特征值组成的向量d.

[V,D]= eig(A,B), 返回复数矩阵A+Bi所有特征值组成的矩阵D和特征向量组成的矩阵V.

例如:

>> clear

(>> format)(>> format rat)

>> A=[0 1 0 0;1 0 0 0;0 0 0 1;0 0 1 0];

>> d=eig(A)     %求矩阵A的特征值

d =

     1

    -1

     1

    -1

>> %特征值以列向量的形式输出,例如:

>> [V,D]=eig(A)      %求矩阵A的特征值与特征向量所组成的矩阵

V =

   -0.7071         0         0    0.7071

    0.7071         0         0    0.7071

         0   -0.7071    0.7071         0

         0    0.7071    0.7071         0

D =

    -1     0     0     0

     0    -1     0     0

     0     0     1     0

     0     0     0     1

>>%说明(1)矩阵D的主对角线上的元素为特征值,所以方阵A的特征值为-1(二重),1(二重).

>>%说明(2)特征值-1对应的特征向量为V中的第1、2列,即  (-0.7071 0.7071  0  0)T

 (0  0 -0.7071 0.7071)T   ,其中 为任意常数,

特征值1的特征向量为V中的第3、4列,即  (0  0  0.7071 0.7071)T

 ( 0.7071 0.7071  0  0)T   ,其中 为任意常数。

>> V=sym(V)      %以符号的形式输出矩阵V

V =

[ -sqrt(1/2),         0,          0,  sqrt(1/2)]

[ sqrt(1/2),          0,          0,  sqrt(1/2)]

[       0,   -sqrt(1/2),    sqrt(1/2),       0]

[       0,    sqrt(1/2),    sqrt(1/2),       0]

>> V^-1*A*V   %验证D=V^-1AV

 

ans =

[ -1,  0,  0,  0]

[  0, -1,  0,  0]

[  0,  0,  1,  0]

[  0,  0,  0,  1]

3.提高特征值的计算精度

函数  balance

格式  [T,B] = balance(A)   %求相似变换矩阵T和平衡矩阵B, 满足 

B = balance(A)      %求平衡矩阵B

4.实对称矩阵的对角化

实对称矩阵的对角化  [P,D]= eig(A)  D为对角化后的矩阵,P为正交阵.

在Matlab中,我们运用函数eig求出二次型矩阵A的特征值矩阵D和特征向量矩阵P,所求的矩阵D即为系数矩阵A的标准形,矩阵P即为二次型的变换矩阵.例如:

>> clear

>> A=[2 2 -2;2 5 -4;-2 -4 5];     %实对称矩阵A

 >> [P,D]=eig(A)      %矩阵A的对角化

P=

   -0.2981    0.8944    0.3333

   -0.5963   -0.4472    0.6667

   -0.7454         0   -0.6667

D =

    1.0000         0         0

         0    1.0000         0

         0         0   10.0000

4.若当标准形

若当标准型可用函数jordan( ) 来求.

J = jordan(A), 其中J为A的若当标准型。例如matlab代码:

>> clear

>> A=[2 1 0;-1 0 0;-1 1 2];    %矩阵A

>> jordan(A)      %矩阵A的若当标准形

运算结果为:

ans =

      2            0            0     

      0            1            1     

      0            0            1     

注意:Matlab中若当块是按上三角形定义的。

5.其他相关函数

矩阵的迹  trace(A)

将复对角矩阵转换为实对角矩阵  [V,D]=cdf2rdf(v,d)  在对角线上用2*2实数块代替共轭复数对.

矩阵元素求和函数 sum(A,dim),dim=1则按列求和,dim=2则按行求和

sum(sum(A,1),2)  返回矩阵A的所有元素之和.

矩阵元素求积函数 prod(A,dim),dim=1则按列求积,dim=2则按行求积。

prod(prod(A, 1),2)返回矩阵A的所有元素之积.

实验内容

6-1求矩阵 的特征值与特征向量

 

,并将其对角化. 

解一:

相应的matlab代码及运算结果如下:

>>clear

>> A= [1 2 2;2 1 2; 2 2 1];

>> d=eig(A)        %求全部特征值所组成的向量

d =

   -1.0000

   -1.0000

5.0000

>> [V,D]=eig(A)     %求特征值及特征向量所组成的矩阵

V =

    0.6015    0.5522    0.5774

    0.1775   -0.7970    0.5774

   -0.7789    0.2448    0.5774

D =

   -1.0000         0         0

         0   -1.0000         0

         0         0    5.0000

>> inv(V)*A*V

ans =

   -1.0000         0   -0.0000

         0   -1.0000   -0.0000

   -0.0000    0.0000    5.0000

>> %A可对角化,且对角矩阵为D

解二:

相应的matlab代码及运算结果如下:

>> clear

>> A= [1 2 2;2 1 2; 2 2 1];

>> p=poly(A)       %矩阵A的特征多项式的向量表示形式

p =

     1    -3    -9    -5

>> roots(f)        %矩阵A的特征多项式的根,即A的特征值

ans =

   5.0000         

  -1.0000 + 0.0000i

  -1.0000 – 0.0000i

解三:

相应的matlab代码及运算结果如下:

>> clear

>> A= [1 2 2;2 1 2; 2 2 1];

>> E=eye(3);

>> syms x

>> f=det(x*E-A)      %矩阵A的特征多项式

f =

 x^3-3*x^2-9*x-5

>> solve(f)        %矩阵A的特征多项式的根,即A的特征值

ans =

  5

 -1

 -1

>> %所以A的特征值为x1=5,x2=x3=-1.

>> %(1)当x1=5时,求解(x1*E—A)X=0,得基础解系

>> syms y

>> y=5;

>> B=y*E-A;

>> b1=sym(null(B))      %b1为(x1*E—A)X=0基础解系

b1 =

 sqrt(1/3)

 sqrt(1/3)

 sqrt(1/3)

>>%所以b1是属于特征值5的特征向量在基下的坐标

>> %(2)当x2=-1时,求解(x2*E—A)X=0,得基础解系

>> y=-1;

>> B=y*E-A;

>> b2=sym(null(B))      %b1为(x2*E—A)X=0基础解系

null(A)齐次线性方程组   A*Z=0的基础解系:

 

b2 =

[  sqrt(2/3),          0]

[ -sqrt(1/6),    -sqrt(1/2)]

[ -sqrt(1/6),     sqrt(1/2)]

>> b21=b2(:,1),b22=b2(:,2)      

b21 =

  sqrt(2/3)

 -sqrt(1/6)

 -sqrt(1/6)

 b22 =

        0

 -sqrt(1/2)

  sqrt(1/2)

%b21,b22是属于特征值-1的特征向量在基下的坐标

>> T=[b1,b2]        %所有特征向量在基下的坐标所组成的矩阵

T =

[  sqrt(1/3),  sqrt(2/3),          0]

[  sqrt(1/3), -sqrt(1/6), -sqrt(1/2)]

[  sqrt(1/3), -sqrt(1/6),  sqrt(1/2)]

>> D=T^-1*A*T     %将矩阵A对角化,得对角矩阵D

D =

[  5,  0,  0]

[  0, -1,  0]

[  0,  0, -1]

6-2将矩阵 对角化,并将复对角矩阵转换为实对角矩阵

相应的matlab代码及运算结果如下:

>> clear

>> A=[0 2 1;-2 0 3;-1 -3 0];

>> [v,d]=eig(A)      %求特征值及特征向量所组成的矩阵

v =

  -0.8018            -0.1572 + 0.3922i  -0.1572 – 0.3922i

   0.2673            -0.6814            -0.6814         

  -0.5345            -0.1048 – 0.5883i  -0.1048 + 0.5883i

d =

        0                  0                  0         

        0                  0 + 3.7417i        0         

        0                  0                  0 – 3.7417i

>> [V,D]=cdf2rdf(v,d)       %复对角矩阵转换为实对角矩阵

V =

   -0.8018   -0.1572    0.3922

    0.2673   -0.6814         0

   -0.5345   -0.1048   -0.5883

D =

         0         0         0

         0         0    3.7417

         0   -3.7417         0

>>%说明:在对角线上用2×2实数块代替共轭复数对,由D可知A的特征值为1,

3.7417i和-3.7417i.

>> V1=V(:,1),V2=V(:,2),V3=V(:,3);     %由V可知A的两个共轭特征向量为V2+ V3*i,即:

>> V2+V3*i

ans =

  -0.1572 + 0.3922i

  -0.6814         

  -0.1048 – 0.5883i

>> V2-V3*i

ans =

  -0.1572 – 0.3922i

  -0.6814         

  -0.1048 + 0.5883i

6-3求例6-1中矩阵A的迹,并验证 .

相应的matlab代码及运算结果如下:

>>clear

>> A= [1 2 2;2 1 2; 2 2 1];

>> a=trace(A)      %求矩阵A的迹

a =

     3

>> d=eig(A)         %求矩阵A的特征值

d =

   -1.0000

   -1.0000

5.0000

>> b=sum(d,1)      %矩阵d元素求和

b =

     3

>>%说明:A的所有特征值之和为A的迹

>> e=det(A)

e =

     5

>> f=prod(d,1)       %矩阵d元素求积,即特征值求积

f =

     5

>>%说明:A的行列式值等于所有特征值乘积.

>>%(1)函数sum(A,dim)是矩阵元素求和函数,dim=1则按列求和,dim=2则按行求和。

>>%(2)函数prod(A,dim)是矩阵元素求积函数,dim=1则按列求积,dim=2则按行求积。

6-4求矩阵 的若当标准型。

 相应的matlab代码及运算结果如下:

>> clear

>> A=[-1 -2 6;-1 0 3;-1 -1 4]

A =

    -1    -2     6

    -1     0     3

-1    -1     4

>> J=jordan(A)        %矩阵A的若当标准形

J =

     1     1     0

     0     1     0

     0     0     1

>>%说明:Matlab中若当块是按上三角形定义的.

目录
相关文章
|
1月前
|
运维 算法
基于Lipschitz李式指数的随机信号特征识别和故障检测matlab仿真
本程序基于Lipschitz李式指数进行随机信号特征识别和故障检测。使用MATLAB2013B版本运行,核心功能包括计算Lipschitz指数、绘制指数曲线、检测故障信号并标记异常区域。Lipschitz指数能够反映信号的局部动态行为,适用于机械振动分析等领域的故障诊断。
|
2月前
|
Serverless
MATLAB中的矩阵与向量运算
【10月更文挑战第2天】本文全面介绍了MATLAB中的矩阵与向量运算,包括基本操作、加减乘除、转置、逆矩阵、行列式及各种矩阵分解方法。通过丰富的代码示例,展示了如何利用矩阵运算解决线性方程组、最小二乘法拟合、动态系统模拟和电路分析等问题。掌握这些运算不仅提升编程效率,还能在工程计算和科学研究中发挥重要作用。
91 1
|
3月前
|
机器学习/深度学习 算法
基于心电信号时空特征的QRS波检测算法matlab仿真
本课题旨在通过提取ECG信号的时空特征并应用QRS波检测算法识别心电信号中的峰值。使用MATLAB 2022a版本实现系统仿真,涵盖信号预处理、特征提取、特征选择、阈值设定及QRS波检测等关键步骤,以提高心脏疾病诊断准确性。预处理阶段采用滤波技术去除噪声,检测算法则结合了一阶导数和二阶导数计算确定QRS波峰值。
|
6月前
|
机器学习/深度学习 算法
基于鲸鱼优化的knn分类特征选择算法matlab仿真
**基于WOA的KNN特征选择算法摘要** 该研究提出了一种融合鲸鱼优化算法(WOA)与K近邻(KNN)分类器的特征选择方法,旨在提升KNN的分类精度。在MATLAB2022a中实现,WOA负责优化特征子集,通过模拟鲸鱼捕食行为的螺旋式和包围策略搜索最佳特征。KNN则用于评估特征子集的性能。算法流程包括WOA参数初始化、特征二进制编码、适应度函数定义(以分类准确率为基准)、WOA迭代搜索及最优解输出。该方法有效地结合了启发式搜索与机器学习,优化特征选择,提高分类性能。
|
6月前
|
算法
基于蝗虫优化的KNN分类特征选择算法的matlab仿真
摘要: - 功能:使用蝗虫优化算法增强KNN分类器的特征选择,提高分类准确性 - 软件版本:MATLAB2022a - 核心算法:通过GOA选择KNN的最优特征以改善性能 - 算法原理: - KNN基于最近邻原则进行分类 - 特征选择能去除冗余,提高效率 - GOA模仿蝗虫行为寻找最佳特征子集,以最大化KNN的验证集准确率 - 运行流程:初始化、评估、更新,直到达到停止标准,输出最佳特征组合
|
7月前
Matlab用向量误差修正VECM模型蒙特卡洛Monte Carlo预测债券利率时间序列和MMSE 预测
Matlab用向量误差修正VECM模型蒙特卡洛Monte Carlo预测债券利率时间序列和MMSE 预测
|
7月前
|
数据采集 算法 数据可视化
MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
|
7月前
|
存储 人工智能 机器人
【Matlab】Matlab 汉/英语(A/a)声学特征比较与基音频率分析(源码+音频文件)【独一无二】
【Matlab】Matlab 汉/英语(A/a)声学特征比较与基音频率分析(源码+音频文件)【独一无二】
|
7月前
|
存储 vr&ar
Matlab创建向量自回归(VAR)模型分析消费者价格指数 (CPI) 和失业率时间序列
Matlab创建向量自回归(VAR)模型分析消费者价格指数 (CPI) 和失业率时间序列
|
7月前
matlab脉冲响应图的时域特征
matlab脉冲响应图的时域特征