我有一个符号6x6矩阵,我必须找到特征值并绘制它们。我不会绘图,也不知道该怎么办。
syms t H t1 t2 E1 E2 E3 E4 E5 E6 HH H1 v d H2 k a E;
t1=1;
t2=1.5*t1;
a=3;
H=[0 t2 0 0 0 t1
t2 0 t1 0 0 0
0 t1 0 t2 0 0
0 0 t2 0 t1 0
0 0 0 t1 0 t2
t1 0 0 0 t2 0];
H1=[0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
t1*exp(1i*k*a) 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0];
H2=[0 0 0 t1*exp(1i*k*a) 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0];
HH=H+H1+H2;
E=eig (HH)
我不能运行[v D] = eig (HH)
我不知道如何画出6个不同的E(K)函数
很抱歉我的英语很差,对matlab的知识也很贫乏,谢谢你的帮助!
我运行了你的代码,并且能够做
[v,D]=eig(HH)
在D中找到的对角线值将是你的特征值。由于您没有为k指定确切的值,因此输出太长而无法在这里发布,但这里有一个仅使用第一个矩阵H的示例:
syms t H t1 t2 E1 E2 E3 E4 E5 E6 HH H1 v d H2 k a E;
t1=1;
t2=1.5*t1;
a=3;
H=[0 t2 0 0 0 t1
t2 0 t1 0 0 0
0 t1 0 t2 0 0
0 0 t2 0 t1 0
0 0 0 t1 0 t2
t1 0 0 0 t2 0];
HH=H+H+H;
[v,D]=eig(HH)
输出:v =
-0.4082 -0.2485 -0.5211 0.1548 -0.5562 0.4082
0.4082 0.5290 0.2312 -0.2471 -0.5218 0.4082
-0.4082 -0.3271 0.4758 -0.5591 0.1441 0.4082
0.4082 -0.0642 -0.5738 -0.3283 0.4749 0.4082
-0.4082 0.5756 0.0453 0.4043 0.4121 0.4082
0.4082 -0.4648 0.3425 0.5754 0.0469 0.4082
D =
-7.5000 0 0 0 0 0
0 -3.9686 0 0 0 0
0 0 -3.9686 0 0 0
0 0 0 3.9686 0 0
0 0 0 0 3.9686 0
0 0 0 0 0 7.5000
如果你试图为不同的k值绘制特征值,我的建议是做一个循环:为每个k值计算HH的特征值,并将这些值存储到数组中。从这里开始,情节应该是相当直接的。
MATLAB绘图文档