Energy eigenvalues plot of a Hamiltonian(Weyl)
Ältere Kommentare anzeigen
Question: I have a Hamiltonian which I have to construct in a meshgrid and then plot the energy eigenvalues to get a surf plot. I am not able to get the desired plot.
caution: Slightly bit on the physics side of things.
What I should get:

Hamiltonian:

I have constructed the Hamiltonian correctly(afaik) and am solving for each triplets if x, y and z and later plot it. I can't back the similar plot. Any help with this regard would be so helpful. Thank You.
My Attempt:
%Parameters
m = 0.5;
b = 1;
bp = 0;
% x-y-z values
x = -pi : pi/16 : pi;
y = -pi : pi/16 : pi;
z = -pi : pi/16 : pi;
M = length(x);
[px,py,pz] = meshgrid(x,y,z);
%Pauli Matrices
sigma_x = [0,1;1,0];
sigma_y = [0,-1j;1j,0];
sigma_z = [1,0;0,-1];
%identity matrix
I = [1,0;0,1];
a11 = m .* I + b .* sigma_z ;
a22 = -m .*I + b .*sigma_z ;
%Pre-allocation
E = nan(M,M,M,4);
%hamiltonian
for i = 1:M
for j = 1:M
for k = 1:M
sigma_dot_p = sigma_x .* px(i,j,k) + sigma_y .* py(i,j,k) + sigma_z .* pz(i,j,k);
H = [a11,sigma_dot_p; ...
sigma_dot_p,a22];
E(i,j,k,:) = eig(H);
end
end
end
figure;
surf(y,z,E(:,:,1,1));
hold on
surf(y,z,E(:,:,1,2));
hold on
surf(y,z,E(:,:,1,3));
hold on
surf(y,z,E(:,:,1,4));
xlabel('y')
ylabel('z')
zlabel('Energy')
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Title finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
