如何求出符号6*6矩阵的特征值并作图



我有一个符号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绘图文档

最新更新