how to plot a defined function ?

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 Kommentar

Adam
Adam am 22 Okt. 2019
If it gives you errors then post the error messages here to make it easier for people to help.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

reza hamzeh
reza hamzeh am 22 Okt. 2019

0 Stimmen

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 Kommentar

Christine Tobler
Christine Tobler am 28 Okt. 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Line Plots finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 22 Okt. 2019

Kommentiert:

am 28 Okt. 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by