我正在计算包含符号变量“ W”的8x8矩阵的特征值。将8个特征值绘制为W的函数会在该图中返回一个奇怪的结果,看起来就像有人骑着他的自行车飞过我的图表。
对于第二个矩阵,我只是将一些非对角元素设置为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的图相似,但是某种程度上它不能正常工作。我将感谢一些技巧和窍门来解决此问题。
答案 0 :(得分:0)
第二个图看起来像是因为B的特征值是虚的。使用plot()时,默认情况下会绘制复数的实部,但显然fplot()不会。您可以使用fplot(real(X), [-0.002 0.002])
来仅绘制特征值的实部(假设这就是您想要的)。