plot a defined function
12 views (last 30 days)
Show older comments
hi people. i wrote two functions. they work correctly. now i want to plot the function N(T) versus T in range 0.1 to 14 . but i dont know how to do that.
maybe someone help me plz ?
clear;
function pa = partialtranspose(T)
J=1;B=4;d=4;
s0=[1 0;0 1];
sx=[0 1;1 0];
sy=[0 -1i;1i 0];
sz=[1 0;0 -1];
H = 2*J*kron(sz,sz)+B*(kron(sz,s0)+kron(s0,sz))+d*(kron(sx,sy)-kron(sy,sx));
ro = expm(-H/T)/trace(expm(-H/T));
pa = [ro(1,1) ro(2,1) ro(1,3) ro(2,3);ro(1,2) ro(2,2) ro(1,4) ro(2,4);
ro(3,1) ro(4,1) ro(3,3) ro(4,3);ro(3,2) ro(4,2) ro(3,4) ro(4,4)];
end
function ne = N(T)
ne=0.5*(sum(abs(eig(partialtranspose(T))))-1);
end
0 Comments
Accepted Answer
Star Strider
on 22 Oct 2019
You can define ‘N’ as an anonymous function.
Try this:
N = @(T) 0.5*(sum(abs(eig(partialtranspose(T))))-1);
Tv = linspace(0.1, 14, 10); % Define Rnage Of ‘T’
for k = 1:numel(Tv)
Nv(k) = N(Tv(k));
end
figure
plot(Tv, Nv)
grid
I used the loop because ‘partialtranspose’ is not vectorised.
0 Comments
More Answers (1)
M
on 22 Oct 2019
plot the function N(T) versus T in range 0.1 to 14
T is known ? T =[0.1 : 14 ] ?
And you want to plot ne(T) ?
In this case you could simply write
plot(T,ne)
0 Comments
See Also
Categories
Find more on Quantum Mechanics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!