How can I perform partial trace for a pure state with four subsystems?
25 次查看(过去 30 天)
显示 更早的评论
Hello everyone,
I am working a quantum system of Hilbert space 2X2XNXN and investigating the dynamical evolution of the entanglement between subsystems (1,3) and (2,4). At every time step, I have a pure state \ket{psi} of dimension 2X2XNXN, and I want to find a reduced density matrix after tracing out subsystems 2nd and 4th, i.e., the reduced density matrix should be 2NX2N dimensional.
I looked at some functions which are available online for doing these (one of the very famous one is from QETLAB) but they are very slow and I need to call them after each time step.
Given that I have pure state at all time steps, is there an efficient way to do this partial trace without using those complicated functions?
0 个评论
回答(1 个)
Matt J
2025-8-18,10:58
Does this do what you want?
% reshape |psi> into tensor (s1,s2,s3,s4)
psi_tensor = reshape(psi,[2,2,N,N]);
% reorder to group (s1,s3) vs (s2,s4), then flatten
psi_mat = reshape(permute(psi_tensor,[1,3,2,4]), [2*N, 2*N]);
% reduced density matrix rho_13 = psi_mat * psi_mat'
rho_13 = psi_mat * psi_mat';
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Operating on Diagonal Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!