目录
一. 一般矩阵的特征值与特征向量
例题1
二. 广义特征向量问题
例题2
三.稀疏矩阵的最大特征值
例题3
一. 一般矩阵的特征值与特征向量
数学理论部分,推荐阅读:
利用矩阵特征值解决微分方程【1】-CSDN博客
矩阵特征值解决微分方程问题【2】-CSDN博客
A为n阶矩阵,若数和向量x满足,那么数称为A的特征值,x称为A对应于特征值的特征向量。如果把式子改写成,那么就叫做A的特征多项式。
在MATLAB中,求解特征值和特征向量,格式如下:
[V,D]=eig(A)
备注:该函数也可以只求一个量
例题1
利用两种方法求矩阵A的特征值与特征向量,并验证其对应的范数误差。
解:
MATLAB代码如下:
clc;clear;
A=[16 2 3 13;5 11 10 8;9 7 6 12;4 14 15 1];
%直接求解
[v,d]=eig(A)
norm1=norm(A*v-v*d)
%解析解
[v,d]=eig(sym(A))
norm2=norm(double(A*v(:,2)-34*v(:,2))) %double函数转换为双精度类型
运行结果:
v =
-0.5000 -0.8236 0.3764 -0.2236
-0.5000 0.4236 0.0236 -0.6708
-0.5000 0.0236 0.4236 0.6708
-0.5000 0.3764 -0.8236 0.2236
d =
34.0000 0 0 0
0 8.9443 0 0
0 0 -8.9443 0
0 0 0 -0.0000
norm1 =1.2284e-14
v =
[ -1, 1, (12*5^(1/2))/31 - 41/31, - (12*5^(1/2))/31 - 41/31]
[ -3, 1, 17/31 - (8*5^(1/2))/31, (8*5^(1/2))/31 + 17/31]
[ 3, 1, - (4*5^(1/2))/31 - 7/31, (4*5^(1/2))/31 - 7/31]
[ 1, 1, 1, 1]
d =
[ 0, 0, 0, 0]
[ 0, 34, 0, 0]
[ 0, 0, -4*5^(1/2), 0]
[ 0, 0, 0, 4*5^(1/2)]
norm2 =0
二. 广义特征向量问题
广义特征向量的表达式,如下:
如果上式子中的B=I,那么就是普通矩阵特征值问题。求解广义特征值与特征向量的MATLAB格式如下:
[V,D]=eig(A,B)
很遗憾的是,符号运算工具箱中的eig()函数不支持广义特征值的相关运算。
例题2
求A,B的广义特征值与特征向量矩阵。
,
解:
MATLAB代码如下:
clc;clear;
A=[5 7 6 5;7 10 8 7;6 8 10 9;5 7 9 10];
B=[2 6 -1 -2;5 -1 2 3;-3 -4 1 10;5 -2 -3 8];
[V,D]=eig(A,B)
norm(A*V-B*V*D)
运行结果:
V =
0.3697 + 0.0000i -0.3741 + 0.6259i -0.3741 - 0.6259i 1.0000 + 0.0000i
0.9948 + 0.0000i -0.0674 - 0.2531i -0.0674 + 0.2531i -0.6090 + 0.0000i
0.7979 + 0.0000i 0.9239 + 0.0264i 0.9239 - 0.0264i -0.2316 + 0.0000i
1.0000 + 0.0000i -0.6599 - 0.3263i -0.6599 + 0.3263i 0.1319 + 0.0000i
D =
4.7564 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0471 + 0.1750i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0471 - 0.1750i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -0.0037 + 0.0000i
ans =
3.3761e-14
三.稀疏矩阵的最大特征值
计算稀疏矩阵k个模最大特征值,MATLAB格式如下:
d=eigs(A,k)
同时计算最大特征值与特征向量,MATLAB格式如下:
[V,D]=eigs()
例题3
利用delsq和numgrid函数生成稀疏矩阵,求该稀疏矩阵的六个模最大特征值,并分析该方法的误差。
解:
MATLAB代码如下:
clc;clear;
A=delsq(numgrid('C',15));
%生成稀疏矩阵,这个稀疏矩阵有点复杂,感兴趣的小伙伴可自行查找下 delsq和numgrid函数
[v,d]=eigs(A,6) %6代表6个模
norm=norm(A*v-v*d)
运行结果:
d =
7.8666 0 0 0 0 0
0 7.7324 0 0 0 0
0 0 7.6531 0 0 0
0 0 0 7.5213 0 0
0 0 0 0 7.4480 0
0 0 0 0 0 7.3517
norm =
1.4182e-14
特征向量的结果较长,此处仅显示一部分。文章来源:https://www.toymoban.com/news/detail-408337.html
文章来源地址https://www.toymoban.com/news/detail-408337.html
到了这里,关于基于MATLAB的特征值与特征向量(附完整代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!