如何修复第一个矩阵(matlab)的符号特征值图?

How to fix the plot of the symbolic eigenvalues of the 1st matrix (matlab)?

我正在计算一个包含符号变量 "W" 的 8x8 矩阵的特征值。将 8 个特征值绘制为 W 的函数 returns 图中的一个奇怪结果看起来就像有人骑着自行车从我的图表上碾过。

对于第二个矩阵,我只是将一些非对角线元素设置为 0,一切正常。但是我不知道第一个问题是什么。

syms W;

w0=1/780;
wl=1/1064;
h=1; % for now this seems unnecessary, but I want to change this value later on

% This is the 1st matrix which causes some strange plotting results
A=h*[w0+3*wl 2*W 0 0 0 sqrt(3)*W 0 0;
    2*W 4*wl 0 0 0 0 0 0;
    0 0 2*wl+w0 sqrt(3)*W 0 0 0 sqrt(2)*W;
    0 0 sqrt(3)*W 3*wl 0 0 0 0;
    0 0 0 0 wl+w0 sqrt(2)*W 0 0;
    sqrt(3)*W 0 0 0 sqrt(2)*W 2*wl 0 0;
    0 0 0 0 0 0 w0 W;
    0 0 sqrt(2)*W 0 0 0 W wl];

% This is the 2nd matrix for which everything is working fine
B=h*[w0+3*wl 2*W 0 0 0 0 0 0;
    2*W 4*wl 0 0 0 0 0 0;
    0 0 2*wl+w0 sqrt(3)*W 0 0 0 0;
    0 0 sqrt(3)*W 3*wl 0 0 0 0;
    0 0 0 0 wl+w0 sqrt(2)*W 0 0;
    0 0 0 0 sqrt(2)*W 2*wl 0 0;
    0 0 0 0 0 0 w0 W;
    0 0 0 0 0 0 W wl];

X = eig(A);
X2 = eig(B);
eva22 = X2(1);
eva1 = X(1);

figure(1);

fplot(X2,[-0.002 0.002]);
hold on;
fplot(X,[-0.002 0.002]);
hold off;
xlabel('Rabi frequency [THz]','FontSize',11);
ylabel('dressed states','FontSize',11);
grid on;
box on;

我希望矩阵 A 的绘图与矩阵 B 的绘图相似,但不知何故它无法正常工作。我会很感激一些提示和技巧来解决这个问题。

第二个图看起来像这样,因为 B 的特征值是虚数。使用 plot() 时,默认情况下它会绘制复数的实部,但显然 fplot() 不会。您可以 fplot(real(X), [-0.002 0.002]) 而不是仅绘制特征值的实部(假设这就是您想要的)。