how to plot a defined function ?

1 view (last 30 days)
reza hamzeh
reza hamzeh on 22 Oct 2019
Commented: Christine Tobler on 28 Oct 2019
hi. i coded 2 functions. now i want to plot N(t) versus T. but it gives me errors. plz help me to do that.
clear;
T=0:0.1:14;
plot(T,N(t))
function pa = partialtranspos(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
  1 Comment
Adam
Adam on 22 Oct 2019
If it gives you errors then post the error messages here to make it easier for people to help.

Sign in to comment.

Answers (1)

reza hamzeh
reza hamzeh on 22 Oct 2019
these are the errors. plz help me.
Error using /
Matrix dimensions must agree.
Error in fortest>partialtranspose (line 13)
ro = expm(-H/T)/trace(expm(-H/T));
Error in fortest>N (line 20)
ne=0.5*(sum(abs(eig(partialtranspose(T))))-1);
Error in fortest (line 4)
plot(T,N(T))
  1 Comment
Christine Tobler
Christine Tobler on 28 Oct 2019
H is a square matrix, while T is a row vector. The operation H / T is not supported, because this is trying to compute X which solves the linear system X*T = H, which is not possible when H is of size 4-by-4 and T is of size 1-by-141.

Sign in to comment.

Categories

Find more on Graphics 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!