Università Cattolica del Sacro Cuore Sede di Brescia Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea di Primo Livello in Fisica Quantum Simulators Relatore: Prof. Fausto Borgonovi Correlatore: Prof. Giuseppe Nardelli Laureando: Angelo Ziletti mat. 3404351 Anno Accademico 2007/2008 Prefazione Il campo dell’informazione quantistica è in rapida evoluzione. Le potenzialità della computazione quantistica sono immense e qualora venissero effettivamente utilizzate consentirebbero di svolgere compiti che i computer tradizionali non sono, e non saranno mai, in grado di fare. Lo scopo principale di questa tesi è mostrare come un piccolo registro costituito da 6−10 qubit sia sufficiente a realizzare un simulatore quantistico in grado di risolvere in modo efficiente problemi standard di meccanica quantistica. Dato che la natura di un computer quantistico può essere descritta concretamente da un simulatore, ho sviluppato un programma in Fortran capace di mostrare l’evoluzione di una singola particella governata dall’equazione di Schrödinger e sottoposta ad un potenziale unidimensionale arbitrariamente scelto. Nel capitolo 1 si fornisce una panoramica generale sull’informazione quantistica, presentando al lettore le caratteristiche peculiari, le potenzialità e le problematiche di questo settore molto fecondo della scienza. Si prosegue poi introducendo due concetti che stanno alla base dell’informazione quantistica come i qubit e l’entanglement. Dopo una breve premessa su cosa sia una simulazione quantistica, nel capitolo 5 si espone l’algoritmo effettivamente seguito per sviluppare il codice sorgente in Fortran. Nei capitoli che seguono mostriamo infine il funzionamento del simulatore, risolvendo alcuni problemi standard di meccanica quantistica come l’oscillatore armonico, il moto di una particella in un campo uniforme, le buche di potenziale e l’oscillatore armonico con perturbazione quartica. ii Indice Prefazione ii 1 Introduzione 1 2 Dai bit ai qubit 7 3 Entanglement 12 3.1 Definizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Esperimento concettuale di Bohm . . . . . . . . . . . . . . . . 13 3.3 Correlazioni perfette e scoperta di Bell . . . . . . . . . . . . . 15 3.4 Descrizione formale . . . . . . . . . . . . . . . . . . . . . . . . 15 3.5 Realizzazione di uno stato entanglement . . . . . . . . . . . . 19 4 Quantum Fourier Transform 21 4.1 Definizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2 Trattazione operatoriale . . . . . . . . . . . . . . . . . . . . . 22 5 Costruzione del Quantum Simulator 26 5.1 Cos’è una simulazione quantistica . . . . . . . . . . . . . . . . 26 5.2 Algoritmo del Quantum Simulator . . . . . . . . . . . . . . . . 29 5.3 Emulazione su un computer classico . . . . . . . . . . . . . . . 35 6 Simulazione di una particella in evoluzione libera 37 6.1 Descrizione del sistema . . . . . . . . . . . . . . . . . . . . . . 37 6.2 Spreading di una funzione d’onda gaussiana . . . . . . . . . . 39 iii 7 Simulazione di un oscillatore armonico 46 7.1 Descrizione del sistema . . . . . . . . . . . . . . . . . . . . . . 46 7.2 Stati coerenti . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.3 Stati non coerenti . . . . . . . . . . . . . . . . . . . . . . . . . 56 7.4 7.3.1 Stati di forma gaussiana . . . . . . . . . . . . . . . . . 56 7.3.2 Stati di forma rettangolare . . . . . . . . . . . . . . . . 57 7.3.3 Stati di forma lorenziana . . . . . . . . . . . . . . . . . 58 Onde contropropaganti: interferenza . . . . . . . . . . . . . . 59 8 Simulazione di una particella in un campo uniforme 61 8.1 Descrizione del sistema . . . . . . . . . . . . . . . . . . . . . . 61 8.2 Simulazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 9 Simulazione di una particella sottoposta a buche e gradini di potenziale 9.1 9.2 9.3 67 Barriera di potenziale . . . . . . . . . . . . . . . . . . . . . . . 67 9.1.1 Descrizione del sistema . . . . . . . . . . . . . . . . . . 68 9.1.2 Simulazione . . . . . . . . . . . . . . . . . . . . . . . . 72 Gradino di potenziale . . . . . . . . . . . . . . . . . . . . . . . 74 9.2.1 Descrizione del sistema . . . . . . . . . . . . . . . . . . 74 9.2.2 Simulazione . . . . . . . . . . . . . . . . . . . . . . . . 78 Potenziale deltiforme . . . . . . . . . . . . . . . . . . . . . . . 82 9.3.1 Descrizione del sistema . . . . . . . . . . . . . . . . . . 82 9.3.2 Simulazione . . . . . . . . . . . . . . . . . . . . . . . . 82 10 Simulazione di una particella sottoposta a potenziali anarmonici 84 10.1 Potenziale anarmonico cubico . . . . . . . . . . . . . . . . . . 84 10.2 Potenziale armonico con perturbazione quartica . . . . . . . . 87 11 Conclusioni 89 Appendice - Codice sorgente 91 iv Capitolo 1 Introduzione Information is physical Rolf Landauer Tutti i sistemi fisici registrano ed elaborano informazione. È da questa semplice, ma potentissima affermazione che si origina la teoria dell’informazione quantistica. L’idea che l’informazione possa essere manipolata dalla materia non è del tutto ovvia, ed è entrata a far parte del discorso scientifico solo da qualche tempo. Una ventina di anni fa, scienziati come Paul Benioff, Richard Feynman e David Deutsch, capirono come poter utilizzare la materia per elaborare informazione; all’epoca però, i computer quantistici erano oggetti puramente astratti, ipotesi non realizzabili praticamente. Bisogna aspettare i primi anni Novanta del secolo scorso perchè i fisici riescano effettivamente a manipolare singolarmente oggetti quantistici - fotoni, atomi e ioni per fare alcuni esempi - in modo tale da poterne osservare le reazioni a determinati stimoli esterni. Comprendere il comportamento delle particelle quantistiche è però molto difficile, il loro è un mondo stravagante, molto diverso da quello macroscopico in cui siamo abituati a vivere: particelle che si comportano come onde, onde che si comportano come particelle, oggetti che stanno in due posti contemporaneamente e cosı̀ via; per darvi un’idea, il premio Nobel Richard P. 1 Feynman con il suo stile provocatorio e irriverente disse: “Posso con certezza affermare che nessuno capisce la meccanica quantistica”. Muoversi in questo contesto è piuttosto complicato: cogliere in che modo la realtà registra ed elabora l’informazione richiede comprendere appieno il linguaggio intrinseco della natura. Gli atomi sono piccoli e forti, coriacei e sensibili. Rivolgersi a loro è facile (picchiate un pugno sul tavolo e ne avrete contattati molti miliardi in un colpo solo), ma è molto difficile capire le loro risposte (chissà cosa avranno voluto dire gli atomi del tavolo con quel rumore sordo). Non sono interessati agli umani, e tendono a farsi gli affari loro. Ma se li toccate nel modo giusto, se parlate la loro lingua e glielo chiedete per favore, riuscirete a sedurli e a farli calcolare per voi. Bene, ma che lingua usare? La lingua della natura, i cui termini sono energia, forza, impulso, luce, onde sonore, elettricità, gravità e la grammatica è data dalle sole leggi fisiche. E come è questa lingua? Bizzarra, come il mondo che descrive, un mondo dove la risposta “sı̀ e no” non è manifestazione di una palese indecisione, ma una risorsa, una peculiarità che apre orizzonti nuovi, mai visti prima. Ma come è possibile ciò? Vediamone subito un esempio che ci interessa particolarmente. In un calcolatore tradizionale l’unità di informazione, il bit, può assumere solo due valori: 0 o 1. Nei computer quantistici, invece, il quantum bit o qubit, può assumere non solo 0 o 1, ma tutti i possibili valori intermedi. Questa è una conseguenza diretta del principio di sovrapposizione: è possibile costruire stati di sovrapposizione, in cui il qubit ha sia il valore 0 che il valore 1. A questo punto sorge spontanea una domanda: è possibile sfruttare le sovrapposizioni quantistiche per eseguire compiti che ai computer classici sono preclusi? Il primo a porsi la domanda fu David Deutsch a metà degli anni Ottanta, e la risposta definitiva arrivò qualche anno più tardi: “sı̀, è possibile”. Ma come può un computer interpretare il comando dato da un qubit che si trova in uno stato sovrapposto? Proviamo ad immaginare la situazione. Una 2 parte, quella corrispondente a 0, manda il messaggio “fa questo”, mentre l’altra parte, quella corrispondente a 1, ordina “fa quello”. Come può il computer quantistico decidere il da farsi? Non deve decidere nulla, fa “questo e quello” allo stesso tempo! Come un qubit può registrare due valori simultaneamente, cosı̀ un computer quantistico è in grado di svolgere due operazioni allo stesso tempo. Stupefacente no? Deutsch ha battezzato questa strana capacità parallelismo quantistico ed è facile intuire che se si riuscisse a sfruttare al meglio questa peculiarità, nulla sarà più precluso ai computer quantistici. Dopo il principio di sovrapposizione, la seconda proprietà su cui si basano i computer quantistici è il fenomeno dell’entanglement. A livello quantistico può accadere che due oggetti formino una singola entità, anche se c’è un’arbitrariamente larga separazione fra i due. Ogni tentativo di vedere questa entità come una combinazione di due oggetti indipendenti fallisce, a meno che si consideri possibile propagare segnali a velocità superluminali; è a questa conclusione che giunse John Bell nel 1964, ispirandosi al famoso paradosso EPR sviluppato da Einstein, Podolsky e Rosen nel 1935. Ma perchè investire tempo e denaro per costruire e studiare i quantum computer? Per molte buone ragioni. La prima è che dobbiamo farlo se vogliamo continuare ad aumentare la velocità dei computer. La richiesta continua ed incessante di riuscire a trattare volumi sempre maggiori di informazioni ha imposto una rapida miniaturizzazione dei componenti elettrici, iniziata con la nascita dei transistor e dei microchip. Questo è evidente dalla legge di Moore. Già nel 1965, Gordon Moore, cofondatore e presidente di Intel, mentre preparava un discorso per un’azienda notò che le nuove generazioni di chip di memoria venivano presentate sul mercato a intervalli regolari di tre anni. Poichè ogni nuova generazione aveva una memoria quattro volte più grande della precedente, il numero di transistor su un chip cresceva in modo costante e Moore predisse che questo andamento sarebbe continuato per decenni. La legge di Moore viene spesso presentata dicendo che il numero di transistor su 3 un singolo chip raddoppia ogni 18 mesi. Anche se successivamente il periodo necessario per il raddoppio si è allungato a due anni, questo processo rimane comunque stupefacente: non ci sono rami dell’industria in cui i progressi della tecnologia seguono un processo esponenziale, e per cosı̀ tanto tempo. Ovviamente la legge di Moore non è affatto una legge, ma semplicemente un’osservazione empirica della velocità con cui i fisici dello stato solido e gli ingegneri fanno avanzare lo stato dell’arte e una previsione che questo tasso di sviluppo continuerà nel futuro. Ma c’è un limite alla miniaturizzazione? Sı̀, ed è proprio a questo punto che interviene la meccanica quantistica. Al momento, la corrente - il flusso di elettroni - fra i transistors può essere paragonata allo scorrere dell’acqua nelle tubature, in accordo con le leggi della fisica classica. Continuando con la miniaturizzazione, sempre meno elettroni passeranno attraverso conduttori sempre più sottili. La loro propagazione, prima o poi, potrà essere descritta solo con le leggi della meccanica quantistica; se consideriamo il trend attuale, si stima che raggiungeremo le dimensioni atomiche per memorizzare un singolo bit d’informazione attorno al 2020 (attualmente le dimensioni tipiche dei componenti dei circuiti sono dell’ordine di 100nm). Un secondo buon motivo per proseguire le ricerche è che un computer quantistico ci permette di studiare il modo in cui l’universo registra ed elabora l’informazione. Un ottimo modo per capire una legge di natura è costruire una macchina che la replica. Anzi, avere una macchina che fa una certa cosa è spesso la molla che ci spinge a comprendere una certa legge: la ruota e la trottola vengono prima (millenni prima) della conservazione del momento angolare, la catapulta prima delle leggi di Galileo, il prisma ottico e il telescopio prima dell’ottica newtoniana, la macchina a vapore prima delle leggi della termodinamica enunciate da Carnot. Visto che la meccanica quantistica è cosı̀ contro-intuitiva, sarebbe molto formativo costruire un dispositivo che ne incorpora i principi; oggi si producono computer quantistici “giocattolo” che un giorno ci permetterano di capire in 4 profondità il modo in cui i sistemi fisici registrano ed elaborano informazioni a livello atomico. Per capire la natura basta replicarla, e per replicarla basta un computer quantistico. Un terzo motivo per investire nella ricerca dei computer quantistici è, se volete, più filosofico: l’utilità dell’inutile. Nella scienza non è raro che speculazioni apparentemente prive di utilità pratica trovino applicazioni a priori inimmaginabili nei campi più disparati; come non ricordare il grande Micheal Faraday che, alle incalzanti domande sull’utilità dei suoi esperimenti elettrici da parte del Ministro del Tesoro, rispose: “Un giorno, Vostro Onore, riscuoterete delle tasse per questo”. Ed in effetti ebbe ragione. La quantum information quindi è diventata uno dei campi più ferventi della fisica, con potenzialità tali da rivoluzionare molte aree della scienza, e non solo. Ci sono però alcuni problemi da tenere bene in considerazione. Innanzitutto, anche se i computer quantistici fossero già disponibili, il numero di algoritmi di forte interesse è davvero limitato e nulla si può prevedere sul futuro sviluppo di nuovi algoritmi. Il secondo tipo di limitazione è che tuttora non sappiamo se un giorno sarà possibile costruire computer abbastanza grandi per manipolare centinaia di bit. Il nemico più grande dei computer quantistici è la decoerenza, cioè l’interazione dei qubit con l’ambiente esterno che offusca la tanto delicata quanto importante sovrapposizione degli stati. La decoerenza introduce errori e idealmente per ovviare a ciò il computer dovrebbe essere completamente isolato dall’ambiente. Questo in pratica vuol dire che l’isolamento deve essere abbastanza buono da permettere ai codici di correzioni degli errori di eliminare le imperfezioni originatesi nei qubit a causa della decoerenza. Nonostante tutti questi problemi, si è riusciti a costruire dispositivi capaci effettivamente di registrare un bit per ogni atomo; essi, però, non hanno ancora raggiunto la capacità di calcolo dei computer classici. I progressi sono significativi e si susseguono ad un gran ritmo. Il 13 febbraio 2007, nonostante non fosse creduto possibile prima di 20 anni, la società canadese D-Wave System ha presentato ORION, il primo computer 5 quantico, dotato di un processore quantistico a 16 qubit, bruciando sul tempo i Bell Labs, tra i più avanzati laboratori di ricerca in questo settore. Poco tempo dopo, il 15 novembre 2007, sempre la D-Wave System ha presentato un nuovo quantum processor da 28 qubit. Tutto questo sta a testimoniare che il settore è in grande fermento e che progressi fino a poco tempo relegati ad un futuro lontano, potranno presto divenire realtà. 6 Capitolo 2 Dai bit ai qubit There are 10 types of people in this world, those who understand binary code and those who don’t. Anonymous Il bit (binary digit) è l’unità minima di informazione nella computazione classica. Rappresenta una scelta fra due alternative che tradizionalmente si indicano con 0 e 1, ma che potrebbero essere una qualsiasi coppia in opposizione (bianco-nero, vero-falso ecc.). Vedere che è l’unità minima è molto semplice; per esempio il risultato di lancio di una moneta è completamente caratterizzato da un solo bit: testa o croce. Se i lanci sono due, le possibili alternative diventano quattro, con tre otto e cosı̀ via. Il numero dei possibili risultati aumenta in modo rapido al crescere dei lanci, cioè dei bit. Con dieci lanci, per esempio, sono possibili 210 = 1024 risultati, quindi occorreranno 10 bit per rappresentare correttamente il risultato. Lo stato di un computer classico di n bit è descritto in notazione binaria tramite un intero k ∈ {0, 1, . . . , 2n − 1} siffatto: n−1 k = kn−1 2 + . . . + k1 2 + k0 = n−1 X i=0 con kn−1 , . . . , k1 , k0 ∈ {0, 1}. 7 ki 2i (2.1) Per esempio, 23 = (10111) è una notazione che sottintende 23 = 1 · 24 + 0 · 23 + 1 · 22 + 1 · 21 + 1 · 20 Nella computazione quantistica, invece, l’unità elementare è il quantum bit o qubit e un quantum computer può essere visto come un sistema a tanti qubit. Fisicamente, un qubit è un sistema a due livelli, come per esempio lo spin di una particella a spin 1/2, la polarizzazione di un singolo fotone o due stati di un atomo. Esso può essere descritto in uno spazio di Hilbert complesso bidimensionale. In questo spazio si può scegliere una coppia di vettori di stato normalizzati e mutualmente ortogonali, |0i e |1i, per rappresentare i valori 0 e 1 di un bit classico: questi due stati formano una base. Direttamente dal principio di sovrapposizione si ha che ogni stato può essere scritto nella forma |ψi = α|0i + β|1i (2.2) Le ampiezze α e β sono dei numeri complessi, soddisfacenti la condizione di normalizzazione |α|2 + |β|2 = 1. Geometricamente, possiamo interpretare lo stato di un qubit come un vettore unitario in uno spazio vettoriale complesso bidimensionale. La caratteristica di un qubit di trovarsi in una sovrapposizione di stati va contro il senso comune: ritornando all’esempio precedente, una moneta quantistica vive in una sovrapposizione di “testa e croce”, |0i e |1i, finchè non viene compiuta una misura; quando questo accade la funzione d’onda collassa ed il risultato può essere solo 0 o 1. Ora andiamo a ricavare una rappresentazione geometrica per visualizzare un qubit. Dato che |α|2 + |β|2 = 1, possiamo riscrivere l’equazione (2.2) ϑ ϑ iγ iϕ |ψi = e cos |0i + e sin |1i 2 2 dove ϑ, ϕ e γ sono numeri reali. Ignorando il termine di fase globale che non ha significato fisico, possiamo scrivere ϑ ϑ |ψi = cos |0i + eiϕ sin |1i 2 2 8 I numeri ϑ e ϕ definiscono una sfera unitaria tridimensionale come mostrato in figura (2.1). Questa sfera prende il nome di sfera di Bloch e fornisce un modo interessante per visualizzare lo stato di un singolo qubit; inoltre, molte operazioni sui qubit possono essere visualizzate su di essa. Questa rappresentazione, però, Figura 2.1: Sfera di Bloch ha anche una forte limitazione: non esiste una generalizzazione semplice della sfera di Bloch per più di un qubit. Quante informazioni possono essere rappresentate con un qubit? Paradossalmente, ci sono infiniti punti sulla sfera unitaria e quindi, in linea di principio si potrebbero memorizzare infinite informazioni. Questa conclusione, però, è fuorviante perchè non abbiamo tenuto in considerazione che una misura dello stato del qubit ci restituisce solo i valori 0 e 1. Inoltre, la misurazione cambia lo stato del qubit, facendo collassare la funzione d’onda nell’autostato del sistema corrispondente al valore rilevato; questo è una dei postulati fondamentali della meccanica quantistica. Nel nostro caso, dopo la misura, il qubit si troverà nell’autostato |0i o nell’autostato |1i e non più in una loro sovrapposizione. A questo punto, un’altra interessante domanda può essere formulata: quante informazioni possono essere rappresentate da un qubit se non lo misuriamo? 9 E come si fa a quantificare una quantità di informazione che non può essere misurata? Questo è concettualmente molto importante perchè quando un sistema quantistico chiuso evolve liberamente (senza che vengano effettuate misure) esso lavora su tutte le possibili sovrapposizioni di stati, non solo sugli stati |0i e |1i; in questo senso la Natura cela una grande quantità di informazione. In più, la potenziale quantità di informazione cresce esponenzialmente con il numero di qubit. Vediamolo subito. Una collezione di n qubit è conosciuta come registro quantistico di dimensione n. La sua corrispondente funzione d’onda risiede in uno spazio di Hilbert complesso 2n dimensionale. Lo stato di un quantum computer di n qubit è, contrariamente ai computer classici (2.1), descritto da: |ψi = n −1 2X ck |ki (2.3) k=0 . dove |ki = |kn−1 i . . . |k1 i|k0 i, con |kj i lo stato del j-esimo qubit; vale inoltre la condizione di normalizzazione n −1 2X |ck |2 = 1 k=0 . Abbiamo usato la notazione semplificata |ki = |kn−1 i . . . |k1 i|k0 i per il prodotto tensoriale |kn−1 i ⊗ . . . ⊗ |k1 i ⊗ |k0 i. Il principio di sovrapposizione della meccanica quantistica è chiaramente visibile nell’equazione (2.3): mentre n bit classici possono memorizzare solo un intero k, il registro quantistico da n qubit si trova nello stato |ki ed inoltre in una sua combinazione lineare. Per esempio, con un registro classico formato da 3 bit possiamo rappresentare fino a 8 diversi numeri possibili, cioè esso può trovarsi in una delle otto possibili configurazioni (000, 001, . . . , 111). Un registro quantistico composto da tre qubit, invece, sarà in grado di contenere tutti gli 8 numeri contemporaneamente in una sovrapposizione quantistica, cioè tramite una sovrapposizione coerente di stati. È importante sottolineare che il numero degli stati della base dei qubit in 10 questa sovrapposizione può arrivare fino a 2n , e cresce esponenzialmente con il numero di qubit. Il principio di sovrapposizione apre nuove ed incredibili opportunità di calcolo. Quando eseguiamo un’operazione su un computer classico, differenti input richiedono differenti esecuzioni del programma. Di contro, un computer quantistico può processare contemporaneamente - con una sola esecuzione - un numero esponenziale di di input. Per darvi un’idea, con un quantum computer di 300 qubit si possono eseguire allo stesso tempo più operazioni di quante siano le particelle elementari dell’universo. Grazie al parallelismo quantistico, basta una piccola macchina con poche centinaia di qubit per esplorare nello stesso istante un immenso ventaglio di possibilità. Questa è la potenza della computazione quantistica. Figura 2.2: Esecuzione di un’operazione logica elementare in un calcolatore classico e in uno quantistico. 11 Capitolo 3 Entanglement When two systems, of which we know the states by their respective representatives, enter into temporary physical interaction due to known forces between them, and when after a time of mutual influence the systems separate again, then they can no longer be described in the same way as before, viz. by endowing each of them with a representative of its own. I would not call that one but rather the characteristic trait of quantum mechanics, the one that enforces its entire departure from classical lines of thought. By the interaction the two representatives [the quantum states] have become entangled. Erwin Schrodinger, 1935 3.1 Definizione L’entanglement è probabilmente la più spettacolare e controintuitiva manifestazione della meccanica quantistica. Questo fenomeno prevede l’esistenza di correlazioni non locali fra misurazioni su particelle che hanno interagito nel passato, ma che al momento della misura possono essere separate da una distanza arbitrariamente grande. Diciamo che uno stato |ψi a due particelle è entangled, o non separabile, se non può essere scritto come il prodotto 12 |k1 i|k2 i di due stati che descrivono rispettivamente il primo e il secondo sottosistema, ma solo in una sovrapposizione di questi stati. Per esempio lo stato di Bell 1 √ (|00i + |11i) 2 è entangled. Se facciamo una misura sul primo qubit, abbiamo due possibili risultati: 0 con probabilità 1/2, facendo collassare la funzione d’onda nello stato |ϕ0i = |00i, e 1 ancora con probabilità 1/2 restituendo |ϕ0i = |11i. Il fatto sorprendente è che una misura sul secondo qubit da sempre lo stesso risultato ottenuto dalla misura del primo: le misure sono perfettamente correlate, al 100%. Questa correlazione cosı̀ forte, priva di analogo classico ha suscitato grande interesse nel mondo scientifico ed è stata oggetto di approfonditi studi. 3.2 Esperimento concettuale di Bohm Figura 3.1: Esperimento concettuale di David Bohm. Un modo conveniente di discutere l’entanglement è considerare l’esperimento proposto dal fisico americano David Bohn nel 1952. Partiamo da una particella senza spin. Questa particella è fatta in modo tale da decadere in due particelle, una di spin 1/2 e l’altra di spin −1/2. Se misuriamo gli spin delle particelle a una certa distanza dalla sorgente e lungo una certa direzione, 13 essi sono sempre antiparalleli fra loro. Questa è una conseguenza diretta della conservazione del momento angolare in meccanica quantistica. Di primo acchito il fatto che gli spin delle due particelle debbano essere opposti sembra del tutto innocuo, ma nasconde sorprese incredibili se ci chiediamo lungo quale direzione queste due particelle hanno lo spin antiparallelo. Una misura lungo qualunque direzione dello spin ci restituisce sempre o 1/2 o −1/2. Supponiamo di prendere una particella nello stato spin-up lungo la direzione z e facciamone una misura lungo una nuova direzione, per esempio y. Come sappiamo dall’esperimento di Stern-Gerlach, lo spin della particella ha il 50% di probabilità di trovarsi nella nuova direzione e il 50% nella direzione opposta. Se gli spin possono essere rivolti in una direzione o nell’altra, potrebbe darsi che siano uguali nei due casi. Questo però è in contraddizione con il fatto che in ogni misurazione, lungo qualsiasi direzione, gli spin debbano sempre essere opposti. Che cosa risponde la fisica quantistica? In pieno accordo con la considerazione che tutte le direzioni per lo spin siano ugualmente plausibili, afferma che le direzioni lungo le quali è orientato lo spin non sono ancora fissate. Nessuna particella ha uno spin prima di essere misurata. Se però una delle particelle viene misurata lungo una qualsiasi direzione, soddisfa a caso una delle due possibilità, cioè di essere parallela o antiparallela rispetto a questa direzione. L’altra particella, a prescindere dalla distanza, assumerà esattamente la direzione opposta. La misurazione di una particella quindi stabilisce automaticamente lo stato in cui si trova l’altra. Come già accennato in precedenza, i risultati delle misurazioni sono perfettamente correlati se misuriamo lo spin lungo la stessa direzione, ma lo spin delle singole particelle non può assolutamente essere determinato. Abbiamo cosı̀ due processi casuali, perfettamente legati tra loro a grandi distanze. Einstein chiamava questo fenomeno “azione fantasma a distanza”e sperava di darne una spiegazione che si basasse su altri concetti più profondi, ma non vi riuscı̀. Dio gioca a dadi, e lo fa piuttosto bene. 14 3.3 Correlazioni perfette e scoperta di Bell L’entanglement restituisce dunque correlazioni perfette. Anche nella fisica classica e nella realtà quotidiana esistono casi di questo tipo. Il più noto nella realtà di tutti i giorni è quello dei gemelli monozigoti. Come è risaputo, essi hanno esattamente le stesse caratteristiche fisiche; oggi sappiamo anche qual è la causa delle somiglianze tra gemelli: il medesimo patrimonio genetico. Il punto essenziale è che nella realtà quotidiana, le correlazioni perfette si possono capire facilmente grazie al fatto che due sistemi sono stati creati con proprietà esattamente uguali, o che almeno le proprietà dei sistemi sono state fissate dagli stessi meccanismi nascosti. Sembrerebbe ovvio cercare questi meccanismi nascosti anche nei sistemi della fisica quantistica che presentano correlazioni perfette. Forse le particelle contengono istruzioni che determinano a priori il risultato di qualsiasi misurazione concepibile? No, non è vero, come dimostra il teorema di Bell. Esso risponde a questa domanda: è possibile, in linea di principio, spiegare le correlazioni esistenti tra due sistemi quantistici entangled in base alle caratteristiche dei sistemi stessi? Queste istruzioni sono parametri aggiuntivi che spesso vengono chiamati variabili nascoste. Bell dimostrò che esiste una contraddizione fra la fisica quantistica e questi modelli a variabili nascoste, detti anche teorie realistiche locali. In esse le proprietà dei sistemi dipendono solo da ciò che accade a loro, da quale misurazione viene eseguita; la proprietà osservata è indipendente dalle misurazioni eseguite in altri sistemi. A causa del fenomeno dell’entanglement, nella fisica quantistica dobbiamo rinunciare al principio di località e permettere che la misura di un sistema influenzi un’altra effettuata ad una distanza arbitraria, in modo tale da avere correlazioni perfette. 3.4 Descrizione formale Dopo aver introdotto l’entanglement da un punto di vista per cosı̀ dire euristico, diamone una caratterizzazione formale. La costruzione matematica 15 di uno stato a due qubit si basa sull’idea del prodotto tensoriale, un’idea che introduciamo con un semplice esempio. Denotiamo con HA lo spazio vettoriale bidimensionale delle funzioni fA (x) con, per esempio, il vettore di base {cos x, sin x}: fA (x) = λA cos x + µA sin x e sia HB un’altro spazio vettoriale bidimensionale di funzioni fB (y) con il vettore di base {cos y, sin y}: fB (x) = λB cos y + µB sin y Possiamo costruire una funzione di due variabili chiamata “prodotto tensoriale fra fA e fB ”come: fA (x) fB (y) =λA λB cos x cos y + λA µB cos x sin y + µA λB sin x cos y + µA µB sin x sin y Una possibile base dello spazio formato dal prodotto tensoriale è: {cos x cos y, cos x sin y, sin x cos y, sin x sin y} Ogni funzione in questo spazio può essere decomposta su questa base: g (x, y) = α cos x cos y + β cos x sin y + γ sin x cos y + δ sin x sin y ma questa funzione in generale non è esprimibile in termini di prodotto tensoriale fA (x) fB (y). Condizione necessaria e sufficiente affinché questo accada è αδ = βγ. Usiamo ora questa procedura per costruire lo stato a due qubit matematicamente. Il primo qubit A vive in uno spazio di Hilbert HA con base ortonormale {|0A i, |1A i}, e il secondo qubit B vive in uno spazio di Hilbert HB con base ortonormale {|0B i, |1B i}. È naturale rappresentare lo stato fisico in cui il primo qubit è nello stato |0A i e il secondo è nello stato |0B i con un vettore 16 |X00 i = |0A ⊗ 0B i. Prendendo in considerazione tutti i possibili valori dei qubit, abbiamo a priori quattro possibilità: |X00 i = |0A ⊗ 0B i |X01 i = |0A ⊗ 1B i |X10 i = |1A ⊗ 0B i |X11 i = |1A ⊗ 1B i La notazione ⊗ sta per prodotto tensoriale. È facile costruire uno stato nel quale il qubit A è nello stato normalizzato |λA |2 + |µA |2 = 1 |ϕA i = λA |0A i + µA |1A i e il qubit B è nello stato normalizzato |λB |2 + |µB |2 = 1 |ϕB i = λB |0B i + µB |1B i Possiamo denotare questo stato come |ϕA ⊗ ϕB i: |ϕA ⊗ ϕB i =λA λB |0A ⊗ 0B i + λA µB |0A ⊗ 1B i + µA λB |1A ⊗ 0B i + µA µB |1A ⊗ 1B i = λA λB |X00 i + λA µB |X01 i + µA λB |X10 i + µA µB |X11 i La corrispondenza con il precedente spazio funzionale è ovvia. Abbiamo costruito lo spazio HA ⊗ HB come il prodotto tensoriale degli spazi HA e HB . Il vettore |ϕA ⊗ ϕB i è ancora normalizzato. Esistono varie notazioni per questi spazi: possiamo trovare appunto |ϕA ⊗ ϕB i, come pure |ϕA i ⊗ |ϕB i o anche |ϕA ϕB i con il simbolo di prodotto tensoriale omesso. Il punto cruciale è che lo stato più generale dello spazio HA ⊗ HB non è nella forma del prodotto tensoriale |ϕA i ⊗ |ϕB i; gli stati della forma |ϕA i ⊗ |ϕB i sono solo un piccolo sottoinsieme dei vettori di HA ⊗ HB . Lo stato più generale è della forma |Ψi =α00 |0A ⊗ 0B i + α01 |0A ⊗ 1B i + α10 |1A ⊗ 0B i + α11 |1A ⊗ 1B i =α00 |X00 i + α01 |X01 i + α10 |X10 i + α11 |X11 i La condizione necessaria e sufficiente affinché lo stato |ψi sia della forma |ϕA ⊗ ϕB i è: α00 α11 = α01 α10 17 (3.1) che a priori non è detto che sia soddisfatta. Diamo un esempio molto semplice di uno stato |Φi che non è nella forma |ϕA ⊗ ϕB i : 1 |Φi = √ (|0A ⊗ 1B i + |1A ⊗ 0B i) 2 Verifichiamo le relazioni esistenti fra i coefficienti: (3.2) 1 α01 = α10 = √ 2 α00 = α11 = 0 Notiamo che α00 α11 6= α01 α10 . La condizione espressa dall’equazione (3.1) non è soddisfatta quindi lo stato preso in esame non è nella forma |ϕA ⊗ ϕB i. Uno stato a due qubit che non può essere espresso nella forma |ϕA ⊗ ϕB i è chiamato stato entangled. Ma come è effettivamente costruito il prodotto tensoriale? Definiamo il prodotto tensoriale MA ⊗ MB di due operatori MA e MB come [MA ⊗ MB ]iA pB ;jA qB = [MA ]iA jA [MA ]pB qB A titolo esemplificativo, consideriamo il prodotto tensoriale di due matrici 2 × 2: MA = a b ! MB = c d α β ! γ δ La matrice MA ⊗ MB è una matrice 4 × 4, con le righe e le colonne ordinate come 00, 01, 10, 11: MA ⊗ MB = aMB bMB ! cMB dMB aα aβ bα bβ aγ aδ bγ bδ = cα cβ dα dβ cγ cδ dγ dδ La proprietà fondamentale di un sistema entangled è la seguente: se |Ψi è uno stato entangled, allora il qubit A non può essere in uno stato definito |ϕA i. Verifichiamo ciò in un caso particolare, quello dello stato |Φi dell’equazione 18 (3.2). Assumiamo che M sia una proprietà fisica del qubit A ovvero che M sia l’operatore autoaggiunto associato alla variabile M agente sul qubit A. Calcoliamo il valore di aspettazione hΦ|M Φi: 1 hM iΦ = h0A ⊗ 1B | + h1A ⊗ 0B | | (M 0A ) ⊗ 1B i + | (M 1A ) ⊗ 0B i 2 1 h0A |M 0A i + h1A |M 1A i = 2 (3.3) dove abbiamo usato h0B |0B i = h1B |1B i = 1 h0B |1B i = h1B |0B i = 0. Ora proviamo che non esiste uno stato |ϕA i = λ|0A i + µ|1A i tale che hΦ|M Φi = hϕA |M ϕA i. Calcolando il valore di aspettazione di M , otteniamo hϕA |M ϕA i = |λ|2 h0A |M 0A i+(λ∗ µh0A |M 1A i + λµ∗ h1A |M 0A i)+|µ|2 h1A |M 1A i. Una condizione necessaria per riprodurre il risultato dell’equazione (3.3) √ dovrebbe essere |λ| = |µ| = 1/ 2, ma cosı̀ facendo i termini che coinvolgono λ∗ µ e λµ∗ rimangono, in contraddizione con (3.3). Il risultato ottenuto nell’equazione (3.3) ha una interpretazione fisica molto semplice: lo stato del qubit A è un mix incorente del 50% dello stato |0A i e 50% dello stato |1A i, e non una sovrapposizione lineare. In generale, non è possibile descrivere una parte del sistema con un vettore di stato. 3.5 Realizzazione di uno stato entanglement Ottenere uno stato entanglement partendo da un prodotto tensoriale non è immediato. È necessario introdurre un’interazione tra i due qubit. Prendiamo come esempio un sistema di due particelle a spin 1/2. Una possibile 19 interazione tra i due spin è: Ĥ = ~ω ~σA · ~σB 2 Introduciamo l’operatore di SWAP definito come 1 2 (I + ~σA · ~σB ). Esso agisce su un generico stato |iji nel seguente modo: 1 (I + ~σA · ~σB ) |iji = |jii 2 Da cui otteniamo che (~σA · ~σB ) |iji = 2|jii − |iji (3.4) Si perviene ai seguenti risultati 1 . (~σA · ~σB ) √ (|10i + |01i) = (~σA · ~σB ) |Φ+ i = |Φ+ i 2 1 . (~σA · ~σB ) √ (|10i − |01i) = (~σA · ~σB ) |Φ− i = −3|Φ− i 2 I vettori di stato |Φ+ i e |Φ− i sono autovettori di ~σA · ~σB con autovalori rispettivamente +1 e −3. Partiamo da uno stato non entangled, per esempio |Φ (t = 0)i = |10i. Per ottenere l’evoluto temporale è sufficiente decomporre questo stato sugli autostati |Φ+ i e |Φ− i: 1 |Φ (t = 0)i = √ (|Φ+ i + |Φ− i) 2 Applichiamo ora l’operatore di evoluzione temporale 1 e−iĤt/~ |Φ (0)i = √ e−iωt/2 |Φ+ i + e3iωt/2 |Φ− i 2 1 = √ e−iωt/2 e−iωt |Φ+ i + eiωt |Φ− i 2 1 = e−iωt + eiωt |10i + e−iωt − eiωt |01i 2 = eiωt/2 (cos ωt|10i − i sin ωt|01i) . Scegliendo ωt = π/4 si ottiene lo stato |Ψi: 1 |Ψi = √ (|10i − i|01i) . 2 Questo è uno stato entangled. 20 Capitolo 4 Quantum Fourier Transform A good idea has a way of becoming simpler and solving problems other than that for which it was intended. Robert Tarjan 4.1 Definizione Nell’ambito scientifico, uno dei più importanti ed eleganti metodi di risoluzione dei problemi consiste nel trasformare il problema dato in un altro equivalente di cui si conosce già la soluzione. Ci sono poche trasformazioni di questo tipo che appaiono nei contesti più diversi e ci aiutano a risolvere svariati tipi di problemi. Una grande scoperta della computazione quantistica è stata che alcune di queste trasformazioni possono essere compiute molto più velocemente su un computer quantistico rispetto ad un computer classico, fatto che ha permesso la costruzione di algoritmi efficienti da utilizzare su computer quantistici. Una di queste trasformazioni è la trasformata di Fourier discreta (DFT). Nell’usuale notazione matematica, la trasformata di Fourier discreta prende in input un vettore di numeri complessi, x0 , . . . , xN −1 dove la lunghezza N del vettore è un parametro fissato. In output la DFT restituisce un altro 21 vettore di numeri complessi y0 , . . . , yN −1 definito da N −1 . 1 X yk = √ xj e2πijk/N N j=0 La trasformata di Fourier quantistica è esattamente la medesima trasformazione, anche se la notazione è un po’ differente. La trasformata di Fourier quantistica di una base ortonormale |0i, . . . |N − 1i è definita come un operatore lineare che agisce sugli stati di base nel seguente modo N −1 1 X 2πijk/N |ji −→ √ e |ki N k=0 (4.1) In maniera del tutto analoga, l’azione su uno stato arbitrario può essere descritta come N −1 X xj |ji −→ j=0 N −1 X yk |ki (4.2) k=0 dove i coefficienti yk sono ottenuti applicando la DFT ai coefficienti xj . Non è ovvio dalla definizione, ma questa trasformazione è unitaria e quindi può essere utilizzata in algoritmi per computer quantistici; questo è proprio quello che faremo nel capitolo 5 dove utilizzeremo la DFT nell’algoritmo che simula il comportamento di una particella quantistica sottoposta ad un potenziale arbitrariamente scelto. 4.2 Trattazione operatoriale Diamo ora una descrizione della trasformata di Fourier in termini di operatori quanto-meccanici. L’idea è che nell’effettiva implementazione in un computer quantistico gli operatori corrispondano a porte logiche, atte a compiere precise operazioni sui qubit. Assumiamo di avere un registro quantistico composto da L qubit che quindi può contenere un qualsiasi numero x, da 0 a 2L − 1. Ogni numero decimale può essere espresso nello stato |xi = |xL−1 xL−2 . . . x1 x0 i = |xL−1 i ⊗ |xL−2 i ⊗ . . . |x1 i ⊗ |x0 i 22 (4.3) dove x= L−1 X xi 2i (xi = 0, 1) i=0 Introduciamo l’operatore Aj che agisce solo sul j-esimo qubit. Questo operatore “mescola” in un modo opportuno i due stati di base, |0j i e |1j i, del j-esimo qubit. La forma esplicita dell’operatore Aj è 1 Aj = √ |0j ih0j | + |0j ih1j | + |1j ih0j | − |1j ih1j | 2 (j = 0, . . . , L − 1) . Definiamo ora un operatore a due qubit che agisce sugli stati j-esimo e k-esimo nel modo seguente: Bjk = |0jk ih0jk | + |1jk ih1jk | + |2jk ih2jk | + eiθjk |3jk ih3jk | θjk = (4.4) π 2k−j In (4.4) è stata usata la seguente notazione: |0jk i = |0j 0k i |1jk i = |0j 1k i |2jk i = |1j 0k i |3jk i = |1j 1k i Vediamo l’azione dell’operatore Aj : 1 Aj |0j i = √ |0j i + |1j i 2 1 Aj |1j i = √ |0j i − |1j i 2 e dell’operatore Bjk : Bjk |0jk i = |0jk i Bjk |2jk i = |2jk i Bjk |1jk i = |1jk i iπ Bjk |3jk i = exp k−j |3jk i 2 È evidente che l’operatore Bjk cambia solo lo stato |3jk i = |1j , 1k i 23 (4.5) (4.6) modificandone la fase. Gli operatori quanto-meccanici Aj e Bjk permettono di eseguire la DFT di una funzione d’onda. Per far ciò, si applica l’operatore AL−1 allo stato |xi. Poi si applica (AL−2 BL−2,L−1 ) allo stato risultante. Dopodiché si applicano i seguenti operatori AL−3 BL−3,L−2 BL−3,L−1 AL−4 BL−4,L−3 BL−4,L−2 BL−4,L−1 e cosı̀ via. Nell’esempio considerato applicheremo tre gruppi di operatori: A2 , poi (A1 B12 ) ed infine (A0 B01 B02 ). In totale quindi dovremo pervenire a A0 B01 B02 A1 B12 A2 |xi (4.7) A titolo esemplificativo consideriamo lo stato |xi = |2i = |x2 x1 x0 i = |010i (4.8) Primo step: 1 A2 |xi = A2 |2i = A2 |x2 i|x1 i|x0 i = A2 |0i|1i|0i = √ |0i + |1i |1i|0i 2 Secondo step: 1 1 iπ/2 B12 A2 |2i = B12 √ |0i + |1i |1i|0i = √ |0i|1i|0i + e |1i|1i|0i 2 2 Terzo step: 1 iπ/2 A1 B12 A2 |2i = |0i |0i − |1i |0i + e |1i |0i − |1i |0i = 2 1 iπ/2 iπ/2 = |0i|0i|0i − |0i|1i|0i + e |1i|0i|0i − e |1i|1i|0i 2 L’operatore B02 non cambia lo stato ottenuto perchè opera solo sugli stati |1k1i. Anche l’operatore B01 non modifica nulla dell’ultimo stato perchè agisce solo sugli stati della forma |k11i. 24 Non ci resta che applicare l’operatore A0 1 A0 B01 B02 A1 B12 A2 |2i = |0i|0i |0i + |1i − |0i|1i |0i + |1i + 2 iπ/2 iπ/2 e |1i|0i |0i + |1i − e |1i|1i |0i + |1i = 1 |000i + |001i − |010i + |011i + =√ 8 i |100i + |101i − i |110i + |111i Adesso “invertiamo” i qubit (ovvero, per il caso di tre qubit, eseguiamo la trasformazione |ijki → |kjii) ed arriviamo alla funzione d’onda finale 1 √ |000i + |100i − |010i + |110i + i |001i + |101i − i |011i + |111i 8 In notazione decimale il nostro stato è 1 √ |0i + |4i − |2i + |6i + i |1i + |5i − i |3i + |7i 8 (4.9) È facile verificare che l’equazione (4.9) è la trasformata di Fourier discreta di (4.8). ll nostro gruppo di operatori (4.7) esegue quindi una DFT. Facciamo notare che per eseguire la trasformata di Fourier di L qubit servono L operazioni Aj e [L (L − 1) /2] operazioni Bjk . Il numero di step necessari è perciò O (L2 ). 25 Capitolo 5 Costruzione del Quantum Simulator In natural science, Nature has given us a world and we’re just to discover its laws. In computer, we can stuff laws into it and create a world. Alan Kay The best way to predict the future is to implement it. David Heinemeier Hansson 5.1 Cos’è una simulazione quantistica Comprendere a fondo la Natura è l’intendimento di tutti i fisici. Gli scienziati pongono domande all’Universo, investigano ed elaborano teorie con l’obiettivo di capire il significato più recondito dei fenomeni fisici, costruendo modelli che li possano spiegare con eleganza e naturalezza. Molte volte capita di giungere ad una legge, ad una equazione che ci permette di condensare in essa tutta la dinamica del sistema esaminato; per esempio, in meccanica classica abbiamo la legge di Newton, in elettrostatica la legge di Poisson, in elettrodinamica l’equazione delle onde e in meccanica quantistica l’equazione di Schrödinger. In ogni campo, la questione è sempre 26 la medesima: dato uno stato iniziale, si deve determinare quale sarà lo stato del sistema dopo un generico istante di tempo. Rispondere a questa domanda è in teoria semplice, ma in pratica molto difficile. Semplice perchè, nota la dinamica del sistema considerato, sappiamo tutto su come evolve, basta trovare le soluzioni delle equazioni differenziali. Ed è proprio questo il punto: risolvere equazioni. Questo ambito è molto problematico, soprattutto se si considera che il più delle volte non esistono metodi generali per trovare soluzioni al problema dato. È logico, d’altro canto, che dobbiamo pur sfruttare in qualche maniera le informazioni che ci forniscono queste equazioni. Il procedimento che si segue è l’approssimazione. Le soluzioni che descrivono la dinamica del sistema sono ottenute approssimando lo stato con una rappresentazione digitale, discretizzando nello spazio e nel tempo l’equazione differenziale da risolvere. Poi si procede per via iterativa, applicando una procedura che, nello spazio discretizzato, ci conduca step by step dallo stato iniziale a quello finale. Ovviamente questo modo di procedere introduce degli errori ; sarà cura dell’analista numerico garantirci che l’errore sia limitato e che cresca poco all’aumentare del numero di iterazioni in modo da rendere il metodo fruibile e sensato. Alcuni sistemi dinamici però non possono essere simulati su computer classici in modo efficiente ed i sistemi quantistici ne sono un esempio. La legge che sta alla base del mondo microscopico è l’equazione di Schrödinger: i~ ∂ |ψi = Ĥ|ψi ∂t (5.1) È un’equazione alle derivate parziali di tipo ellittico, molto simile all’equazione della diffusione1 la cui risoluzione non pone particolari problemi. Il problema è che per simulare un sistema quantistico dobbiamo risolvere un numero in genere esponenzialmente grande di equazioni differenziali ordinarie. Una particella con spin 1/2 che evolve secondo l’equazione di Schrödinger 1 Per consentire un confronto immediato riportiamo l’equazione di diffusione: ~ 2 ϕ = 1 ∂ϕ ∇ a2 ∂t 27 ci conduce ad un sistema di due equazioni differenziali, per due particelle quattro equazioni; e per n particelle, 2n equazioni. Bastano quindi dieci o venti particelle per rendere di dimensioni titaniche i sistemi da risolvere, rispettivamente formati da 1.024 e 1.048.576 equazioni. In generale, per seguire l’evoluzione di un sistema quantistico, un computer classico deve assegnare un’operazione specifica a tutte le componenti della funzione d’onda, ma come già detto il numero di queste operazioni cresce esponenzialmente al crescere delle dimensioni del sistema. I computer classici quindi non riescono a riprodurre con efficienza il mondo microscopico, ma può farlo un computer quantistico. Essendo di per sé un sistema fisico, è sufficiente mettere in corrispondenza biunivoca le varie parti del sistema da simulare con i qubit di un computer quantistico: le interazioni fisiche diventano cosı̀ operazioni logiche, e la simulazione è cosı̀ precisa che i due oggetti (il computer e il sistema da simulare) si comportano esattamente allo stesso modo, tanto da diventare a tutti gli effetti indistinguibili. La simulazione è efficiente, in due sensi: il numero di qubit necessari è uguale al numero di qubit del sistema da simulare e il numero di operazioni elementari richieste è proporzionale al tempo in cui si svolge l’evoluzione del sistema. In primo luogo, si deve scomporre il sistema nelle sue componenti, cioè lo si deve dividere in un numero di qubit sufficiente a descrivere le sue caratteristiche e la sua evoluzione. In secondo luogo, si devono far corrispondere le interazioni tra le parti ad altrettante operazioni logiche tra i qubit. La potenza della simulazione da parte di un quantum computer si può apprezzare ancor di più prendendo in considerazione la distinzione tra digitale e analogico. Le variabili della fisica classica, cioè quantità come posizione, velocità, energia sono continue. Un computer digitale classico utilizza variabili discrete, i bit. Per trattare una quantità continua, un calcolatore digitale deve prima discretizzarla. In un computer quantistico non c’è nessuna distinzione tra analogico e digitale. I quanti sono discreti per definizione, e si può instaurare una corrispondenza biunivoca tra i loro stati e gli stati dei qubit, in modo naturale e senza fare approssimazioni. I qubit però hanno 28 anche natura ondulatoria, e quindi sono variabili continue il che permette loro di essere sovrapposizioni continue di stati. Onde e particelle: concetti diversissimi che grazie alla relazione di De Broglie vengono uniti in modo indissolubile. 5.2 Algoritmo del Quantum Simulator In questa sezione descriveremo l’algoritmo del quantum simulator. Lo scopo principale di questo lavoro è mostrare come effettivamente operi un computer quantistico, emulando il suo funzionamento con un programma in Fortran. Arriveremo a mostrare come un registro da 6 - 10 qubit sia in grado di risolvere in modo efficiente problemi standard di meccanica quantistica. Data l’equazione di Schrödinger i~ ∂ |ψi = Ĥ|ψi ∂t (5.2) e supposta l’hamiltoniana indipendente dal tempo, troviamo che un generico stato al tempo t può essere ottenuto applicando l’operatore di evoluzione temporale Ut al ket iniziale: |ψ (t)i = Ût |ψ (0)i = e−iĤt/~ |ψ (0)i (5.3) Consideriamo un moto quanto-meccanico di una particella in una dimensione; l’equazione di Schrödinger diventa i~ ∂ ψ (x, t) = Ĥψ (x, t) ∂t (5.4) dove l’hamiltoniana Ĥ è data da Ĥ = Ĥ0 + V̂ (x) = − e V̂ (x) è un potenziale unidimensionale. 29 ~2 ∂ 2 + V̂ (x) 2m ∂x2 (5.5) Discretizzazione Per risolvere l’equazione (5.4) su un quantum computer con un numero finito di risorse (un numero finito di qubit e una sequenza altrettanto finita di quantum gate) dobbiamo prima discretizzare le variabili continue x e t. Se il moto si svolge in una regione finita, diciamo −d ≤ x ≤ d, decomponiamo questa regione in 2n intervalli di lunghezza ∆x = 2d 2n (5.6) Rappresenteremo questi intervalli nello spazio di Hilbert di un registro quantistico di n qubit. Da ciò notiamo un fatto molto vantaggioso: lo step di discretizzazione decresce esponenzialmente con il numero di qubit. Per esempio, considerando come regione da simulare −5 ≤ x ≤ 5, otteniamo ∆x ≈ 0.156 e ∆x ≈ 0.039 rispettivamente utilizzando 6 e 8 qubit. La funzione d’onda ψ (x, t) è approssimata da n −1 2X k=0 dove n 2 −1 1 X ck (t) |ki = ψ (xk , t) |ki N k=0 1 xk = −d + k + ∆x, 2 (5.7) (5.8) |ki = |kn−1 i|kn−2 i . . . |k0 i è lo stato della base associata al registro quantistico da n qubit, e il fattore v u2n −1 uX N ≡t |ψ(xk , t)|2 (5.9) k=0 assicura che la funzione d’onda discretizzata sia normalizzata. L’equazione (5.7) fornisce una buona approssimazione di |ψi quando la discretizzazione ∆x è molto più piccola delle dimensioni caratteristiche del sistema2 da considerare. 2 Le dimensioni caratteristiche di un sistema determinano le condizioni di un dato prob- lema concreto, dando un’indicazione su quale sia la scala spaziale del sistema fisico da considerare; un esempio di dimensione caratteristica può essere il range di variazione del potenziale. 30 Evoluzione temporale L’equazione (5.4) può essere formalmente integrata propagando la funzione d’onda iniziale ψ (x, 0) per ogni step ε come segue: ψ (x, t + ε) = e−i(Ĥ0 +V̂ (x))ε/~ ψ (x, t) (5.10) Non è detto che gli operatori Ĥ0 e V̂ commutino. In generale infatti si ha che e−i(Ĥ0 +V̂ )t/~ 6= e−iĤ0 t/~ e−iV̂ t/~ (5.11) A questo punto però si può applicare la Trotter decomposition, un teorema di approssimazione asintotico che è alla base degli algoritmi di simulazione quantistica. Teorema: Trotter decomposition Siano  e B̂ due operatori hermitiani. Allora per ogni t reale, n lim eiÂt/n eiB̂t/n = ei(Â+B̂ )t n→∞ (5.12) Dimostrazione. Per definizione iÂt/n e e inoltre iÂt/n iB̂t/n e e 1 1 = I + iÂt + O 2 n n 1 1 = I + i  + B̂ t + O 2 n n Da cui iÂt/n iB̂t/n n e e Considerando che n k X 1 n 1 + O =I+ i  + B̂ t n k nk k=1 n 1 1 1 = 1+O k k n k! n arriviamo a lim n→∞ eiÂt/n eiB̂t/n n k n i  + B̂ t X 1 1 = lim 1+O +O = ei(Â+B̂ )t n→∞ k! n n k=0 31 Come possiamo notare non c’è nessuna ipotesi sul commutatore di  e B̂ h i quindi questo risultato vale anche se Â, B̂ 6= 0, anzi è proprio per questo che è tanto importante. Ovviamente vale anche la seguente relazione: ei(Â+B̂ )∆t = eiÂ∆t eiB̂∆t + O ∆t2 Ritorniamo ora al problema da noi considerato cioè ψ (x, t + ε) = e−i(Ĥ0 +V̂ (x))ε/~ ψ (x, t) . Se ε è sufficientemente piccolo possiamo scrivere e−i(Ĥ0 +V̂ (x))ε/~ ≈ e−iĤ0 ε/~ e−iV̂ (x)ε/~ oppure in maniera del tutto analoga e−i(Ĥ0 +V̂ (x))ε/~ ≈ e−iV̂ (x)ε/~ e−iĤ0 ε/~ (5.13) In entrambe le scritture si compie un errore O (ε2 ) se gli operatori Ĥ0 e V̂ non commutano. L’operatore alla destra dell’uguale nell’equazione (5.13) è ancora unitario ed è molto più facile da trattare numericamente di quello a sinistra. Il nostro problema ora si riconduce ad applicare due operatori: Ĥ0 (particella libera) e V̂ (potenziale unidimensionale). Operatore H0 (particella libera) Dobbiamo dapprima applicare l’operatore e−iĤ0 ε/~ . Sappiamo che l’operatore momento nello spazio delle configurazioni ha la seguente forma: hx|P̂ |ψi = −i~ ∂ ∂ hx|ψi = −i~ ψ (x) ∂x ∂x (5.14) facilmente generalizzabile anche per una potenza n-esima di P̂ : hx|P̂ n |ψi = (−i~)n n ∂n n ∂ hx|ψi = (−i~) ψ (x) ∂xn ∂xn Dato che l’hamiltoniana di una particella libera è Ĥ0 = p̂2 , 2m nello spazio delle configurazioni questo operatore è un operatore di derivata seconda. 32 Chiaramente, la derivazione è un’operazione molto delicata dal punto di vista computazionale perchè essa implica un passaggio al limite che porta con sé inevitabili errori di approssimazione. Per evitare di compiere operazioni di derivazione passiamo nello spazio degli impulsi. Nello spazio dei momenti infatti l’operatore P̂ non è più un operatore di derivazione, ma si riduce ad un operatore di moltiplicazione. Inizialmente, la nostra funzione d’onda è scritta nello spazio delle configurazioni: Z |ψi = |xihx|ψidx Troviamo la rappresentazione di |ψi nello spazio dei momenti moltiplicando per il bra hp|: Z hp|ψi = Z hp|xihx|ψidx = hp|xiψ (x) dx (5.15) Sappiamo inoltre che gli autostati del momento nello spazio delle configurazioni sono delle onde piane3 , cioè hx|pi = √ i 1 e− ~ px 2π~ Sostituendo in (5.15) otteniamo: Z − i px e ~ √ hp|ψi = ψ (x) dx = ψe (p) 2π~ (5.16) Questa non è altro che la trasformata di Fourier. Dall’equazione (5.16) si ricava che F [ψ (x)] = ψe (p) 3 (5.17) Per dimostrarlo utilizziamo (5.14) scegliendo |ψi autoket |pi dell’impulso; otteniamo hx|p̂|pi = −i~ cioè ∂ hx|pi ∂x ∂ hx|pi ∂x Questa è un’equazione differenziale del primo ordine la cui soluzione è ipx hx|pi = N exp − ~ phx|pi = −i~ Infine N si ricava facilmente scrivendo hp0 |pi. 33 La trasformazione che ci permette di passare dalla spazio delle coordinate a quello dei momenti è la trasformata di Fourier. Sappiamo inoltre che vale l’identità di Parseval che ci garantisce l’identità della norma nei due spazi: 2 e kψ(x)k2 = kψ(p)k e quindi possiamo continuare a dare al modulo quadro della funzione d’onda un’interpretazione legata alla probabilità. Tutte le considerazioni fatte finora continuano a valere anche per il caso discreto: basta infatti sostituire gli integrali con sommatorie e tutto vale in maniera analoga. L’idea quindi è la seguente: eseguire dapprima la trasformata di Fourier per passare dalla rappresentazione delle configurazioni a quella dei momenti, poi applicare l’operatore di evoluzione libera che in questo spazio è di moltiplicazione, ed infine applicare la trasformata di Fourier inversa per ritornare nello spazio di partenza, ovvero quello delle configurazioni. L’operatore H0 si può quindi riscrivere nel seguente modo: e−iH0 ε/~ = F −1 e−i(p 2 /2m )ε/~ F (5.18) dove con F si indica l’operatore che esegue la trasformata di Fourier. Ricordiamoci ora che il nostro sistema è discreto quindi F sta a rappresentare la trasformata di Fourier quantistica; in più facciamo notare che essa può essere efficientemente implementata in un computer quantistico come dimostrato nel capitolo 4. Operatore V̂ (x) (potenziale unidimensionale) Dopo aver applicato l’operatore dell’equazione (5.18) la nostra funzione d’onda è nello spazio delle coordinate. In questo spazio l’operatore V̂ (x) è un operatore di moltiplicazione. Concludendo, la funzione d’onda ψ (x, t) al tempo t = kε si ottiene (a meno di un O (ε2 )) dalla funzione iniziale ψ (x, 0) applicando l’operatore unitario e−iV (x)ε/~ F −1 e−i(p 34 2 /2m )ε/~ F (5.19) k volte. La simulazione dell’equazione di Schrödinger è perciò ridotta all’implementazione della trasformata di Fourier (e della sua inversa) e quindi all’applicazione di operatori della forma |xi −→ eif (x) |xi (5.20) Facciamo notare infatti che sia Ĥ0 che V̂ sono della forma (5.20), dove il primo è scritto nella rappresentazione dei momenti. 5.3 Emulazione su un computer classico Per illustrare il funzionamento di un quantum simulator, lo emuliamo su un computer classico, pagando però come pegno un decadimento esponenziale delle prestazioni rispetto ad una vera computazione quantistica. L’inefficienza di una simulazione classica è dovuta al fatto che per replicare l’azione di un’elementare porta quantistica su un computer tradizionale, abbiamo bisogno di calcolare tutti i 2n coefficienti della funzione d’onda descritti nell’equazione (5.7); ricordiamo infatti che n è il numero dei qubit del registro quantistico considerato. Un’altra differenza fondamentale fra la computazione classica e quella quantistica è l’accesso ai dati. In una simulazione quantistica, contrariamente a ciò che accade classicamente, non possiamo determinare la funzione d’onda ψ (x, t) dopo una singola simulazione. Ogni run è seguito dalla proiezione della funzione d’onda sulla base degli stati computazionali, operazione che da come risultato xk con probabilità |hk|ψ (x, t)i|2 . Di conseguenza, la distribuzione di probabilità |ψ (x, t) |2 può essere ricostruita, a meno di errori statistici, solo se la simulazione è ripetuta molte volte. Se il risultato xk è ottenuto Mk volte in M esecuzioni, possiamo stimare la probabilità nel seguente modo: n 2 −1 Mk X |ψ (x, t) | = N |ψ(xk , t)|2 = M M k=0 2 2 Mk (5.21) dove si è utilizzato il fattore di normalizzazione N definito nell’equazione (5.9). 35 Nei capitoli che seguono simuleremo problemi elementari di meccanica quantistica, utilizzando il quantum simulator appena costruito. 36 Capitolo 6 Simulazione di una particella in evoluzione libera Computer programming is an art form, like the creation of poetry or music. Donald Knuth 6.1 Descrizione del sistema In questo capitolo simuleremo l’evoluzione del sistema in assoluto più semplice cioè una particella in evoluzione libera. L’hamiltoniana associata a questo sistema è la seguente: p̂2 (6.1) 2m Ovviamente la dinamica classica è chiarissima: la particella si muove di moto Ĥ = rettilineo uniforme. Per trovare ciò introduciamo un apparato formale che all’inizio sembrerà una superflua complicazione, ma che nel seguito si rivelerà molto utile per calcolare l’indeterminazione del sistema. Dato ÂH un operatore nella rappresentazione di Heisenberg, l’equazione di Heisenberg si può scrivere nella seguente forma: i ∂ ÂH 1 h (t) = ÂH (t) , Ĥ ∂t i~ 37 (6.2) Essa ci fornisce la dinamica del nostro sistema in termini di operatori. Applichiamo ora l’equazione (7.7) alle variabili dinamiche del nostro sistema, ovvero a x̂ e p̂. Cominciamo dall’operatore p̂. i ∂ p̂ h 1 2 i~ = p̂, Ĥ = p̂, p̂ = 0 ∂t 2m L’operatore p̂ è una costante del moto, come ci aspettavamo. Applichiamo ora l’equazione di evoluzione di Heisenberg per l’operatore x̂: i ∂ x̂ h 1 1 2 p̂ i~ = x̂, Ĥ = x̂, p̂ = 2p̂i~ = i~ ∂t 2m 2m m Ne risulta: p̂ p̂ (0) ∂ x̂ = = ∂t m m dove si è utilizzata l’informazione che p̂ è costante del moto. Integrando l’equazione differenziale troviamo p̂ (0) x̂ (t) = x̂ (0) + t (6.3) m ovvero gli operatori quantistici si muovono, in analogia con le variabili dinamiche classiche, di moto rettilineo uniforme. Ora calcoliamo l’indeterminazione del nostro sistema. Il commutatore dell’operatore posizione per tempi diversi è diverso da zero; nello specifico p̂ (0) t i~t [x̂ (t) , x̂ (0)] = x̂ (0) + t, x̂ (0) = [p̂ (0) , x̂ (0)] = − (6.4) m m m Questo commutatore cresce linearmente con il tempo. Possiamo ora applicare la relazione di indeterminazione di Heisenberg a questi due operatori ottenendo 2 2 h(∆x) it h(∆x) it=0 2 ~2 t2 1 ≥ h x̂ (t) , x̂ (0) i = 4 4m2 (6.5) Da cui troviamo lo sparpagliamento (“spreading”) della posizione al tempo t: ~t 1 (6.6) 2m ∆x (0) Questa relazione implica che tanto più la particella è localizzata all’istante ini∆x (t) ≥ ziale, tanto più la sua indeterminazione diventa grande durante l’evoluzione. Inoltre, lo spreading cresce linearmente con il tempo. 38 6.2 Spreading di una funzione d’onda gaussiana Consideriamo dapprima il caso in cui lo stato iniziale sia di forma gaussiana: (x − x0 )2 1 exp − (6.7) ψ (x, 0) = 2σ 2 (π)1/4 (σ)1/2 Applicando l’operatore di evoluzione temporale Ut = e−iĤt/~ allo stato iniziale, dopo qualche conto troviamo: r ! p0 t 2 2 4σ x − 1 1 m exp − q |ψ(x, t)|2 = 2 2 πσ 2 1 + ~t2 4σ 4 + 4~m2t (6.8) m2 σ 4 ovvero una gaussiana centrata in x̄ = p0 t . m Il centro della gaussiana si muove dunque di moto rettilineo uniforme; calco2 . Si ha che: liamone la varianza σX 2 σX (t) = Da cui otteniamo σ2 ~2 t2 + 2 2m2 σ 2 s ~2 t2 σX (t) = σX (0) 1+ 2 4 mσ (6.9) (6.10) La varianza cresce linearmente con il tempo. Man mano che il tempo cresce si perdono tutte le informazioni sul sistema perché la particella si sparpaglia e si ottiene ben presto una probabilità uniforme di trovarla dappertutto. Simulazione Simuliamo ora questo sistema con il quantum simulator. Per semplicità, in tutte le simulazioni considereremo ~ = m = 1. Indichiamo con ε lo step temporale e con k il numero totale di step temporali considerati. Dove non diversamente specificato, abbiamo utilizzato per la simulazione 8 qubit. Possiamo notare dal grafico proposto in figura (6.1) l’aumento dello spreading con il tempo; già in un piccolo intervallo di tempo la particella si è sparpagliata notevolmente. Cerchiamo di dare una caratterizzazione quantitativa 39 (a) Grafico 3D (b) Grafico 2D Figura 6.1: Funzione d’onda gaussiana in evoluzione libera. Parametri: σin = 0.5, ε = 0.01, k = 120, x0 = 0 40 a questo fenomeno, calcolando l’indeterminazione della funzione d’onda ad ogni step temporale considerato. La varianza di un operatore è cosı̀ definita: ∆A2 = hA2 i − hAi2 Calcoliamo la varianza dell’operatore x̂ sullo stato |ψi. Il valor medio dell’operatore x̂ sullo stato |ψi Z hxi = hψ|x|ψi = x|ψ (x, t)|2 dx ed il secondo momento della distribuzione Z 2 2 hx i = hψ|x |ψi = x2 |ψ (x, t)|2 dx Il nostro problema però è discretizzato, quindi gli integrali diventano sommatorie nella variabile della discretizzazione j. La varianza dell’operatore x̂ ha la seguente forma: !2 ∆x2 = X x2 |ψ (x, t)|2 − X j x|ψ (x, t)|2 (6.11) j Analogamente si procede per l’operatore p̂ e si calcola l’indeterminazione ∆x∆p. Il risultato trovato è esposto in figura (6.4). Esso è in completo accordo con l’espressione dell’indeterminazione che si ricava facilmente dall’equazione (6.10): s ~2 t2 1+ 2 4 mσ s ~2 t2 = ∆p (0) ∆x (0) 1+ 2 4 mσ ~ σ ∆x (t) ∆p (t) = √ √ σ 2 2 (6.12) dove abbiamo utilizzato che il ∆p è costante nel tempo. A questo punto cerchiamo di fare un parallelismo con la meccanica classica. Supponiamo di prendere uno sciame di particelle classiche entro l’intervallo ∆x∆p e di valutare lo sparpagliamento dello sciame al tempo t. Ogni particella si muove di moto rettilineo uniforme x= p t m 41 Figura 6.2: Andamento dell’indeterminazione della funzione d’onda gaussiana mostrata in figura (6.1) in evoluzione libera. In blu il caso quantistico trovato con il simulatore ed in rosso lo spreading classico: per grandi tempi gli sparpagliamenti coincidono. Se si considera un’incertezza sul momento δp si ha un’incertezza sulla posizione: δp t m Supponendo che l’incertezza in p sia la stessa del pacchetto quantistico δxclassico = otteniamo: ~ t σm che è l’andamento dello sparpagliamento quantistico per tempi molto grandi. δxclassico = Cerchiamo ora lo stato per cui lo spreading è il minimo possibile. Dall’equazione (6.12) è infatti facile rendersi conto che la Gaussiana da considerare è quella con σ = 1. Con questa scelta del parametro σ le indeterminazioni in √ x e in p sono le stesse e valgono 1/ 2. Se già dalla figura (6.3) possiamo intuire che lo spreading della funzione d’onda è molto piccolo nel caso di minima indeterminazione, nel grafico (6.4) ne abbiamo una conferma quantitativa. Concludiamo questa sezione analizzando l’andamento dell’indeterminazione 42 (a) Grafico 3D (b) Grafico 2D Figura 6.3: Pacchetto gaussiano di minima indeterminazione in evoluzione libera. Parametri: σin = 1, ε = 0.01, k = 120, x0 = 0 43 Figura 6.4: In viola l’andamento dell’indeterminazione del pacchetto gaussiano con σ = 1 mostrato in figura (6.3). In blu riportiamo per un confronto il pacchetto (σ = 0.5) di figura (6.1). al variare del parametro σ della nostra gaussiana. È immediato rendersi conto che al diminuire della varianza, la funzione d’onda iniziale risulta sempre più localizzata nello spazio delle configurazioni. Il caso limite è quello della delta di Dirac che otteniamo per σ che tende a zero. Direttamente dall’equazione (6.6) sappiamo che tanto più la particella è localizzata all’istante iniziale, tanto più lo spreading cresce durante l’evoluzione. In figura (6.5) abbiamo utilizzato una gaussiana molto stretta che può considerarsi un’approssimazione della delta di Dirac; si può notare l’entità dello spreading confrontando questo grafico con la gaussiana di minima indeterminazione in figura (6.3). Facciamo notare la differenza fra gli intervalli temporali considerati (1.2 secondi nella figura (6.3) contro 0.15 secondi della figura (6.5)). 44 Figura 6.5: Evoluzione libera di una gaussiana molto piccata. Parametri: σin = 0.05, ε = 0.001, k = 150, x0 = 0 45 Capitolo 7 Simulazione di un oscillatore armonico Say not, “I have found the truth”, but rather “I have found a truth”. Kahlil Gibran 7.1 Descrizione del sistema In questo capitolo simuleremo l’evoluzione dell’oscillatore armonico. Consideriamo una particella che compie piccole oscillazioni unidimensionali. L’energia potenziale di tale particella è uguale a mω 2 x2 /2 dove ω rappresenta nella meccanica classica la frequenza propria delle oscillazioni. L’hamiltoniana quantistica associata a questo sistema dinamico è quindi la seguente: Ĥ = p̂2 1 + mω 2 x̂2 2m 2 (7.1) Poichè l’energia potenziale diventa infinita per x ± ∞, la particella può compiere soltanto un moto finito e, di conseguenza, tutto lo spettro energetico dell’oscillatore sarà discreto. L’equazione di Schrödinger per il problema considerato ha la forma d2 ψ 2m + 2 dx2 ~ mω 2 x2 E− ψ=0 2 46 (7.2) È comodo introdurre la variabile adimensionale ξ definita dalla relazione r mω ξ= x ~ Si ottiene allora l’equazione 00 ψ + 2E 2 −ξ ψ =0 ~ω Per grandi ξ si può trascurare 2E/~ω rispetto a ξ 2 . L’equazione ξ 00 = ξ 2 ψ ha come integrali asintotici ψ = e±ξ 2 /2 (la derivazione di questa funzione dà infatti, trascurando i termini di ordine inferiore in ξ, ψ 00 = ξ 2 ψ). Dato che la funzione d’onda ψ deve essere finita per ξ = ±∞, nell’esponente occorre scegliere il segno meno. In relazione a ciò, è naturale fare nell’equazione (7.2) la sostituzione ψ = e−ξ 2 /2 χ (ξ) Per la funzione χ (ξ) si ottiene la seguente equazione (introduciamo la notazione 2E/~ω − 1 = 2n) χ00 − 2ξχ0 + 2nχ = 0 (7.3) da risolvere con la condizione che la funzione χ deve essere finita per tutte le ξ finite, e per ξ = ±∞ essa può crescere indefinitamente, ma non più rapidamente di una potenza finita di ξ (in modo che la funzione ψ tenda a zero). Le soluzioni dell’equazione (7.3) corrispondenti ai diversi valori interi positivi di n sono χ = costante · Hn (ξ) dove Hn (ξ) sono polinomi di grado n in ξ, detti polinomi di Hermite, dati dalla formula 2 dn e−ξ dξ n Determinando la costante in modo tale che le funzioni ψn siano normalizzate, Hn (ξ) = (−1)n eξ 2 otteniamo finalmente ψn (x) = mω 1/4 π~ r mω 2 1 mω − 2~ x √ Hn x e ~ 2n n! 47 (7.4) Ad esempio, la funzione d’onda dello stato fondamentale è data da mω 1/4 mω 2 ψ0 (x) = e− 2~ x (7.5) π~ e quella del primo stato eccitato √ 2 mω 3/4 − mω x2 ψ1 (x) = 1/4 xe 2~ (7.6) π ~ Per trovare la dinamica di questo sistema utilizziamo l’equazione del moto di Heisenberg. Dato ÂH un operatore nella rappresentazione di Heisenberg, l’equazione della dinamica quantistica si può scrivere nella seguente forma: i 1 h dÂH (t) = ÂH (t) , Ĥ (7.7) dt ih Applichiamo ora l’equazione (7.7) alle variabili dinamiche del nostro sistema, ovvero a x̂ e p̂. i~ i dx̂ h 1 2 1 p̂ = x̂, Ĥ = x̂, p̂ = 2p̂i~ = i~ dt 2m 2m m Ne risulta: p̂ dx̂ = dt m Da cui otteniamo: p̂ (0) sin ωt mω Una trattazione analoga per l’operatore momento ci conduce a: x̂ (t) = x̂ (0) cos ωt + p̂ (t) = −mωx̂ (0) sin ωt + p̂ (0) cos ωt (7.8) (7.9) Le equazioni (7.8) e (7.9) derivate dal moto quantistico appaiono uguali alle equazioni classiche.1 Facciamo osservare che gli operatori x̂ e p̂ oscillano 1 Questo fatto non ci stupisce più di tanto; nel 1925 P.A.M. Dirac osservò che le varie relazioni quanto-meccaniche possono essere ottenute dalle corrispondenti relazioni classiche semplicemente sostituendo alle parentesi di Poisson i commutatori nel modo seguente {, } −→ [, ] i~ Ricordiamo che le parentesi di Poisson classiche sono definite, per funzioni di q e p, da X ∂A ∂B ∂A ∂B {A (q, p) , B (q, p)} ≡ − ∂qs ∂ps ∂ps ∂qs s 48 come i loro analoghi classici. Si potrebbe pensare, guardando le equazioni (7.8) e (7.9), che anche i valori medi degli operatori oscillino con pulsazione ω. È facile però rendersi conto che questa supposizione è errata. Prendiamo un autostato dell’energia, caratterizzato da un certo valore di n; si ha che il valore medio hn|x̂ (t)|ni è nullo perchè x̂ e p̂ cambiano n in n ± 1, e |ni è ortogonale a |n ± 1i. Per avere oscillazioni simili a quelle classiche dobbiamo avere una sovrapposizione di autostati dell’energia come |ψi = c0 |0i + c1 |1i Per esempio consideriamo questa combinazione lineare di autostati 1 |ψi = √ |0i + |1i 2 (7.10) e calcoliamone il valor medio di x̂ usando gli operatori di creazione e distruzione ↠e â . r ~ † h0| + h1| â + â |0i + |1i 2mω r 1 ~ † = h0|â (t) |1i + h1|â (t) |0i 2 2mω 1 hψ|x̂|ψi = 2 Sapendo che â (t) = â (0) e−iωt ↠(t) = ↠(0) eiωt otteniamo: r ~ cos ωt (7.11) 2mω Considerazioni analoghe per p̂ ci fanno concludere che esso sarà proporzionale hψ|x̂ (t)|ψi = alla funzione seno. A partire dall’equazione (7.10), moltiplicando per il bra hx| otteniamo: 1 hx|ψi = √ hx|0i + hx|1i 2 49 (7.12) Questa è una combinazione lineare delle prime due autofunzioni dell’oscillatore armonico, definite dall’espressione (7.4) e che sono riportate nelle equazioni (7.5) e (7.6). Abbiamo simulato l’evoluzione temporale dei valori medi di x̂ e p̂ con il quantum simulator ; il risultato esposto in figura (7.2) è in pieno accordo con quanto trovato nell’equazione (7.11). Questi stati però si sparpagliano in modo infinito al crescere del tempo. Dobbiamo quindi intraprendere un’altra strada, prendendo in considerazione gli stati coerenti. 50 Figura 7.1: Funzione d’onda dell’equazione (7.10) nello spazio delle configurazioni. Le funzioni tratteggiate sono la prima e la seconda autofunzione dell’oscillatore armonico, mentre quella in viola è la sovrapposizione da noi considerata. Figura 7.2: Riportiamo i valori medi degli operatori x̂ (in rosso) e p̂ (in blu). Essi oscillano come i loro omologhi classici. 51 7.2 Stati coerenti Il nostro obiettivo è costruire una sovrapposizione di autostati dell’energia in maniera da meglio mimare l’oscillatore classico, ovvero vogliamo un pacchetto che rimbalzi avanti e indietro senza che la sua forma si allarghi. Gli stati coerenti fanno al caso nostro. Essi sono definiti dall’equazione agli autovalori per l’operatore di distruzione non hermitiano â: z∈C â|zi = z|zi Vediamo qual è l’espressione di queste ampiezze di probabilità. Le funzioni d’onda cercate debbono avere la forma: ip̄x (x − x0 )2 1 exp − − iϕ (t) ψ (x, t) = ~ 4 (δx)2 (2π)1/4 (δx)1/2 (7.13) dove x̄ = x̄ (t) e p̄ = p̄ (t) = mx̄˙ (t) sono i valori medi della coordinata e della quantità di moto. Ricordando che per l’oscillatore armonico p̄˙ = −mω 2 x, si ottiene: x̄¨ + ω 2 x̄ = 0 (7.14) cioè la funzione x̄ (t) soddisfa l’equazione del moto classica. Il coefficiente costante nell’equazione (7.13) è determinato al solito imponendo la condizione di normalizzazione; oltre a questo fattore, ψ può contenere ancora un moltiplicatore di fase con la fase ϕ (t) dipendente dal tempo. Le incognite, la costante δx e la funzione ϕ (t) si trovano sostituendo la (7.13) nell’equazione d’onda ~2 ∂ 2 ψ mω 2 x2 ∂ψ + ψ = i~ 2 2m ∂x 2 ∂t Tenendo conto della (7.14), dopo la sostituzione otteniamo 2 2 2 2 2 x mω 1 m x̄˙ x̄2 1 m − xx̄ − + − + − ϕ̇ (t) = 0 2 ~2 2~2 ~ 4 (δx)4 8 (δx)4 4 (δx)2 − da cui (δx)2 = ~/2mω e quindi ϕ̇ = ω m 2 x̄˙ − ω 2 x̄2 + 2~ 2 ϕ= 52 1 ω p̄x̄ + t 2~ 2 Si ha in definitiva 1/4 ip̄x mω (x − x̄)2 −iωt ip̄x̄ mω exp − exp − (7.15) ψ (x, t) = π~ ~ 2~ 2 2~ Questa funzione d’onda è una gaussiana centrata attorno al valor medio dell’operatore posizione. La cosa più importante ai fini della nostra trattazione è che questa funzione è sempre un pacchetto di minima indeterminazione, per ogni istante di tempo considerato. Considerando x̄ = 0 e p̄ = 0, l’equazione (7.15) si riduce alla funzione d’onda dello stato fondamentale dell’oscillatore armonico. L’energia media dell’oscillatore è data da p̄2 mω 2 x̄2 ~ω 1 Ē = + + ≡ ~ω n̄ + ; 2m 2 2 2 la grandezza n̄ introdotta qui è il numero medio di quanti ~ω nello stato considerato. Si vede che esso è completamente definito da una funzione x̄ (t) che soddisfi l’equazione classica (7.14). Questa funzione in generale si scrive mωx̄ + ip̄ √ = âe−iωt 2m~ω Essa descrive il legame che intercorre fra lo stato considerato e i valori medi della posizione e del momento. La funzione (7.15) può essere sviluppata secondo le funzioni d’onda degli stati stazionari φn dell’oscillatore ∞ X 1 ψ= an ψ n ψn (x, t) = φn (x) exp −i n + ωt 2 n=0 I coefficienti dello sviluppo si calcolano come integrali Z +∞ an = (ψn∗ ψ) dx −∞ Da qui la probabilità che l’oscillatore si trovi nello stato n è wn = |an |2 = e−n̄ n̄n n! (7.16) cioè è data dalla nota distribuzione di Poisson. Abbiamo quindi una sovrapposizione infinita di tutti gli stati dell’energia, ognuno considerato con il proprio peso. 53 Simulazione Consideriamo come funzione d’onda iniziale il seguente stato coerente: ! 1 (x − x0 )2 i ψ (x, 0) = exp − + p0 (x − x0 ) (7.17) 2 ~ (π)1/4 e valutiamone l’evoluto temporale utilizzando il quantum simulator. I risultati trovati sono riportati in figura (7.3) e in figura (7.4). L’evoluzione temporale degli stati coerenti è in tutto simile alla dinamica dell’oscillatore classico. La funzione d’onda rimane localizzata; l’indeterminazione come possiamo notare dal grafico (7.5) rimane costante nel tempo. Figura 7.3: Evoluzione di uno stato coerente. Parametri in riferimento all’equazione (7.17): x0 = 2.5, p0 = 0; ε = π/80, k = 320. 54 Figura 7.4: Evoluzione di uno stato coerente. Parametri in riferimento all’equazione (7.17): x0 = 1, p0 = −2; ε = π/80, k = 320. Figura 7.5: Andamento dell’indeterminazione dello stato coerente di figura (7.3): è una costante. 55 7.3 Stati non coerenti In questo capitolo simuleremo l’evoluzione temporale di stati non coerenti, il cui spreading non è costante nel tempo. 7.3.1 Stati di forma gaussiana Cominciamo prendendo in esame stati di forma gaussiana: ! 1 (x − x0 )2 ψ (x, 0) = exp − 2σ 2 (π)1/4 (σ)1/2 (7.18) Contrariamente a quanto accadeva per gli stati coerenti, le funzioni d’onda della forma (7.18) sono soggette ad uno sparpagliamento maggiore come possiamo notare dalla figura (7.6). (a) Distribuzione di probabilità (b) Indeterminazione Figura 7.6: Evoluzione temporale di uno stato gaussiano. Parametri in riferimento all’equazione (7.18): x0 = 2.5, σ = 2; ε = π/40, k = 160. 56 7.3.2 Stati di forma rettangolare Analizziamo uno stato di forma rettangolare: 1 √ per x0 − η ≤ x ≤ x0 + η 2η ψ (x, 0) = 0 altrove (7.19) Può essere interessante un confronto fra le figure (7.6) e (7.7). L’andamento tutto sommato è il medesimo; ciò che cambia, però, sono i valori dell’indeterminazione, molto più grandi in questo caso rispetto al profilo gaussiano. (a) Distribuzione di probabilità (b) Indeterminazione Figura 7.7: Evoluzione temporale di uno stato di forma rettangolare. Parametri in riferimento all’equazione (7.19): x0 = 2.5, η = 1; ε = π/40, k = 160. 57 7.3.3 Stati di forma lorenziana Consideriamo ora stati di forma lorenziana: r ξ 3/2 2 ψ (x, 0) = π (x − x0 )2 + ξ 2 (7.20) È facile verificare che questo stato è normalizzato. Osservando l’evoluzione dello stato lorenziano, possiamo notare come essa sia molto simile a quella del pacchetto gaussiano; ciò non ci stupisce più di tanto se pensiamo all’affinità tra il profilo della gaussiana e quello della lorenziana. Dando uno sguardo al grafico dell’indeterminazione, vediamo una profonda somiglianza con l’andamento del pacchetto gaussiano. (a) Distribuzione di probabilità (b) Indeterminazione Figura 7.8: Evoluzione temporale di uno stato lorenziano. Parametri in riferimento all’equazione (7.20): x0 = 3.5, ξ = 2; ε = π/40, k = 160. 58 7.4 Onde contropropaganti: interferenza Concludiamo questo capitolo prendendo in esame l’evoluzione temporale di due pacchetti gaussiani contropropaganti. La funzione d’onda iniziale quindi è una sovrapposizione di due gaussiane: ! (x − x1 )2 1 exp − ϕ1 (x, 0) = (7.21) 2σ 2 (π)1/4 (σ)1/2 ! 1 (x − x2 )2 ϕ2 (x, 0) = (7.22) exp − 2σ 2 (π)1/4 (σ)1/2 I parametri scelti per la simulazione sono stati i seguenti: σ = 0.5, x1 = 5, x2 = −5. Il risultato ottenuto è quello di figura (7.9). Si riconosce chiaramente un pattern di interferenza, fenomeno tipico del mondo ondulatorio. E fin qui nulla di strano. La stravaganza di questo risultato emerge prepotentemente quando andiamo a riflettere sul significato fisico di ciò che rappresentiamo con questo grafico, ovvero una densità di probabilità relativa ad una particella, al suo poter essere o non essere in una determinata posizione. La conclusione a cui si giunge è che nel mondo quantistico anche le particelle fanno interferenza. Ad ogni particella, infatti, è associata un’onda, secondo la relazione di De Broglie: p = ~k. A questo punto una domanda sorge spontanea: perchè allora nel mondo macroscopico in cui viviamo non vediamo gli oggetti interferire? In prima istanza perchè le lunghezze d’onda associate a oggetti mascroscopici sono piccolissime, dato che ~ ≈ 1.06 · 10−34 [J · S]. In secondo luogo perchè c’è il fenomeno della decoerenza: gli oggetti macroscopici interagiscono di continuo con l’ambiente esterno e ciò distrugge la delicata sovrapposizione quantistica degli stati; viene quindi meno la loro natura ondulatoria. Questo campo è oggetto di ferventi studi poichè anche i qubit di un computer quantistico sono soggetti all’interazione con l’ambiente esterno e ciò provoca errori; lo scopo è di limitare al massimo questo accoppiamento e di costrui- 59 re degli appositi codici di correzione che ci permettano di risolvere questi problemi. Figura 7.9: Sovrapposizione di due pacchetti d’onda contropropaganti in un potenziale armonico. È evidente il parallelismo con l’esperimento della doppia fenditura del medico inglese Thomas Young. 60 Capitolo 8 Simulazione di una particella in un campo uniforme The purpose of computing is insight, not numbers. R.W. Hamming Models are to be used, but non to be believed. Henri Theil 8.1 Descrizione del sistema Consideriamo il moto di una particella in un campo esterno uniforme. Orientiamo il campo lungo l’asse x, e sia F la forza agente sulla particella nel campo; in un campo elettrico E questa forza è uguale a F = eE, dove e è la carica della particella. L’energia potenziale di una particella in un campo uniforme si scrive U = −F x + cost; scegliendo la costante in modo tale che si abbia U = 0 per x = 0, si ottiene U = −F x. L’equazione di Schrödinger per il problema considerato ha la forma d2 ψ 2m + 2 (E + F x) ψ = 0 (8.1) dx2 ~ Poichè U tende a +∞ per x → −∞, e U → −∞ per x → +∞, è a priori evidente che i livelli energetici formano uno spettro continuo che riempie tutto 61 l’intervallo dei valori da −∞ a +∞. Tutti questi autovalori corrispondono a un moto finito nella direzione di x = −∞ e infinito nella direzione x → +∞. Introduciamo in sostituzione della coordinata la variabile adimensionale 1/3 2mF E ξ = x+ F ~2 Allora l’equazione (8.1) assume la forma ψ 00 + ξψ = 0 (8.2) Questa equazione non contiene più il parametro energia. Di conseguenza, ottenuta la sua soluzione che soddisfa le condizioni di finitezza, avremo l’autofunzione per valori arbitrari dell’energia. L’espressione (8.2) è un’equazione nota in fisica-matematica; la soluzione finita per tutte le x ha la seguente forma: ψ (ξ) = AΦ (−ξ) dove 1 Φ (ξ) = √ π Z ∞ cos 0 u2 + uξ du 3 (8.3) (8.4) è la cosiddetta funzione d’Airy, ed A è un parametro di normalizzazione definito da: A= (2m)1/3 π 1/2 F 1/3 ~2/3 Figura 8.1: Funzione di Airy. 62 Per trovare la dinamica del sistema utilizziamo al solito le equazioni del moto di Heisenberg. L’hamiltoniana associata al sistema da noi considerato è la seguente: p̂2 + αx̂ (8.5) 2m dove α è un parametro reale. Il potenziale considerato è quindi di tipo lineare. Ĥ = Scriviamo ora l’evoluzione dell’operatore di Heisenberg p̂: i dp̂ h i~ = p̂, Ĥ = [p̂, αx̂] = (−i~) α dt dp̂ ⇒ = −α dt e per x̂: i p̂2 i~ dx̂ h i~ = x̂, Ĥ = x̂, = p̂ dt 2m m dx̂ p̂ ⇒ = dt m Combinando le due equazioni differenziali otteniamo: d2 x̂ dp̂ 1 α = =− 2 dt dt m m (8.6) che descrive il moto di una particella accelerata. Integrando due volte e utilizzando opportune costanti di integrazione perveniamo a x̂ (t) = x̂ (0) + p̂ (0) t − (α/2m) t2 (8.7) p̂ (t) = p̂ (0) − αt (8.8) che sono le medesime dell’evoluzione classica, facilmente deducibili utilizzando le equazioni di Hamilton. Riconduciamo ora le nostre equazioni operatoriali a qualcosa di osservabile considerandone i valori medi; per il teorema di Ehrenfest possiamo scrivere d2 m 2 hx̂i = −h∇V̂ (x)i = −α dt (8.9) da cui capiamo che i valori medi seguono esattamente la stessa legge del caso classico. 63 8.2 Simulazione Prendiamo in esame al solito uno stato di forma gaussiana ! 1 (x − x0 )2 ψ (x, 0) = exp − 2σ 2 (π)1/4 (σ)1/2 (8.10) e simuliamo la sua evoluzione temporale sottoposto al potenziale lineare V = αx. In figura (8.2) riportiamo il risultato della simulazione. Figura 8.2: Evoluzione di una particella in un campo uniforme. Parametri considerati: x0 = −2.5, σ = 0.5; α = −5; ε = 0.01, k = 120. 64 Analizziamo i dati ottenuti. Innanzitutto, si nota immediatamente che il valor medio della posizione cresce in maniera quadratica, cosa che già ci aspettavamo dall’equazione (8.9). In figura (8.3) abbiamo riportato i grafici dei valori di aspettazione di x̂ e p̂ nello stato da noi considerato. Ovviamente l’andamento del valor medio di p̂ è lineare nel tempo. (a) x̂ medio (b) p̂ medio Figura 8.3: Evoluzione dei valori medi degli operatori x̂ e p̂ ottenuta con il quantum simulator. Per quanto riguada lo sparpagliamento della funzione d’onda, il risultato che troveremo è per certi versi sorprendente. In virtù del teorema di Ehrenfest si ha: d d d (∆p)2 = hp2 i − 2hpi hpi = −2αhpi + 2αhpi = 0 dt dt dt (8.11) risultato questo che essendo indipendente da α, coincide con il caso della particella libera (α = 0). Un analogo discorso vale per l’operatore x̂ e quindi possiamo concludere che lo spreading della funzione d’onda associato alla particella accelerata coincide con quello della particella libera. In figura (8.4) riportiamo i risultati ottenuti dalla simulazione; i due spreading effettivamente coincidono. 65 (a) Potenziale lineare (b) Evoluzione libera (c) Indeterminazione con potenziale lineare (d) Indeterminazione in evoluzione libera Figura 8.4: Confronto fra lo spreading di una particella sottoposta ad un potenziale lineare ed un’altra in evoluzione libera. I due sparpagliamenti sono identici. 66 Capitolo 9 Simulazione di una particella sottoposta a buche e gradini di potenziale Errors, like straws, upon the surface flow; He who would search for pearls must dive below. John Dryden We are all in the gutter, but some of us are looking at the stars. Oscar Wilde 9.1 Barriera di potenziale In questa sezione descriveremo il moto di una particella sottoposta ad un potenziale unidimensionale di tipo barriera e ne simuleremo l’evoluzione con il quantum simulator. Sarà interessante notare le differenze rispetto al comportamento previsto dalla meccanica classica. 67 9.1.1 Descrizione del sistema Cominciamo questo capitolo dedicato ai potenziali discontinui prendendo in considerazione la barriera di potenziale. La funzione da analizzare è la seguente: U (x) = 0 x≤0 U x>0 0 (9.1) dove U0 è un parametro reale positivo. Il nostro obiettivo è duplice: da un lato determinare la natura delle soluzioni Figura 9.1: Barriera di potenziale. dell’equazione di Schrödinger agli stati stazionari, dall’altro calcolare i coefficienti di riflessione e trasmissione. Nella regione I l’equazione stazionaria di Schrödinger è − ~2 d2 ψI (x) = EψI (x) 2m dx2 mentre nella regione II si ha − ~2 d2 ψII (x) = (E − U0 ) ψII (x) 2m dx2 Occorre ora distinguere i due casi: (a) E > U0 e (b) E < U0 . 68 Caso (a) Consideriamo dapprima E > U0 . La soluzione dell’equazione di Schrödinger nelle due regioni è ψI (x) = Aeikx + Be−ikx (9.2) ψII (x) = Ceiqx + De−iqx dove 2mE >0 ~2 2m (E − U0 ) q2 = >0 ~2 k2 = Supponendo la particella proveniente da x = −∞ si può porre D = 0. Imponendo poi la condizione di continuità della funzione d’onda e della sua derivata prima in x = 0 si ottiene un sistema di due equazioni che permettono di esprimere B e C in funzione di A (che si può eventualmente utilizzare per normalizzare la funzione d’onda): A + B =C q A−B = C k La soluzione del sistema è 2k k+q k−q B =A k+q C =A Piuttosto che usare la costante A per normalizzare la funzione d’onda è istruttivo calcolare i coefficienti di riflessione e trasmissione definiti come R= jr ji T = jt ji (9.3) dove ji , jr e jt sono le densità di corrente di probabilità relative all’onda incidente, all’onda riflessa ed a quella trasmessa, calcolati per mezzo della formula i~ j (x) = − 2m dψ ∗ ∗ dψ ψ −ψ dx dx 69 R e T rappresentano fisicamente la probabilità che una particella con energia E > U0 venga riflessa o trasmessa dal gradino di potenziale; queste due quantità quindi devono soddisfare la condizione R + T = 1. Ponendo ψr (x) = Be−ikx ψi (x) = Aeikx ψt (x) = Ceiqx nell’equazione (9.3) si ottiene: ji = ~k |A|2 m jr = ~k |B|2 m jt = ~q |C|2 m e dunque troviamo il coefficiente di trasmissione 2 q C 4kq T = = k A (k + q)2 (9.4) e di riflessione 2 B (k − q)2 R = = A (k + q)2 da cui è immediato verificare che R + T = 1. (9.5) Si noti che, nel limite E → ∞, E − U0 ' E. Ne segue che q2 = 2mE 2m (E − U0 ) ' = k2 2 2 ~ ~ ovvero, essendo q ' k, R = 0. Caso (b) Veniamo ora al caso E < U0 . La soluzione dell’equazione di Schrödinger nelle due regioni è ora ψI (x) = Aeikx + Be−ikx ψII (x) = Ce−qx + Deqx dove 2mE >0 ~2 2m (U0 − E) q2 = >0 ~2 k2 = 70 (9.6) La costante D va posta uguale a zero perchè altrimenti ψII non sarebbe limitata per x → ∞ e dunque risulterebbe priva di significato fisico. Confrontando le equazioni (9.2) e (9.6) è chiaro che le formule relative al caso (b) si possono ottenere dalle formule del caso (a) con la sostituzione q → iq. In particolare, il sistema che si ottiene imponendo la condizione di continuità della funzione d’onda e della sua derivata prima in x = 0 ha come soluzione 2k k + iq k − iq B=A k + iq C=A Infine, il coefficiente di riflessione è 2 B k − iq k + iq =1 R = = A k + iq k − iq (9.7) dunque T = 0, che significa che la particella viene riflessa con probabilità 1. D’altra parte esiste una densità di probabilità ρ (x) non nulla di trovare la particella nella regione II : ρ (x > 0) = |ψII (x)|2 = |A|2 4k 2 −2qx e k2 + q2 (9.8) Tale densità di probabilità è rapidamente decrescente al crescere di x e si può comprendere fisicamente grazie al principio di Heisenberg. Infatti, in un piccolo intorno dell’origine, non è possibile misurare con precisione infinita la posizione della particella, che peraltro risulta avere una certa indeterminazione. Tale indeterminazione è strettamente collegata al valore non nullo di ρ (x) a destra dell’origine. Se la posizione della particella fosse localizzata in un punto, il momento lineare della particella sarebbe infinito. La penetrazione della particella nella barriera di potenziale per E < U0 può essere visualizzata secondo l’analogia ottico-meccanica facendo corrispondere al potenziale l’indice di rifrazione di un mezzo nel quale si disperde un’onda elettromagnetica. 71 9.1.2 Simulazione Prendiamo come funzione d’onda iniziale la seguente gaussiana: ! 1 (x − x0 )2 i ψ (x, 0) = exp − + p0 (x − x0 ) 2σ 2 ~ (π)1/4 (σ)1/2 (9.9) e simuliamo la sua evoluzione se sottoposta ad una barriera di potenziale U0 x < −a U (x) = (9.10) 0 altrove I parametri scelti per la simulazione sono stati i seguenti: σ = 0.7, a = −2.625, p0 = −10. Abbiamo utilizzato n = 6 qubit, uno step temporale molto piccolo (ε = 0.005) ed eseguito k = 120 iterazioni. Sono state effettuate varie simulazioni, variando di volta in volta l’altezza della barriera, cioè il parametro U0 . I risultati sono esposti in figura (9.2); in rosso abbiamo indicato la barriera di potenziale. Proponiamo ora un confronto fra il moto classico e quello quantistico. Per E < U0 una particella classica proveniente da −∞ con velocità costante rimbalza elasticamente contro la barriera di potenziale in x = 0, inverte il suo moto e ritorna verso −∞ con la medesima velocità (in modulo). In meccanica quantistica, invece, c’è una probabilità non nulla che la particella superi la barriera, ovvero penetri nella regione classicamente proibita (ciò è evidente nella figura (9.2(f)). Nell’ipotesi E > U0 invece, la particella classica quando raggiunge la barriera di potenziale abbassa istantaneamente la sua velocità e si muove, con la nuova velocità, verso +∞. Nel mondo quantistico, di contro, c’è una probabilità non nulla che la particella venga riflessa (vedi le figure 9.2 (a)(b)(c)(d)(e)). 72 (a) U0 = 10 (b) U0 = 20 (c) U0 = 30 (d) U0 = 40 (e) U0 = 50 (f) U0 = 70 Figura 9.2: Particella sottoposta ad una barriera di potenziale (al variare di U0 ). 73 9.2 Gradino di potenziale Prendiamo ora in considerazione una particella sottoposta ad un potenziale a gradino. La trattazione è molto simile a quella della sezione precedente. 9.2.1 Descrizione del sistema Il potenziale da studiare è il seguente: U0 U (x) = 0 0<x<a altrove dove U0 è un parametro reale positivo. Figura 9.3: Gradino di potenziale. Nella regione I l’equazione stazionaria di Schrödinger è − ~2 d2 ψI (x) = EψI (x) 2m dx2 nella regione II si ha − ~2 d2 ψII (x) = (E − U0 ) ψII (x) 2m dx2 mentre nella regione III − ~2 d2 ψIII (x) = EψIII (x) 2m dx2 Occorre ora distinguere i due casi: (a) E > U0 e (b) E < U0 . 74 (9.11) Caso (a) La soluzione dell’equazione di Schrödinger nelle tre regioni è ψI (x) = Aeikx + Be−ikx ψII (x) = Ceiqx + De−iqx (9.12) ψIII (x) = Eeikx + F e−ikx dove 2mE >0 ~2 2m (E − U0 ) >0 q2 = ~2 k2 = Supponendo la particella proveniente da x = −∞ si può porre F = 0. Imponendo poi la condizione di continuità della funzione d’onda e della sua derivata prima in x = 0 si ottiene un sistema di quattro equazioni che permettono di esprimere B, C, D ed E in funzione di A (che si può eventualmente utilizzare per normalizzare la funzione d’onda): A + B =C q A − B = (C − D) k iqa −iqa Ce + De =Eeika k Ceiqa − De−iqa = Eeika q Scrivere la soluzione generale del sistema non è particolarmente istruttivo. Più interessante è il calcolo dei coefficienti di riflessione e trasmissione relativi al potenziale in esame. Analogamente a quanto già visto con la barriera di potenziale, ponendo ψi (x) = Aeikx ψr (x) = Be−ikx ψt (x) = Eeiqx nell’equazione (9.3) si ottiene: ji = ~k |A|2 m jr = ~k |B|2 m 75 jt = ~q |E|2 m e dunque 2 E T = A 2 B R = A Procediamo ora al calcolo di T esprimendo A in funzione di E. Sommando le prime due equazioni del sistema si ottiene D k−q C k+q + A= 2 k 2 k (9.13) D’altra parte, sommando e sottraendo fra di loro le ultime due equazioni del medesimo sistema si trova E ia(k−q) k + q C= e 2 q E ia(k+q) k − q D=− e 2 q Sostituendo in (9.13) si giunge a E ika e (k + q)2 e−iaq − (k − q)2 eiaq 4kq E ika e 2kq cos (aq) − i k 2 + q 2 sin (aq) = 2kq A= (9.14) Dunque T = 4k 2 q 2 4k 2 q 2 + (k 2 − q 2 )2 sin2 (aq) e 2 sin2 (aq) (k 2 − q 2 ) R=1−T = 4k 2 q 2 + (k 2 + q 2 )2 sin2 (aq) Se aq = nπ (n = 1, 2 . . .) R = 0 e T = 1, che implica trasparenza assoluta della barriera. Tale fenomeno si chiama effetto Ramsauer-Townsend. Caso (b) La soluzione dell’equazione di Schrödinger nelle tre regioni è ψI (x) = Aeikx + Be−ikx ψII (x) = Ce−qx + Deqx ψIII (x) = Eeikx + F e−ikx 76 (9.15) dove 2mE >0 ~2 2m (U0 − E) q2 = >0 ~2 k2 = Come sempre la costante F va posta uguale a zero poichè supponiamo l’onda incidente da x = −∞. Confrontando le equazioni (9.12) e (9.15) è chiaro che, nel caso in E < U0 , la relazione che lega E ad A si può ottenere direttamente dall’equazione (9.14) con la sostituzione q → iq. Poichè per effetto di questo cambio cos (aq) → cosh (aq) sin (aq) → i sinh (aq) il risultato è: A= E ika e 2kq cosh (aq) − i k 2 − q 2 sinh (aq) 2kq Dunque 4k 2 q 2 T = 4k 2 q 2 + (k 2 + q 2 )2 sinh2 (aq) e 2 sinh2 (aq) (k 2 + q 2 ) R=1−T = 4k 2 q 2 + (k 2 + q 2 )2 sinh2 (aq) Il fatto che T sia diverso da zero implica una probabilità non nulla di passaggio attraverso la barriera anche nel caso E < U0 . Tale fenomeno si chiama effetto tunnel. Per concludere osserviamo che la probabilità di trovare, per effetto tunnel, la particella al di là della barriera è esponenzialmente decrescente nel limite di barriere alte e larghe (aq → ∞). Infatti in tale limite T ∼ 16k 2 q 2 −2aq e (k 2 + q 2 )2 77 9.2.2 Simulazione Consideriamo stati iniziali di forma gaussiana: ψ (x, 0) = 1 (π)1/4 (σ)1/2 (x − x0 )2 i exp − p (x − x ) + 0 0 2σ 2 ~ ! (9.16) e simuliamo la loro evoluzione temporale se sottoposti al potenziale a gradino U0 −a < x < a U (x) = (9.17) 0 altrove I parametri scelti per la simulazione sono stati i seguenti: σ = 0.7, a = 0.875, p0 = −10. Abbiamo utilizzato n = 6 qubit, uno step temporale molto piccolo (ε = 0.005) ed eseguito k = 120 iterazioni. Sono state effettuate varie simulazioni, variando di volta in volta l’altezza del gradino di potenziale, cioè il parametro U0 . I risultati sono esposti in figura (9.4); in rosso abbiamo indicato l’ubicazione del gradino di potenziale per una più facile interpretazione del comportamento del sistema. Può essere interessante ora comparare il moto quantistico da noi simulato con quello di una particella classica con la medesima energia e proveniente da x = −∞. La differenza più importante si ha per E < U0 . La particella classica rimbalza contro il gradino di potenziale; non è possibile penetrare nella barriera. In meccanica quantistica invece abbiamo una probabilità non nulla di passaggio attraverso la barriera anche nel caso E < U0 . Tale fenomeno si chiama effetto tunnel. Possiamo vedere molto bene questa peculiarità della meccanica quantistica volgendo la sguardo alla figura (9.4 (f)). Quando E > U0 , la particella classica è rallentata nella zona dove è presente il gradino di potenziale, ma comunque lo attraversa e continua il suo moto verso +∞. Il pacchetto quantistico invece è quasi sempre parzialmente riflesso (tranne in casi particolari già visti nella sezione precedente). Possiamo apprezzare questo fatto osservando le figure (9.4 (a)(b)(c)(d)(e)). Il limite classico ovviamente si ottiene quando l’energia del pacchetto incidente è molto maggiore dell’altezza della barriera. 78 (a) U0 = 10 (b) U0 = 20 (c) U0 = 30 (d) U0 = 40 (e) U0 = 50 (f) U0 = 60 Figura 9.4: Particella sottoposta ad un potenziale a gradino (al variare di U0 ). 79 Prendiamo ora in esame un potenziale a gradino con un profilo stavolta gaussiano. L’espressione analitica è (x − x0 )2 U (x) = U0 exp − 2σ 2 ! (9.18) dove abbiamo settato U0 = 60 e x0 = 1. Considerando che l’energia della particella incidente è E ' 50, siamo nelle condizioni in cui E < U0 . Ora andiamo a simulare l’evoluzione di questo sistema al variare della larghezza del gradino di potenziale (cioè il parametro σ dell’equazione (9.18)). L’idea è quella di investigare l’effetto tunnel e la sua dipendenza con le dimensioni lineari del potenziale. I risultati sono esposti in figura (9.5). Osservando questi grafici possiamo notare come l’effetto tunnel aumenti al diminuire della larghezza del gradino di potenziale (ricordiamo che U0 è un parametro fissato). Il caso limite, in cui il potenziale è puntiforme, è presentato nella sezione successiva. 80 (a) σ = 0.5 (b) σ = 0.3 (c) σ = 0.16 (d) σ = 0.1 (e) σ = 0.08 (f) σ = 0.05 Figura 9.5: Particella sottoposta ad un gradino di potenziale gaussiano (al variare della larghezza σ della gaussiana). 81 9.3 Potenziale deltiforme Consideriamo ora un potenziale un po’ particolare: la delta di Dirac. La simulazione quantistica di un sistema sottoposto al suddetto potenziale ci darà dei risultati sorprendenti. 9.3.1 Descrizione del sistema Il coefficiente di trasmissione si può ricavare da quello ottenuto considerando il gradino di potenziale considerando il limite con a → 0: 4k 2 q 2 =1 a→0 4k 2 q 2 + (k 2 + q 2 )2 sinh (aq) T = lim (9.19) Si ha quindi trasparenza totale della barriera. Incredibile ma vero. 9.3.2 Simulazione Per simulare la delta di Dirac in un sistema discreto dobbiamo compiere ovviamente delle approssimazioni; la nostra scelta è di considerare una gaussiana molto piccata, cioè con una varianza molto piccola ed un’ampiezza molto grande. In altri termini: (x − x0 )2 ψ (x, 0) = U0 exp − 2σ 2 ! (9.20) con σ = 5 · 10−4 e U0 = 106 . Una particella sottoposta a questo tipo di potenziale non sente la barriera; si ha trasmissione totale. Il risultato trovato è riportato in figura (9.6). Un identico risultato si trova ponendo più delte di Dirac in varie posizioni. Questa configurazione approssima bene il potenziale all’interno di un metallo. 82 Figura 9.6: Evoluzione di una particella sottoposta ad un potenziale deltiforme in x = 0. La particella non “sente”la barriera. 83 Capitolo 10 Simulazione di una particella sottoposta a potenziali anarmonici Computers are good at following instructions, but not at reading your mind. Donald Knuth If you can’t explain it simply, you don’t understand it well enough. Albert Einstein 10.1 Potenziale anarmonico cubico In questa sezione simuleremo l’evoluzione temporale di un sistema sottoposto al seguente potenziale unidimensionale: 1 mω 2 x2 V (x) = 2 αx3 x>0 (10.1) x≤0 Abbiamo quindi sia un potenziale armonico che un potenziale cubico. La nostra funzione d’onda iniziale è uno stato coerente dell’oscillatore ar84 monico (come dimostrato nel capitolo 7): ψ (x, 0) = 1 (π)1/4 i (x − x0 )2 + p0 (x − x0 ) exp − 2 ~ ! (10.2) È importante però far notare che gli stati di questa forma mantengono la minima indeterminazione solo se sottoposti ad un potenziale armonico. Nel nostro caso, invece, vi è anche un potenziale cubico; ciò significa che la funzione d’onda subirà una deformazione ed uno spreading rilevante durante l’evoluzione. Simulazione In riferimento all’equazione (10.2), i parametri da noi considerati sono stati x0 = 2.5 e p0 = 0. Abbiamo posto come al solito ~ = m = ω = 1 e utilizzato n = 6 qubit. Per quanto riguarda il parametro α del potenziale cubico, sono state realizzate diverse simulazioni considerandone valori differenti. In figura (10.1) riportiamo l’evoluzione della funzione d’onda e l’indeterminazione dei due risultati più significativi. Il risultato più interessante dal punto di vista della dinamica quantistica è la perdita di coerenza del pacchetto d’onda già dopo poche oscillazioni, a causa del potenziale cubico. Un altro fatto degno di nota è la deformazione della funzione d’onda; se questo fenomeno si intuisce già nella figura (10.1(a)), nel grafico (10.1(c)) ne abbiamo una prova evidente. Rispetto al risultato ottenuto con il solo potenziale armonico, infatti, la funzione d’onda perde la sua simmetria rispetto all’asse orizzontale; ciò è dovuto al fatto che per x negativi il potenziale è cubico, non armonico. 85 (a) Funzione d’onda (α = −0.1) (b) Indeterminazione (α = −0.1) (c) Funzione d’onda (α = −0.4) (d) Indeterminazione (α = −0.4) Figura 10.1: Evoluzione di una particella sottoposta al potenziale anarmonico dell’equazione (10.1). 86 10.2 Potenziale armonico con perturbazione quartica Prendiamo ora in esame il seguente potenziale: 1 V (x) = mω 2 x2 + βx4 2 (10.3) e simuliamone l’evoluzione. La funzione d’onda iniziale e i parametri considerati sono i medesimi del caso precedente. In figura (10.2) riportiamo i risultati ottenuti per qualche valore del parametro β. (a) β = 0.01 (b) β = 0.02 (c) β = 0.04 (d) β = 0.1 Figura 10.2: Evoluzione di una particella sottoposta al potenziale armonico con perturbazione quartica dell’equazione (10.3). 87 Il nostro sistema è molto sensibile alla perturbazione quartica; basta infatti un valore molto piccolo di β (peso del potenziale quartico) per far sı̀ che la coerenza venga del tutto distrutta già dopo una sola oscillazione. Ciò è ancora più chiaro volgendo lo sguardo ai grafici dell’indeterminazione riportati in figura (10.3). In particolare, il grafico (10.3(d)) ci mostra come l’indeterminazione cresca fino a raggiungere la saturazione numerica del sistema: dopo poche iterazione la particella può stare dappertutto. (a) β = 0.01 (b) β = 0.02 (c) β = 0.04 (d) β = 0.1 Figura 10.3: Evoluzione dell’indeterminazione di una particella sottoposta al potenziale armonico con perturbazione quartica dell’equazione (10.3). Facciamo notare la diversità nella scala dell’asse delle ordinate nei diversi grafici. Nel grafico (d) viene raggiunta la saturazione numerica del sistema in un tempo pari a circa 6s; ovviamente i dati oltre quella soglia non hanno più significato fisico perchè la saturazione è di tipo numerico cioè è dovuta al box di simulazione considerato. 88 Capitolo 11 Conclusioni A great discovery solves a great problem but there is a grain of discovery in the solution of any problem. G. Polya In questo lavoro abbiamo dimostrato che un piccolo registro quantistico da 6-10 qubit è sufficiente a realizzare un simulatore quantistico in grado di risolvere problemi elementari di meccanica quantistica. Per far ciò è stato scritto un programma in Fortran che ci permettesse di studiare il comportamente del sistema fisico di volta in volta considerato. Il simulatore quantistico sviluppato in questa tesi può essere un utile strumento didattico poichè ci permette di conoscere l’evoluzione del problema che ci interessa risolvere, fornendoci un’indicazione precisa sulla natura delle soluzioni. Possiamo quindi controllare, per esempio, i risultati a cui siamo giunti, risolvendo con carta e penna il problema. Molte volte, però, è molto difficile pervenire ad una risoluzione analitica del problema considerato; in questi casi possiamo utilizzare il quantum simulator per capire l’evoluzione del sistema. Un possibile sviluppo del quantum simulator è la sua generalizzazione a tre dimensioni, in modo da poter considerare potenziali V (x, y, z) dipendenti dalle tre variabili spaziali. A questo punto, i risultati ottenuti saranno esposti in tre grafici distinti, in cui compaiono rispettivamente ψ (x, t), ψ (y, t) e 89 ψ (z, t). Molto interessante sarebbe poi passare in coordinate sferiche, con una funzione d’onda ψ (r, ϑ, φ, t), provando magari a simulare problemi di scattering da potenziali arbitrariamente scelti. Considerando poi il moto di una particella sottoposta ad una barriera di potenziale, sarebbe interessante trovare un metodo per determinare quantitativamente il coefficiente di riflessione e di trasmissione, in modo da poterli confrontare con quelli trovati analiticamente. 90 Appendice - Codice sorgente Software and cathedrals are much the same - first we build them, then we pray. Anonymous Programma in Fortran !-----------------------------------------------------------------------------! Simulazione di una particella quantistica sottoposta ad un potenziale V(x) ! Autore: Ziletti Angelo ! Università Cattolica del Sacro Cuore (Brescia) ! Dicembre 2008 !-----------------------------------------------------------------------------PROGRAM Quantum_Simulator IMPLICIT NONE REAL, PARAMETER :: Pi = 3.1415927 !pi greco REAL, PARAMETER :: x0 = 2.5 REAL, PARAMETER :: p0 = 0 REAL, PARAMETER :: s = 1 !sigma REAL, PARAMETER :: d = 5 !intervallo in x del tipo [-d,d] REAL, PARAMETER :: e = Pi/80 !step discretizzazione temporale REAL, PARAMETER :: h = 1 !h tagliato REAL, PARAMETER :: m = 1 !massa INTEGER, PARAMETER :: n = 8 !numero di qubits INTEGER, PARAMETER :: c = 160 !numero di cicli temporali INTEGER :: i,j,k,q,u,t REAL :: dx,NC,Xm,Pm,X2m,P2m,Xind,Pind,indstep COMPLEX :: uim !unità immaginaria REAL,DIMENSION(1:2**n) :: Xj !coordinate spaziali REAL,DIMENSION(1:2**n) :: Pj !momenti REAL,DIMENSION(1:2**n) :: Vj !potenziale COMPLEX,DIMENSION(1:2**n) :: Ybn !step iniziale COMPLEX,DIMENSION(1:c,1:2**n) :: Y !array coefficienti 91 COMPLEX,DIMENSION(1:2**n) :: Yor REAL,DIMENSION(1:2**(n+1)) :: Yror REAL,DIMENSION(1:c,1:2**n) :: Y2 REAL,DIMENSION(1:c,1:2**(n+1)) :: R REAL,DIMENSION(1:c) :: IND !array processato !array processato reale !array probabilità !probabilità e stato !indeterminazione !inizializzazione variabili Xj = 0.0 ; Pj = 0.0 ; Vj = 0.0 Ybn = 0.0 ; Y = 0.0 ; Y2 = 0.0 Yor = 0.0 ; Yror = 0.0 ; R = 0.0 NC = 0 ; q = 0 ; u = 0 ; t = 0 Xm = 0 ; X2m = 0 ; Xind = 0 Pm = 0 ; P2m = 0 ; Pind = 0 indstep = 0 ; IND = 0.0 uim = CMPLX(0,1) !unità immaginaria !step discretizzazione spaziale dx = (2*d)/(2**n) !discretizzazione dell’intervallo spaziale DO j=1,2**n Xj(j) = -d + (j-1)*dx END DO !calcolo della funzione d’onda discretizzata DO j=1,2**n Ybn(j) = (1/(sqrt(sqrt(Pi)*s)))*exp(-((Xj(j)-x0)**2)/(2*(s**2))+ (uim/h)*p0*(Xj(j)-x0)) END DO !ricerca della costante di normalizzazione DO j=1,2**n NC = NC + ABS(Ybn(j))**2 END DO !normalizzazione DO k=1,2**n Y(1,k) = (1/SQRT(NC))*(Ybn(k)) END DO !costruzione dell’array dei momenti DO k=1,2**(n-1)+1 Pj(k) = (2*Pi*(k-1))/((2**n)*dx) END DO DO k=2**(n-1)+1,2**n Pj(k) = (2*Pi*(k-1-2**n))/((2**n)*dx) END DO !costruzione dell’array del potenziale DO j=1,2**n 92 Vj(j) = ((Xj(j))**2)/2 END DO !-----------------------------! evoluzione temporale !-----------------------------DO t=1,c-1 Xm = 0 !inizializzo il valore medio di x X2m = 0 !inizializzo il valore medio di x^2 Xind = 0 !inizializzo l’indeterminazione in x Pm = 0 !inizializzo il valore medio di p P2m = 0 !inizializzo il valore medio di p^2 Pind = 0 !inizializzo l’indeterminazione in p indstep = 0 DO i=1,2**n Yor(i) = Y(t,i) !estraggo dalla matrice l’array dell’evoluzione precedente END DO !-------------------------------------------------------! calcolo l’indeterminazione nelle X !-------------------------------------------------------!valor medio x DO i=1,2**n Xm = Xm + (ABS(Yor(i))**2)*Xj(i) END DO !valor medio x^2 DO i=1,2**n X2m = X2m + (ABS(Yor(i))**2)*(Xj(i)**2) END DO !indeterminazione in x Xind = sqrt(X2m - (Xm**2)) !trasformo l’array complesso in reale u = 1 DO i=1,2**n Yror(u) = DBLE(Yor(i)) Yror(u+1) = AIMAG(Yor(i)) u = u+2 END DO q = (size(Yror))/2 !dimensione array(argomento della chiamata) 93 CALL four1(Yror,q,1) !Fourier Transform DO i=1,2**(n+1) Yror(i) = (Yror(i))/(SQRT(REAL(2**n))) !coefficiente di normalizzazione END DO !devo ritrasformare l’array reale in complesso u = 1 DO i=1,2**n Yor(i) = CMPLX(Yror(u),Yror(u+1)) u = u+2 END DO !-------------------------------------------------------! calcolo l’indeterminazione nelle P !-------------------------------------------------------!valor medio p DO i=1,2**n Pm = Pm + (ABS(Yor(i))**2)*Pj(i) END DO !valor medio p^2 DO i=1,2**n P2m = P2m + (ABS(Yor(i))**2)*(Pj(i)**2) END DO !indeterminazione in p Pind = sqrt(P2m - (Pm**2)) !indeterminazione totale indstep = Xind*Pind IND(t) = indstep !indeterminazione !------------------------------------------------------------------! applico operatore exp(-i(p^2)/2m) --> sono nella base dei Pj !------------------------------------------------------------------DO j=1,2**n Yor(j) = Yor(j)*exp((-CMPLX(uim)*(Pj(j)**2)*e)/(h*2*m)) END DO !ritrasformo l’array complesso in reale u = 1 DO i=1,2**n Yror(u) = DBLE(Yor(i)) Yror(u+1) = AIMAG(Yor(i)) u = u+2 94 END DO CALL four1(Yror,q,-1) !Inverse Fourier Transform DO i=1,2**(n+1) Yror(i) = (Yror(i))/(SQRT(REAL(2**n))) !coefficiente di normalizzazione END DO !devo ritrasformare l’array reale in complesso u = 1 DO i=1,2**n Yor(i) = CMPLX(Yror(u),Yror(u+1)) u = u+2 END DO !-------------------------------------------------------! applico l’operatore V(x) --> sono nella base degli Xj !-------------------------------------------------------DO j=1,2**n Yor(j) = Yor(j)*exp(-CMPLX(uim)*(Vj(j))*e/h) END DO !ora scrivo nell’array dei coefficienti DO i=1,2**n Y(t+1,i) = Yor(i) END DO IF(t==c-1) THEN !calcola l’indeterminazione dello stato finale Xm = 0 !inizializzo il valore medio di x X2m = 0 !inizializzo il valore medio di x^2 Xind = 0 !inizializzo l’indeterminazione in x Pm = 0 !inizializzo il valore medio di p P2m = 0 !inizializzo il valore medio di p^2 Pind = 0 !inizializzo l’indeterminazione in p indstep = 0 !-------------------------------------------------------! calcolo l’indeterminazione nelle X !-------------------------------------------------------!valor medio x DO i=1,2**n Xm = Xm + (ABS(Yor(i))**2)*Xj(i) END DO !valor medio x^2 95 DO i=1,2**n X2m = X2m + (ABS(Yor(i))**2)*(Xj(i)**2) END DO !indeterminazione in x Xind = sqrt(X2m - (Xm**2)) !trasformo l’array complesso in reale u = 1 DO i=1,2**n Yror(u) = DBLE(Yor(i)) Yror(u+1) = AIMAG(Yor(i)) u = u+2 END DO q = (size(Yror))/2 !dimensione array(argomento della chiamata) CALL four1(Yror,q,1) !Fourier Transform DO i=1,2**(n+1) Yror(i) = (Yror(i))/(SQRT(REAL(2**n))) !coefficiente di normalizzazione END DO !devo ritrasformare l’array reale in complesso u = 1 DO i=1,2**n Yor(i) = CMPLX(Yror(u),Yror(u+1)) u = u+2 END DO !-------------------------------------------------------! calcolo l’indeterminazione nelle P !-------------------------------------------------------!valor medio p DO i=1,2**n Pm = Pm + (ABS(Yor(i))**2)*Pj(i) END DO !valor medio p^2 DO i=1,2**n P2m = P2m + (ABS(Yor(i))**2)*(Pj(i)**2) END DO !indeterminazione in p Pind = sqrt(P2m - (Pm**2)) !indeterminazione totale indstep = Xind*Pind 96 !indeterminazione IND(c) = indstep END IF END DO !costruisco l’array delle probabilità DO i=1,c DO j=1,2**n Y2(i,j) = ABS(CMPLX(Y(i,j)))**2 END DO END DO !array dei risultati(prob e stato, prob e stato...) DO i=1,c u = 1 DO j=1,2**n R(i,u) = Y2(i,j) R(i,u+1) = Xj(j) u = u+2 END DO END DO !report - esporto i risultati in due file open(1,FILE=’report.dat’,STATUS=’unknown’) open(2,FILE=’reportIND.dat’,STATUS=’unknown’) DO j=1,c u = 1 DO i=1,2**n write(1,*) (j-1)*e, R(j,u+1), R(j,u) !funzione d’onda u = u+2 END DO END DO DO j=1,c u = 1 write(2,*) (j-1)*e, IND(j) !indeterminazione u = u+2 END DO stop end program 97 !--------------------------------------------------------------------------! DISCRETE FOURIER TRANSFORM !--------------------------------------------------------------------------SUBROUTINE four1(data,nn,isign) INTEGER isign,nn REAL data(2*nn) INTEGER i,istep,j,m,mmax,n REAL tempi,tempr DOUBLE PRECISION theta,wi,wpi,wpr,wr,wtemp n=2*nn j=1 do 11 i=1,n,2 if(j.gt.i)then tempr=data(j) tempi=data(j+1) data(j)=data(i) data(j+1)=data(i+1) data(i)=tempr data(i+1)=tempi endif m=n/2 1 if ((m.ge.2).and.(j.gt.m)) then j=j-m m=m/2 goto 1 endif j=j+m 11 2 12 continue mmax=2 if (n.gt.mmax) then istep=2*mmax theta=6.28318530717959d0/(isign*mmax) wpr=-2.d0*sin(0.5d0*theta)**2 wpi=sin(theta) wr=1.d0 wi=0.d0 do 13 m=1,mmax,2 do 12 i=m,n,istep j=i+mmax tempr=sngl(wr)*data(j)-sngl(wi)*data(j+1) tempi=sngl(wr)*data(j+1)+sngl(wi)*data(j) data(j)=data(i)-tempr data(j+1)=data(i+1)-tempi data(i)=data(i)+tempr data(i+1)=data(i+1)+tempi continue wtemp=wr 98 wr=wr*wpr-wi*wpi+wr wi=wi*wpr+wtemp*wpi+wi 13 continue mmax=istep goto 2 endif return END 99 Bibliografia [1] M.A. Nielsen, I. L. Chuang - Quantum Computation and Quantum Information - Cambridge University Press [2] M. Le Bellac - Quantum Information and Quantum Computation, Cambridge University Press [3] Jurgen Audretsch - Entangled World - Wiley VCH [4] S. Lloyd - Il programma dell’universo - Giulio Einaudi editore [5] G. Benenti, G. Strini - Quantum simulation of the single-particle Schrödinger equation - Am. J. Phys. 76 (7) July 2008 [6] Berman, Doolen, Mainieri, Tsifrinovich - Introduction to Quantum Computers - World Scientific Publishing [7] Anton Zeilinger - Il velo di Einstein - Einaudi Editore [8] Press, Flannery, Teukolsky, Vetterling - Numerical Recipes in Fortran Cambridge University Press [9] J. J. Sakurai - Modern Quantum Mechanics - Pearson Education [10] L. Landau - L. Lifshitz- Quantum Mechanics: non-relativistic theory Butterworth-Heinemann 100