Soubor:Quantum measurement animation.gif
Quantum_measurement_animation.gif (350 × 350 pixelů, velikost souboru: 627 KB, MIME typ: image/gif, ve smyčce, 101 snímků, 20 s)
Tento soubor pochází z Wikimedia Commons. Níže jsou zobrazeny informace, které obsahuje jeho tamější stránka s popisem souboru. |
Popis
PopisQuantum measurement animation.gif |
English: A schematic animation that depicts a quantum measurement of spin-1/2 particles, such as electrons. Each particle passes through a setup of two magnets that deflect the particle's trajectory based on the value of its spin. If the spin points to the left, the particle is detected by the left detector. Similarly, if the spin is oriented to the right, the particle flies to the right detector. Nevertheless, if the spin points upward, a genuinely quantum behavior occurs. The spin up is a quantum superposition of a spin oriented to the left and a spin oriented to the right. As a result, the particle is deflected in both directions after passing the magnets. Till the very moment of registering the particle by a detector it cannot be determined, which way the particle takes. In the animation, the particle at the end impinges on the left detector, in which moment the reduction of the particle's wave function takes place. The particle could have ended up in the right detector with equal probability though. Čeština: Schematická animace kvantového měření částic se spinem 1/2, jakými jsou třeba elektrony. Částice vlétávají mezi dva magnety, které vychýlí dráhu každé částice v závislosti na hodnotě jejího spinu. Pokud spin míří doleva, je částice detekována levým detektorem. Podobně, pokud je spin orientovaný doprava, dolétne částice do pravého detektoru. Pokud však spin míří vzhůru, dochází k čistě kvantovému chování. Spin vzhůru je kvantovou superpozicí spinu doleva a spinu doprava. Po průletu magnetem je tak částice vychýlena oběma směry a až těsně do okamžiku zaregistrování částice detektorem není jisté, kudy částice letí. V animaci nakonec dopadne částice do levého detektoru, kdy dojde k redukci vlnové funkce částice. Se stejnou pravděpodobností ale mohla tato částice skončit v detektoru pravém. |
Datum | |
Zdroj | Vlastní dílo |
Autor | JozumBjada |
Licence
Já, držitel autorských práv k tomuto dílu, ho tímto zveřejňuji za podmínek následující licence:
Tento soubor podléhá licenci Creative Commons Uveďte autora-Zachovejte licenci 4.0 International
- Dílo smíte:
- šířit – kopírovat, distribuovat a sdělovat veřejnosti
- upravovat – pozměňovat, doplňovat, využívat celé nebo částečně v jiných dílech
- Za těchto podmínek:
- uveďte autora – Máte povinnost uvést autorství, poskytnout odkaz na licenci a uvést, pokud jste provedli změny. Toho můžete docílit jakýmkoli rozumným způsobem, avšak ne způsobem naznačujícím, že by poskytovatel licence schvaloval nebo podporoval vás nebo vaše užití díla.
- zachovejte licenci – Pokud tento materiál jakkoliv upravíte, přepracujete nebo použijete ve svém díle, musíte své příspěvky šířit pod stejnou nebo slučitelnou licencí jako originál.
Source code
This animation was created using Wolfram language 12.0.0 for Microsoft Windows (64-bit) (April 6, 2019). The source code follows.
(* ::Package:: *)
(* ::Chapter:: *)
(*Quantum measurement*)
(* ::Text:: *)
(*Version: 12.0.0 for Microsoft Windows (64-bit) (April 6, 2019)*)
(* ::Section::Closed:: *)
(*Colors*)
(* ::Input::Initialization:: *)
gray=GrayLevel[0.75];
lightBlue=Lighter[Blue,.5];
(* ::Section::Closed:: *)
(*Particle*)
(* ::Input::Initialization:: *)
stretch[pt1_,pt2_,rad_:1]:=Module[{len=Norm[pt2-pt1],tube,w0,coef},
If[len==0,Return[{}]];
{w0,coef}={rad/2,2 rad/len^2};
tube=RevolutionPlot3D[w0+coef x^2,{x,-len/2,len/2},RevolutionAxis->{1, 0, 0},Mesh->None];
tube=First@Cases[InputForm[tube],_GraphicsComplex,Infinity,1];
tube=tube/.{(Lighting->_):>Nothing,_RGBColor->Nothing,_Specularity->Nothing};
tube=Translate[tube,{len/2,0,0}];
tube=Rotate[tube,{{1,0,0},pt2-pt1}];
tube=Translate[tube,pt1];
tube
]
(* ::Input::Initialization:: *)
trajectory[r_,pt1_,pt2_,pt3_]:=Piecewise[{{pt1+r/(1/3) ((pt2-pt1)/2),0<=r<1/3},{BSplineFunction[{(pt2+pt1)/2,pt2,(pt2+pt3)/2}][Rescale[r,{1/3,2/3},{0,1}]],1/3<=r<2/3},{(pt2+pt3)/2+(r-2/3)/(1/3) ((pt3-pt2)/2),2/3<=r<=1}}]
trajectoryUp[r_]:=trajectory[r,{0,0,0},{8,0,0},{16,0,8}]
trajectoryDown[r_]:=trajectory[r,{0,0,0},{8,0,0},{16,0,-8}]
(* ::Input::Initialization:: *)
subsceneParticle[r_,pathup_,sup_]:=Which[
r>.95,{},
r>.85,{lightBlue,Ball[If[pathup,trajectoryUp,trajectoryDown][r],.9]},
sup,{
{lightBlue,Opacity[.5],Ball[trajectoryUp[r],.9],Ball[trajectoryDown[r],.9]},
{Blue,Opacity[.5],stretch[trajectoryUp[r],trajectoryDown[r],.9]}
},
True,{lightBlue,Ball[If[pathup,trajectoryUp,trajectoryDown][r],.9]}
]
(* ::Section::Closed:: *)
(*Detectors*)
(* ::Input::Initialization:: *)
detector=RevolutionPlot3D[.2x^2 Exp[x],{x,0,1.65},BoxRatios->1,Mesh->False,PlotStyle->Thickness[.2]];
detector=First@Cases[InputForm[detector],_GraphicsComplex,Infinity,1];
detector=detector/.{(Lighting->_):>Nothing,_RGBColor->Nothing,_Specularity->Nothing};
(* ::Input::Initialization:: *)
Module[{col1=gray,col2=gray,ang=35,dist=17,vert=8},
detector1=Translate[Rotate[detector,(180+90-ang)Degree,{0,1,0}],{dist,0,vert}];
detector2=Translate[Rotate[detector,(-90+ang)Degree,{0,1,0}],{{dist,0,-vert}}];
]
(* ::Input::Initialization:: *)
subsceneDetectors[r_,partup_:True]:=Module[{col1=gray,col2=gray},
If[r>.9,If[partup,col1=Orange,col2=Orange]];
{{col1,detector1},{col2,detector2}}
]
(* ::Section::Closed:: *)
(*Magnet*)
(* ::Input::Initialization:: *)
magnets=Module[{vertsize=5,mag,dist=5,pts},
pts={{0,0},{1,0},{1.5,.5},{1,1},{0,1}};
pts=Join[{##,0}&@@@pts,{##,vertsize}&@@@pts];
mag={EdgeForm[None],Polyhedron[pts,{{1,2,3,4,5},{6,7,8,9,10},{1,2,7,6},{1,6,10,5},{2,3,8,7},{3,4,9,8},{4,5,10,9}}]};
mag=Scale[Translate[Rotate[mag,\[Pi]/2,{0,0,1}],{.5,-0.75,-vertsize/2}],1.5];
Rotate[{Translate[mag,{dist,-4,0}],Translate[Rotate[mag,\[Pi],{0,0,1}],{dist,4,0}]},\[Pi]/2,{1,0,0}]
];
(* ::Input::Initialization:: *)
subsceneMagnets[r_]:={EdgeForm[None],If[.2<=r<=.4,Red,gray],magnets}
(* ::Section::Closed:: *)
(*Labels*)
(* ::Input::Initialization:: *)
arrow=Graphics3D[{Blue,Arrowheads[0.5],Arrow@Tube[{{0,0,-1},{0,0,1}},0.12]},Boxed->False,ViewPoint->{5,0,0},PlotRange->{0.5{-1,1},0.5{-1,1},1.1{-1,1}}];
arrowOriented[x_,dir_]:=Inset[arrow,ImageScaled[{x,0.15}],ImageScaled[{0.5,0.5}],.2,dir]
(* ::Input::Initialization:: *)
labelsUpDown[r_,c1_,c2_,up_]:=Module[{fontSize=30},
Which[
r<c1,arrowOriented[.5,{0,If[up,1,-1]}],
r<c2,arrowOriented[Rescale[r,{c1,c2},{0.5,.3}],{0,If[up,1,-1]}],
True,{
arrowOriented[.3,{0,If[up,1,-1]}],
Text[Style["\[Implies]",fontSize],ImageScaled[{0.5,.15}]],
Text[Style[Subscript["D",If[up,"\[LeftArrow]","\[Rule]"]],Orange,fontSize],ImageScaled[{0.67,.15}],{0,0}]
}
]
]
(* ::Input::Initialization:: *)
labelsSup[r_,c1_,c2_,c3_,c4_]:=Module[{fontSize=30},
Which[
r<c1,arrowOriented[.5,{1,0}],
r<c2,arrowOriented[Rescale[r,{c1,c2},{0.5,.22}],{1,0}],
r<c3,{
arrowOriented[.22,{1,0}],
Text[Style["=",fontSize],ImageScaled[{0.32,.15}]],
arrowOriented[.45,{0,1}],
Text[Style["+",fontSize],ImageScaled[{0.6,.15}]],
arrowOriented[.75,{0,-1}]
},
r<c4,{
arrowOriented[Rescale[r,{c3,c4},{0.45,.2}],{0,1}],
Text[Style["+",fontSize],ImageScaled[{Rescale[r,{c3,c4},{0.6,.35}],.15}]],
arrowOriented[Rescale[r,{c3,c4},{0.75,.5}],{0,-1}]
},
True,{
arrowOriented[.2,{0,1}],
Text[Style["+",fontSize],ImageScaled[{.35,.15}]],
arrowOriented[.5,{0,-1}],
Text[Style["\[Implies]",fontSize],ImageScaled[{.66,.15}]],
Text[Style[Subscript["D","?"],Orange,fontSize],ImageScaled[{0.799,.15}],{0,0}]
}
]
]
(* ::Section::Closed:: *)
(*Animation*)
(* ::Input::Initialization:: *)
animation[r_]:=Module[{state,subr,rup,rdown,epilog,c1=0.3,c2=0.5,sc1=.2,sc2=.4,sc3=.6,sc4=.8,fontSize=30,partup,sup},
(*choose state and rescale the time parameter*)
{rup,rdown}={2,4}/7.;
{subr,state}=Which[
r<rup,{Rescale[r,{0,rup},{0,1}],"Up"},
r<rdown,{Rescale[r,{rup,rdown},{0,1}],"Down"},
True,{Rescale[r,{rdown,1},{0,1}],"Sup"}
];
If[r==1,subr=1];
(*choose parameters depending on the state*)
{epilog,sup,partup}=Switch[state,
"Up",{labelsUpDown[subr,c1,c2,True],False,True},
"Down",{labelsUpDown[subr,c1,c2,False],False,False},
"Sup",{labelsSup[subr,sc1,sc2,sc3,sc4],True,True}
];
epilog={epilog,
Text[Style[Subscript["D","\[LeftArrow]"],Orange,fontSize],ImageScaled@{.25,.92}],
Text[Style[Subscript["D","\[Rule]"],Orange,fontSize],ImageScaled@{.78,.92}]
};
(*create graphics*)
Graphics3D[
(*scene*)
{subsceneParticle[subr,partup,sup],subsceneDetectors[subr,partup],subsceneMagnets[subr]},
(*options*)
Epilog->epilog,PlotRange->{{-1,20},5.5{-1,1},10{-1,1}},SphericalRegion->True,Lighting->"Neutral",Boxed->False,
ViewPoint->{-2.31`,-2.47`,-0.06`},ViewAngle->20Degree,ViewCenter->{0.3, 0.5, 0.5},ViewVertical->{1,0,0}
]
]
(* ::Section:: *)
(*Preview*)
(* ::Input:: *)
(*Manipulate[animation[r],{r,0,1,Appearance->"Open"}]*)
(* ::Section:: *)
(*Export*)
(* ::Input:: *)
(*{time,frames}=AbsoluteTiming[ParallelTable[Rasterize[animation[r],ImageSize->350],{r,0,1,.01}]];*)
(*Print@time;*)
(*Export["anim2.gif",frames,AnimationRepetitions->Infinity,"DisplayDurations"->.18]*)
Položky vyobrazené v tomto souboru
zobrazuje
Nějaká hodnota bez položky na Wikidatech
11. 8. 2021
image/gif
Historie souboru
Kliknutím na datum a čas se zobrazí tehdejší verze souboru.
Datum a čas | Náhled | Rozměry | Uživatel | Komentář | |
---|---|---|---|---|---|
současná | 14. 8. 2021, 10:37 | 350 × 350 (627 KB) | JozumBjada | Cross-wiki upload from cs.wikipedia.org |
Využití souboru
Tento soubor používá následující stránka:
Globální využití souboru
Tento soubor využívají následující wiki:
- Využití na eu.wikipedia.org
Metadata
Tento soubor obsahuje dodatečné informace, poskytnuté zřejmě digitálním fotoaparátem nebo scannerem, kterým byl pořízen. Pokud byl soubor od té doby změněn, některé údaje mohou být neplatné.
Poznámky ze souboru GIF | Created with the Wolfram Language : www.wolfram.com |
---|