Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
물리:열린_양자계_겨울학교_프로젝트 [2023/01/29 20:34] – [모형] jiwon | 물리:열린_양자계_겨울학교_프로젝트 [2023/09/05 15:46] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 55: | Line 55: | ||
=====수치해===== | =====수치해===== | ||
- | 이론적으로는 위 행렬의 고윳값과 고유벡터를 구하면 계의 모든 특성을 알아낼 수 있지만, 식의 형태가 매우 복잡해지므로 여기서는 수치해를 구하는 것에 집중하도록 한다. 적분 방법으로는 4차 룽게-쿠타 방법을 이용했고 | + | 이론적으로는 위 행렬의 고윳값과 고유벡터를 구하면 계의 모든 특성을 알아낼 수 있지만, 식의 형태가 매우 복잡해지므로 여기서는 수치해를 구하는 것에 집중하도록 한다. 적분 방법으로는 4차 룽게-쿠타 방법을 이용했고 |
+ | $$\rho(0) = \frac{1-p}4I + p\vert\psi^+\rangle\langle\psi^+\vert$$ | ||
+ | 여기서 $\vert\psi^+\rangle = 1/ | ||
+ | 그리고 물리량으로는 얽힘 엔트로피 | ||
+ | $$S_E(t) = \text{Tr}_A \rho_A(t)\log\rho_A(t)$$ | ||
+ | 를 선택했다. | ||
+ | |||
+ | =====결과===== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | using LinearAlgebra | ||
+ | using Printf | ||
+ | |||
+ | if (length(ARGS)< | ||
+ | println(" | ||
+ | exit() | ||
+ | end | ||
+ | |||
+ | J = parse(Float32, | ||
+ | gamma = parse(Float32, | ||
+ | p=parse(Float32, | ||
+ | tf = parse(Float32, | ||
+ | dt = parse(Float32, | ||
+ | omega = 1 | ||
+ | |||
+ | sx = [0 1; 1 0] | ||
+ | sz = [1 0; 0 -1] | ||
+ | sm = [0 0; 1 0] | ||
+ | id2 = [1 0; 0 1] | ||
+ | id4 = kron(id2, | ||
+ | |||
+ | function Hf(omega) | ||
+ | hf = omega*(kron(sz, | ||
+ | return -im*(kron(hf, | ||
+ | end | ||
+ | |||
+ | function Hint(J) | ||
+ | hint = J*kron(sx, | ||
+ | return -im*(kron(hint, | ||
+ | end | ||
+ | |||
+ | function Decoherence(gamma) | ||
+ | L0 = kron(sm, | ||
+ | L1 = kron(id2, | ||
+ | |||
+ | decoherence0 = kron(L0, | ||
+ | decoherence1 = kron(L1, | ||
+ | return gamma*(decoherence0+decoherence1) | ||
+ | end | ||
+ | |||
+ | function EntanglementEntropy(r) | ||
+ | r = reshape(r, | ||
+ | c = real((r[1, | ||
+ | l1 = 0.5*(1.0+sqrt(1.0-4.0*c)) | ||
+ | l2 = 0.5*(1.0-sqrt(1.0-4.0*c)) | ||
+ | return -l1*log2(l1)-l2*log2(l2) | ||
+ | end | ||
+ | |||
+ | |||
+ | M = Hf(omega)+Hint(J)+Decoherence(gamma) | ||
+ | dmatrix = [(1-p)/4; 0; (1-p)/4; 0; 0; (1+p)/4; p/2; (1-p)/4; (1-p)/4; p/2; (1+p)/4; 0; 0; (1-p)/4; 0; (1-p)/4] | ||
+ | |||
+ | t=0.0 | ||
+ | while(t< | ||
+ | global dmatrix, | ||
+ | k1 = dt*M*dmatrix | ||
+ | k2 = dt*M*(dmatrix+k1/ | ||
+ | k3 = dt*M*(dmatrix+k2/ | ||
+ | k4 = dt*M*(dmatrix+k3) | ||
+ | dmatrix = dmatrix+(k1+2.0*k2+2.0*k3+k4)/ | ||
+ | @printf "%.4f %.4f\n" | ||
+ | t+=dt | ||
+ | end | ||
+ | </ | ||