Lacul cuantic

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În 2001 , Heiner Linke, un fizician german de la Universitatea din Lund , a reușit să creeze un clichet cuantic , adică un experiment științific capabil să extragă un curent de electroni pornind de la un potențial mediu zero. Acest rezultat, paradoxal la prima vedere, poate fi explicat cu reguli matematice simple. Să vedem mai întâi câteva concepte necesare pentru a înțelege modul în care mecanismele de acest tip sunt posibile.

Clave termice

Diagrama unui clichet brownian
Pictogramă lupă mgx2.svg Același subiect în detaliu: lacul brownian .

Vasele browniene sau termice au o istorie lungă în fizică. Într-o prelegere, Premiul Nobel pentru fizică, Richard P. Feynman, s-a ocupat de descrierea funcționării teoretice a unui lacet brownian și de explicarea imposibilității de a genera mișcare perpetuă cu acest mecanism.

Piciorul Feynman este format dintr-o roată dințată , un arc , un picior, o axă prevăzută cu lame. Axa se conectează la pinion, care este ținut în poziție de dinte și arc. Dinții roții sunt arcuite, astfel încât să permită rotația numai într-o direcție, rezistând mișcării în direcția opusă prin blocarea în dinte, împinsă în jos de arc. Întregul este scufundat într-un gaz.

Agitația termică a moleculelor de gaz determină coliziunea acestora cu lamele. Impacturile în direcția corectă, dacă sunt suficient de puternice, determină mecanismul să prindă un dinte. Impacturile în direcția opusă, pe de altă parte, sunt ineficiente în producerea unei mișcări, deoarece sunt întotdeauna împiedicate de clichet. Cu toate acestea, acest contrast generează căldură și în curând sistemul format de arc și dinte devine atât de fierbinte încât nu mai poate sta în cale: roata rămâne la mila mișcării browniene .

Prin urmare, nu este posibil să se utilizeze o astfel de mașină pentru mișcare perpetuă, în conformitate cu a doua lege a termodinamicii .

Labele Brownian de lucru

Cu toate acestea, există o metodă pentru a putea obține un loc de muncă din agitația termică , atâta timp cât accepți, uneori, să faci treaba opusă și totuși să furnizezi energie sistemului din exterior în mod aleatoriu.

O cerință importantă este de a avea o structură cu o tendință potențială din dinte de ferăstrău, în care distanța dintre un maxim și următorul minim este mai mică decât în ​​direcția opusă. În plus, trebuie să existe un mecanism de frânare și o sursă aleatorie de energie.

Unele exemple de astfel de mecanisme sunt pompele de ioni celulari: acestea constau de obicei dintr-o proteină în formă de pâlnie, care alternează o configurație de canal închis, în care ionul este puternic cuplat la canal, la un canal deschis, în care ionul interacționează slab cu canalul. Mișcarea browniană a moleculelor este apoi suficientă pentru a împinge ionul în direcția opusă gradientului electrochimic. Trecerea de la o stare la alta se efectuează de obicei datorită arderii unei molecule de adenozin trifosfat (ATP).

Simularea clichetului termic

Toate acestea par improbabile, totuși este posibil să-i simule efectele cu un simplu joc de „masă”. Să presupunem o serie de 5 cutii alb-negru alternante. Pionul, la început plasat în centru, se mișcă în funcție de rezultatul aruncării a două zaruri și de culoarea pătratului de pornire. Pentru a câștiga, trebuie să ieși din tabla de șah avansând. Pierzi dacă ieși afară mergând înapoi.

De exemplu:

Mutare alb Negru
Haide 7, 11 11
Înapoi 2, 3, 12 2, 4, 12

Aruncând 2 zaruri, avem 6 șanse să vină 7, 2 să apară 11, 1 pentru 12 și 2, 2 pentru 3, 3 pentru 4.

Să începem cu simbolul negru din centru. Șansele de a câștiga sunt produsul șanselor de a merge înainte de la alb la negru, înmulțit cu cele care merg înainte de la negru la alb: de aceea . Șansele de a pierde sunt în schimb . Deci pierzi de 100 de ori la fiecare 80 de victorii.

Acum, să presupunem că avem un alt set de reguli:

Mutare alb Negru
Haide 11 7, 11
Înapoi 2, 4, 12 2, 3, 12

Șansele de a câștiga sunt aceleași. Acum lăsăm să intervină procesul aleatoriu: acum aplicăm una sau alta regulă de fiecare dată în funcție de rezultatul aruncării unei monede (capete sau cozi). Dacă recalculăm șansele de a câștiga, acestea sunt produsul mediei mișcărilor înainte de la alb cu cele ale mișcărilor înainte de la negru:

.

Cele ale înfrângerii, în mod similar, vor fi

.

Deci, obținem 81 de înfrângeri pentru fiecare 100 de victorii!

Listarea C ++ pentru un program de simulare

Este posibil să simulați procesul printr-un algoritm. Următoarea listă este un program C ++ care simulează 100.000 de jocuri per joc, cu o serie de 30 de casete (pentru a modifica acești parametri, trebuie doar să schimbați valorile variabilelor partite_da_giocare și Dimensione ).

Puteți experimenta că obțineți victoria de aproximativ 71 de ori din 100, chiar dacă începeți din caseta 15, unde 14 pași sunt suficienți pentru a pierde, în timp ce 15 sunt necesari pentru a câștiga.

 / * cod * / 
 / * Copyright BlakWolf 2004 * /
 / * Lansat sub Gnu GPL V. 2 sau o versiune ulterioară, la alegere * /
 
 #include <set> / * container pentru reguli * /
 #include <cstdlib> / * rand () și srand () * /
 #include <ctime> / * time () * /
 #include <iostream>
 
 / *
* Pion
* conține poziția pe tablă
* /
 struct Pion {
  poziție int nesemnată ;
 };
 
 / *
* Regula
* asociază un rezultat
* la o schimbare
* * /
 struct Regula {
  unsigned int Lansare ;
  int Mișcare ;
  Regula ( const nesemnificat int & throw , const int & shift ) :
       Lansare ( lansare ),
       Deplasare ( deplasare ) {}
 operator bool inline < ( const Regula & r ) const {
   return ( Aruncare < r . Aruncare );
 }
 operator bool inline == ( const Regula & r ) const {
   return ( Aruncare == r . Aruncare );
 }
 
 };
 
 / * Set de reguli
* Conține un set de reguli de joc
* și le aplică în funcție de rulajul matriței
* /
 set de reguli de clasă {
 public :
  typedef std :: set < Rule > Container ;
  typedef Container :: iterator Iterator ;
 
 privat :
  Regulile pentru containere ;
 
 public :
  Set de reguli ( Iterator de la , Iterator la );
  int Aplicare ( nesemnat int & Lansare );
  ~ Ruleset () {};
 };
 
 / * Puneți regulile în container
* /
 Ruleset :: Ruleset ( Ruleset :: Iterator from , Ruleset :: Iterator to ) {
  for ( Iterator it = from ; it ! = to ; ++ it )
     reguli . insert ( * it );
 }
 
 / * Dacă găsește o regulă, o aplică și returnează deplasarea
* altfel returnează 0 (null shift)
* /
 int Ruleset :: Apply ( nesemnat int & Launch ) {
  Iterator it = reguli . găsi ( Regula ( Aruncare , 0 )) ;
  if ( it == reguli . end ())
     retur 0 ;
  return ( it -> Mutare );
  }
 
 int main () {
 
  unsigned int Dimensiune = 30 ; / * lungimea drumului * /
  int games_to_play = 100000 ; / * chibrituri * /
 
  int Crucea ;
  unsigned int Lansare ;
 
  Set de reguli :: Container Container ;
 
  // set n. 1 din reguli pentru pătrate uniforme
  // dacă este rulat 7 sau 11, mergeți înainte cu 1, dacă este rulat 2 3 12 reveniți cu 1
 
  Recipient . inserare ( Regula ( 7 , 1 ));
  Recipient . inserare ( Regula ( 11 , 1 ));
  Recipient . insert ( Regula ( 2 , -1 ));
  Recipient . insert ( Regula ( 3 , -1 ));
  Recipient . inserare ( Regula ( 12 , -1 ));
 
  Ruleset Bianchi_a (Container Begin (), containere End ()..);
 
  // set n. 1 din regulile pentru pătratele impare
  // Vezi deasupra
 
  Recipient . clar ();
  Recipient . inserare ( Regula ( 11 , 1 ));
  Recipient . insert ( Regula ( 2 , -1 ));
  Recipient . inserare ( Regula ( 4 , -1 ));
  Recipient . inserare ( Regula ( 12 , -1 ));
 
  Ruleset Neri_a (Container Begin (), containere End ()..);
 
  // set n. 2 din reguli pentru pătrate uniforme
  Recipient . clar ();
  Recipient . inserare ( Regula ( 11 , 1 ));
  Recipient . insert ( Regula ( 2 , -1 ));
  Recipient . inserare ( Regula ( 4 , -1 ));
  Recipient . inserare ( Regula ( 12 , -1 ));
 
  Ruleset Bianchi_b (Container Begin (), containere End ()..);
 
  // set n. 2 din regulile pentru pătratele impare
  Recipient . clar ();
  Recipient . inserare ( Regula ( 7 , 1 ));
  Recipient . inserare ( Regula ( 11 , 1 ));
  Recipient . insert ( Regula ( 2 , -1 ));
  Recipient . inserare ( Regula ( 3 , -1 ));
  Recipient . inserare ( Regula ( 12 , -1 ));
 
  Ruleset Neri_b (Container Begin (), containere End ()..);
 
  int Counter = 0 ; // jocuri jucate
  int Câștigă = 0 ; // jocuri câștigate
 
  Pion p ;
  p . pozitie = marime / 2 ; / * Începe jocul cu simbolul al
centru * /
  std :: srand ( std :: time ( 0 )); / * Randomizarea semințelor * /
 
  while ( Counter < games_to_play ) {
      Cross = ( std :: rand () >> 8 ) & 1 ; // par sau impar
      Lansare = ( std :: rand () >> 8 ) % 6 + 1 ; // muri 1
      Lansare + = ( std :: rand () >> 8 ) % 6 + 1 ; // mor 2
 
      dacă ( Crucea ) { / * Crucea iese * /
         if ( p . poziție & 1 ) { / * Casetă impară * /
            p . poziția + = Bianchi_a . Aplică ( Lansare );
         } else / * Even Box * /
            p . poziția + = Neri_a . Aplică ( Lansare );
       } else { / * Ieșiți afară * /
         if ( p . poziție & 1 ) { / * Casetă impară * /
            p . poziția + = Bianchi_b . Aplică ( Lansare );
         } else / * Even Box * /
            p . poziția + = Neri_b . Aplică ( Lansare );
       }
 
       if ( p . poziție == Dimensiune ) { / * win * /
         p . pozitie = marime / 2 ; / * Întoarceți pionul în centru * /
         ++ Câștigă ;
         ++ Contor ;
         }
 
       if ( p . poziția == 0 ) { / * înfrângere * /
         p . pozitie = marime / 2 ;
         ++ Contor ;
       }
  }
 
  std :: cout << "Câștigă" << Câștigă << "Jucă" << Contor << "(" ;  
  std :: cout << 100. * Câștiguri / Counter << "%)" << std :: endl ; 
  }
 
 / * sfârșitul codului * /

Realizarea clichetelor cuantice

Clapet cuantic

Deplasând discursul la nivelul fizicii cuantice, componentele unui lac cuantic devin interferența dintre funcțiile undei , cuantificarea nivelurilor de energie și efectul tunel . Linke și colegii săi au folosit puncte cuantice triunghiulare în acest scop. Acestea constau în găuri potențiale , în care electronii au dificultăți de trecere prin vârf.

La temperaturi ridicate, electronii se comportă aproximativ ca niște pahare browniene, similar cu ionii din pompele moleculare: supuși unui potențial oscilant, curg din vârf și, prin urmare, generează un curent chiar dacă potențialul mediu este zero. Cu toate acestea, la temperaturi scăzute, mecanismul se comportă ca un clan cuantic: electronii curg din părțile laterale ale triunghiului, deoarece decalajul de energie necesar pentru a depăși obstacolul din cauza efectului tunel este mai mic în acea direcție.

Utilizări practice

Motoare moleculare

Realizarea motoarelor de dimensiuni moleculare necesită o regândire a conceptului de funcționare: în motoarele macroscopice, energia este utilizată pentru a produce o mișcare utilă pentru motor, în timp ce în câmpul molecular cele inutile trebuie blocate în haosul agitației termice sau al interferenței probabiliste .

Dispozitive electronice

Posibilitatea de a gestiona singuri electroni, chiar și cu limitele descrise mai sus, fără a fi necesară calibrarea câmpurilor cu aceeași precizie, oferă multe posibilități electronicii de precizie, cum ar fi crearea de pompe de electroni pentru nanoelectronică sau amplificarea semnalelor. de dimensiune moleculară. În plus, clichetele cuantice pot fi utilizate pentru a modera vârtejurile de curent din interiorul supraconductoarelor , o problemă fundamentală pentru construcția magneților și cablurilor supraconductoare.

Bibliografie

  • Manfred Eigen și Ruthild Winkler, Legile jocului , Princeton University Press, 1993
  • R. Dean Astumian, De la molecule la motoare , The Sciences 396 , august 2001
  • Fabio Marchesoni, De la mișcare perpetuă la motoare browniene , Le Scienze 435 , noiembrie 2004

Elemente conexe