Meccanica Quantistica

Quello delle basi ortonormali è il linguaggio naturale con cui la realtà quantistica si lascia descrivere.
Ogni base ortonormale corrisponde a un possibile “quadro di riferimento informazionale” sul sistema e il formalismo quantistico può essere visto come la teoria delle trasformazioni unitarie tra tali quadri.

La teoria delle basi ortonormali negli spazi di Hilbert fornisce alla meccanica quantistica una struttura lineare per la sovrapposizione degli stati, un prodotto interno per definire le probabilità, la completezza per garantire la stabilità analitica.
In tale formalismo gli stati fisici sono vettori, gli osservabili sono operatori, le misure sono proiezioni, le probabilità sono norme, l’evoluzione è una rotazione che preserva l’ortogonalità. Oltre all’evoluzione temporale, si possono descrivere le simmetrie e la connessione tra rappresentazioni (posizione, momento, spin).

La formulazione matematica della meccanica quantistica si basa su uno spazio vettoriale con prodotto interno che potrà avere da solo due dimensioni a infinite e dunque essere uno spazio di Hilbert complesso separabile. In ogni caso indicheremo con \( \mathcal{H} \) questo spazio.
Uno stato puro è rappresentato da un vettore di $\mathcal{H}$, la funzione d'onda, indicato con \( |\psi\rangle\), con il simbolo \( |\;\cdot\;\rangle\) detto ket nella notazione di Dirac, definito a meno di una fase complessa inosservabile: \[ |\psi\rangle \sim e^{i\theta} |\psi\rangle. \] Il prodotto interno, antilineare nel primo argomento e lineare nel secondo, \[ \langle \phi | \psi \rangle \in \mathbb{C} \] è la proiezione di $∣ψ⟩$ su $∣\phi⟩$, l’ampiezza di probabilità di trovare il sistema nello stato $∣\phi⟩$ quando si trova in $∣ψ⟩$.
L'operatore $$⟨\phi∣=∣\phi⟩^T$$ con il simbolo \(\langle\;\cdot\;|\) detto bra, è un elemento dello spazio duale $H^*$ dei funzionali lineari continui: \[⟨\phi∣\;: | \psi \rangle \longrightarrow \langle \phi | \psi \rangle.\]

# Definiamo un ket |e> e1, e2 = symbols('e1 e2', complex=True) ket_e = Matrix([e1, e2]) print("Ket |e> ="), pprint(ket_e) # Il bra <e| è l'aggiunto del ket bra_e = ket_e.conjugate().T print("\nBra <e| ="), pprint(bra_e) # Definiamo un altro ket |ψ> ψ1, ψ2 = symbols('ψ1 ψ2', complex=True) ket_ψ = Matrix([ψ1, ψ2]) print("\nKet |ψ> ="), pprint(ket_ψ) # Prodotto interno inner = (bra_e * ket_ψ)[0] # equivale a ket_e.conjugate().dot(ket_ψ) print("\nProdotto interno ="), pprint(inner)
Ket |e> = $\begin{bmatrix}e₁ \\ e₂\end{bmatrix}$ Bra <e| = $\begin{bmatrix}\overline{e₁}& \overline{e₂}\end{bmatrix}$ Ket |ψ> = $\begin{bmatrix}ψ₁ \\ ψ₂\end{bmatrix}$ Prodotto interno <e|ψ> = $ψ₁⋅\overline{e₁} + ψ₂⋅\overline{e₂}$
I vettori che rappresentano gli stati fisici sono normalizzati: \[ \|\psi\| = \sqrt{|\langle \psi | \psi \rangle|} = 1, \] e ciò assicura che la probabilità totale si conserva. Il suo quadrato \(|\langle \psi | \psi \rangle|\) rappresenta la densità di probabilità che si verifichi quello stato.

Una famiglia \( \{ |e_n\rangle \}_{n\in I} \subset \mathcal{H} \) per cui

  1. \( \langle e_m | e_n \rangle = \delta_{mn} \) (ortonormalità),
  2. \( \overline{\mathrm{span}}\{ |e_n\rangle \} = \mathcal{H} \) (completezza),
è una base ortonormale. Quando $I$ è numerabile, lo spazio $\mathcal{H}$ si dice separabile.
Si osservi che \[\langle \phi | \psi \rangle =\sum_n\langle \phi | e_n \rangle \langle e_n | \psi \rangle,\] da cui \[ | \psi \rangle =\sum_n | e_n \rangle \langle e_n | \psi \rangle, \quad \displaystyle\langle \phi | =\sum_n\langle \phi | e_n \rangle \langle e_n |.\] Si può scrivere perfino \[ | =\sum_n | e_n \rangle \langle e_n |.\] Questa relazione di chiusura si può scrivere anche: \[ \sum_{n} |e_n\rangle \langle e_n| = \mathbb{I}, \] dove la somma converge nel senso forte all'identità come conseguenza della completezza.
L'operatore $P_n=|e_n\rangle \langle e_n|$ è il proiettore sullo spazio unidimensionale generato da $∣e_n​⟩$, tale che \[P_n\psi=|e_n\rangle \langle e_n|\psi\rangle\] cioè un vettore che ha direzione $∣e_n​⟩$ ed è suo multiplo secondo \( \langle e_n|\psi\rangle;\) inoltre, considerando anche che \[\sum_nP_n =\mathbb I,\] si ha che $⟨ψ∣P_n​ψ⟩=\langle\psi|e_n\rangle \langle e_n|\psi\rangle=|⟨e_n​∣ψ⟩|^2$ è la probabilità di passare allo stato $∣e_n​⟩$ quando il sistema si trova nello stato $∣ψ⟩$.
# Definiamo un ket |e> e1, e2 = symbols('e1 e2', complex=True) ket = Matrix([e1, e2]) # Bra <e| = (|e>)^† bra = ket.conjugate().T # Operatore |e><e| proj = ket * bra print("Operatori |e><e|, |e><e|^2") proj, proj*proj
Operatori |e><e|, |e><e|^2 \(\left[\begin{matrix}e_{1} \overline{e_{1}} & e_{1} \overline{e_{2}}\\e_{2} \overline{e_{1}} & e_{2} \overline{e_{2}}\end{matrix}\right], \left[\begin{matrix}e_{1} \left(e_{1} \overline{e_{1}} + e_{2} \overline{e_{2}}\right) \overline{e_{1}} & e_{1} \left(e_{1} \overline{e_{1}} + e_{2} \overline{e_{2}}\right) \overline{e_{2}}\\e_{2} \left(e_{1} \overline{e_{1}} + e_{2} \overline{e_{2}}\right) \overline{e_{1}} & e_{2} \left(e_{1} \overline{e_{1}} + e_{2} \overline{e_{2}}\right) \overline{e_{2}}\end{matrix}\right]\)
per cui se il ket è unitario il proiettore è idempotente.
Ogni vettore ammette un’espansione unica rispetto a una base ortonormale \( \{ |e_n\rangle \} \): \[ |\psi\rangle = \sum_{n} \langle e_n | \psi \rangle |e_n\rangle, \] e di conseguenza per la sua norma: \[ \| |\psi\rangle\|^2 = \sum_n |\langle e_n | \psi \rangle|^2. \]

Un'osservabile, come la posizione, l'impulso, lo spin o l'energia, cioè gli aspetti del fenomeno fisico suscettibili di essere misurate, è rappresentata da un operatore lineare autoaggiunto limitato \(A : \mathcal{H} \to \mathcal{H},\) cioè \(\langle \phi | A\psi \rangle=\langle A\phi | \psi \rangle^*, \;\; \forall\phi,\psi\in\mathcal{H}, \) tale che i suoi autovalori sono numeri reali e i suoi autovettori formano una base ortonormale.
Nella notazione di Dirac \( A\psi\) si indica \( A|\psi\rangle\) e \(\langle \phi | A\psi \rangle\) si indica \(\langle \phi | A |\psi \rangle\).
Indicando con \( \{ |a_n\rangle \}\) la base degli autovettori, o autostati, dell'osservabile \(A\) e \( \{ a_n\}\) i rispettivi autovalori, allora \[A|a_n \rangle=a_n|a_n \rangle.\] Allo spazio dei funzionali lineari da \(\mathcal{H}\) a \(\mathbb C\), indicato con \(\mathcal{H}^*\), appartengono anche \(\langle \psi|\) e i proiettori $P_n=|e_n\rangle \langle e_n|$ sullo spazio unidimensionale generato da $∣e_n​⟩$, idempotenti, autoaggiunti e che hanno solo 0 e 1 per autovalori.

# Matrice hermitiana 3x3 a, b, c = symbols('a b c', real=True) H = Matrix([[a, 1, 0], [1, b, 1], [0, 1, c]]) # Ad esempio: a=1, b=2, c=3 H = H.subs({a: 1, b: 2, c: 3}) eigen = H.eigenvects() H, [eval for eval, _, _ in eigen], [evec[0] for _, _, evec in eigen]
\(\left( \left[\begin{matrix}1 & 1 & 0\\1 & 2 & 1\\0 & 1 & 3\end{matrix}\right], \ \left[ 2, \ 2 - \sqrt{3}, \ \sqrt{3} + 2\right], \ \left[ \left[\begin{matrix}-1\\-1\\1\end{matrix}\right], \ \left[\begin{matrix}\sqrt{3} + 2\\- \sqrt{3} - 1\\1\end{matrix}\right], \ \left[\begin{matrix}2 - \sqrt{3}\\-1 + \sqrt{3}\\1\end{matrix}\right]\right]\right)\)
# Costruzione della matrice unitaria U degli autovettori cols = [] for eval, emult, evec in eigen: v = evec[0] cols.append(v / sqrt(v.conjugate().dot(v))) U = Matrix.hstack(*cols) simplify(U)
\(\left[\begin{matrix}- \frac{\sqrt{3}}{3} & \frac{\sqrt{6 \sqrt{3} + 12}}{6} & \frac{\sqrt{12 - 6 \sqrt{3}}}{6}\\- \frac{\sqrt{3}}{3} & \frac{\sqrt{6} \left(- \sqrt{3} - 1\right)}{6 \sqrt{\sqrt{3} + 2}} & \frac{\sqrt{6} \left(-1 + \sqrt{3}\right)}{6 \sqrt{2 - \sqrt{3}}}\\\frac{\sqrt{3}}{3} & \frac{\sqrt{6}}{6 \sqrt{\sqrt{3} + 2}} & \frac{\sqrt{6}}{6 \sqrt{2 - \sqrt{3}}}\end{matrix}\right]\)
# Controllo ortonormalità (unitarietà di U) e diagonalizzazione: U^† H U simplify(U.conjugate().T * U), simplify(U.conjugate().T * H * U)
\(\left( \left[\begin{matrix}1 & 0 & 0\\0 & 1 & 0\\0 & 0 & 1\end{matrix}\right], \ \left[\begin{matrix}2 & 0 & 0\\0 & 2 - \sqrt{3} & 0\\0 & 0 & \sqrt{3} + 2\end{matrix}\right]\right)\)

Per misurare l’energia di un sistema, ad esempio, si considera l’hamiltoniana come osservabile. A seguito di un processo di misurazione si ottiene con una certa probabilità una misura che coincide con uno degli autovalori e inoltre, immediatamente, il collasso dello stato sull'autostato associato a questa misura. Una misurazione è quindi un processo irreversibile che trasforma uno stato in un autostato dell'osservabile, lo trasforma irreversibilmente perché estrae informazione.

Due osservabili \(A\) e \(B\) si dicono compatibili se ammettono un sistema completo di autovettori comuni. E’ possibile dimostrare che questa richiesta è equivalente alla condizione \(AB = BA.\)
Gli stati posizione \( |x\rangle \) soddisfano la forma generalizzata di ortonormalità: \[ \langle x | x' \rangle = \delta(x - x'), \] \[ \int_{\mathbb{R}} |x\rangle \langle x| \, dx = \mathbb{I}. \] I valori della funzione d’onda sono: \[ \psi(x) = \langle x | \psi \rangle. \] Gli stati momento \( |p\rangle \) soddisfano: \[ \langle p | p' \rangle = \delta(p - p'), \] \[ \int_{\mathbb{R}} |p\rangle \langle p| \, dp = \mathbb{I}. \] La trasformazione posizione $\longleftrightarrow$ momento è unitaria: \[ \psi(p) = \frac{1}{\sqrt{2\pi\hbar}} \int e^{-ipx/\hbar} \psi(x) \, dx. \] Gli autostati della posizione non coincidono con quelli dell’impulso. Le due basi sono legate da una trasformazione, la trasformata di Fourier, ma non possono essere diagonalizzate simultaneamente.
Questo fatto geometrico è all’origine del

Principio di indeterminazione di Heisenberg
Non è possibile esprimere uno stato con precisione arbitraria in due basi ortonormali incompatibili.

L’indeterminazione non nasce dunque da un limite tecnico ma da una struttura matematica dello spazio degli stati.

Se \( \{|e_n\rangle\} \) e \( \{|f_n\rangle\} \) sono due basi ortonormali, allora: \[ |f_n\rangle = U |e_n\rangle. \] Le componenti di un vettore \(\psi\) cambiano come: \[ \langle f_n | \psi \rangle = \sum_m \langle f_n | e_m \rangle \, \langle e_m | \psi \rangle. \] La matrice \(U = (U_{n,m}) = (\langle f_n | e_m \rangle)\) è unitaria: \[ \sum_m U_{n,m} U_{n',m}^* = \delta_{nn'} \] ovvero \[ U^\dagger U = U U^\dagger = \mathbb{I}. \]

Ogni cambiamento di base ortonormale è descritto da un operatore unitario e viceversa ogni trasformazione unitaria mappa una base ortonormale in un'altra base ortonormale.

Fisicamente, l'evoluzione temporale può essere interpretata come una rotazione rigida nello spazio di Hilbert, che preserva le probabilità ridistribuendo le ampiezze tra gli stati di base.
Le basi associate a direzioni diverse sono collegate da matrici unitarie di SU(2).

Una base ortonormale canonica per un sistema a due stati come gli spin \(1/2\) di un elettrone o la polarizzazione di un fotone è: \[ |\uparrow_z\rangle = \begin{pmatrix}1 \\ 0\end{pmatrix}, \qquad |\downarrow_z\rangle = \begin{pmatrix}0 \\ 1\end{pmatrix}. \] Lo stato generico \(α|\uparrow_z\rangle+ β\downarrow_z\rangle\) dovrà avere \(α^2+ β^2=1 \). Esistono poi solo 4 operatori hermitiani, quindi autoaggiunti, linearmente indipendenti, una base dello spazio delle matrici 2×2 hermitiane: l'identità e le tre matrici di Pauli.
Nel seguente esempio Python con SymPy a partire dalle matrici di Pauli, si costruiscono le basi di autostati e si verificano ortonormalità e unitarietà del cambio di base.

# Matrici di Pauli σx = Matrix([[0, 1], [1, 0]]) σy = Matrix([[0, -I], [I, 0]]) σz = Matrix([[1, 0], [0, -1]]) # Base canonica |↑z>, |↓z> up_z = σz.col(0) down_z = σz.col(1) # Verifica ortonormalità con il prodotto interno hermitiano {"⟨↑z|↑z⟩": up_z.dot(up_z), "⟨↓z|↓z⟩": down_z.dot(down_z), "⟨↑z|↓z⟩": up_z.dot(down_z)}
{'⟨↑z|↑z⟩': 1, '⟨↓z|↓z⟩': 1, '⟨↑z|↓z⟩': 0}
# Autovalori e autostati di σx: base |↑x>, |↓x> eigen = σx.eigenvects() σx, [e[0] for e in eigen], [e[2][0] for e in eigen]
\(\left( \left[\begin{matrix}0 & 1\\1 & 0\end{matrix}\right], \ \left[ -1, \ 1\right], \ \left[ \left[\begin{matrix}-1\\1\end{matrix}\right], \ \left[\begin{matrix}1\\1\end{matrix}\right]\right]\right)\)
# Normalizzazione degli autovettori evecs_norm = {} for eval, mult, evec in eigen: v = evec[0] evecs_norm[eval] = v / sqrt(v.conjugate().dot(v)) evecs_norm
\(\left\{ -1 : \left[\begin{matrix}- \frac{\sqrt{2}}{2}\\\frac{\sqrt{2}}{2}\end{matrix}\right], \ 1 : \left[\begin{matrix}\frac{\sqrt{2}}{2}\\\frac{\sqrt{2}}{2}\end{matrix}\right]\right\}\)
Ux = Matrix.hstack(evecs_norm[1],evecs_norm[-1]) Ux, Ux.conjugate().T * Ux
\(\left( \left[\begin{matrix}\frac{\sqrt{2}}{2} & - \frac{\sqrt{2}}{2}\\\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}\end{matrix}\right], \ \left[\begin{matrix}1 & 0\\0 & 1\end{matrix}\right]\right)\)
Mostriamo di seguito come un vettore stato viene espresso in due basi diverse $z$ e $x$ per spin $1/2$.
# Stato generico nella base z: |ψ> = α|↑z> + β|↓z>, α^2 + β^2=1 α, β = symbols('α β') ψ = α * up_z + β * down_z down_x, up_x = evecs_norm.values() Matrix([simplify(up_x.conjugate().dot(ψ)), simplify(down_x.conjugate().dot(ψ))])
\(\left[\begin{matrix}\frac{\sqrt{2} \left(α + β\right)}{2}\\\frac{\sqrt{2} \left(- α + β\right)}{2}\end{matrix}\right]\)
ovvero
simplify(Ux.T*ψ)
\(\left[\begin{matrix}\frac{\sqrt{2} \left(α + β\right)}{2}\\\frac{\sqrt{2} \left(- α + β\right)}{2}\end{matrix}\right]\)
# Verifica che |ψ> = ⟨↑x|ψ⟩|↑x> + ⟨↓x|ψ⟩|↓x> simplify(up_x.conjugate().dot(ψ) * up_x + down_x.conjugate().dot(ψ) * down_x)
\(\left[\begin{matrix}α\\β\end{matrix}\right]\)
Possiamo infine considerare l'osservabile 'spin lungo x' e la misura che, a partire da uno stato iniziale che non è un autostato, produce risultati probabilistici.
# Operatori di spin S = σ/2 Sx, Sy, Sz = σx/2, σy/2, σz/2 # Autovalori e autovettori di Sx eigs = Sx.eigenvects() # Estraiamo gli autostati normalizzati ψ_plus_x = eigs[0][2][0].normalized() ψ_minus_x = eigs[1][2][0].normalized() # Probabilità di ottenere +ħ/2 p_plus = abs(ψ_plus_x.conjugate().dot(ψ))**2 # Probabilità di ottenere -ħ/2 p_minus = abs(ψ_minus_x.conjugate().dot(ψ))**2 print("\nProbabilità di misura di Sx:") print("P(+ħ/2) ="), pprint(simplify(p_plus)) print("P(-ħ/2) ="), pprint(simplify(p_minus))
Probabilità di misura di Sx: P(+ħ/2) = 2 │α + β│ ──────── 2 P(-ħ/2) = 2 │α - β│ ──────── 2 (None, None)

Volendo considerare l'energia in un campo magnetico con direzione z si deve considerare l'Hamiltoniano \(H=−γB⋅S,\) dove \(S=\frac{ℏ}{2}σ,\)

# Operatori di spin ℏ = Symbol('ℏ', real=True, positive=True) Sx, Sy, Sz = (ℏ/2)*σx, (ℏ/2)*σy, (ℏ/2)*σz # Hamiltoniano di un elettrone in campo Bz γ, Bz = symbols('γ Bz', real=True) H = -γ * Bz * Sz # Autovalori (energie) H.eigenvals()
\(\left\{ - \frac{Bz γ ℏ}{2} : 1, \ \frac{Bz γ ℏ}{2} : 1\right\}\)

Volendo esaminare la dinamica di un elettrone che ruota attorno alla direzione di un campo magnetico B, la soluzione è \(|ψ(t)⟩=e^{-iHt/ℏ}|ψ(0)\rangle.\)

# Variabile tempo t = symbols('t', real=True) # Parametri fisici γ = 1 # costante giromagnetica B = Matrix([1, 0, 0]) # campo magnetico lungo x # Hamiltoniano H = -gamma * B·S H = -γ * (B[0]*Sx + B[1]*Sy + B[2]*Sz) # Stato iniziale: spin-up lungo z ψ_0 = Matrix([1, 0]) # Operatore di evoluzione U(t) = exp(-i H t) U = exp(-I * H * t) # Stato al tempo t ψ_t = U * ψ_0 # Valore atteso di S_z expect_Sz = ψ_t.conjugate().dot(Sz * ψ_t) plot(simplify(expect_Sz))

Si ha il fenomeno Precessione di Larmor.

Un altro esempio è quello di un elettrone soggetto a un campo elettrico uniforme \( \mathbf{E} \) lungo \(x\), il cui potenziale è \(V(x) = -e E x\). La dinamica è governata dall’Hamiltoniana: \[ \hat H = -\frac{\hbar^2}{2m}\frac{d^2}{dx^2} - e E x \] che definisce completamente il problema quantistico.
Lo stato dell’elettrone è un vettore: \[ |\psi\rangle \in \mathcal{H} = L^2(\mathbb{R}) \] Dall'equazione di Schrödinger \[ i\hbar \frac{\partial \psi}{\partial t}=\hat H \psi \] formalmente si ricava \[ |\psi(t)\rangle = e^{-i\hat H t/\hbar} |\psi(0)\rangle. \] Espandendo su una base ortonormale discreta \({|e_n\rangle}\) di autostati di \(\hat H\): \[ |\psi(t)\rangle = \sum_n \langle e_n | \psi(0) \rangle e^{-i e_nt/\hbar} |e_n\rangle \] Anziché la traiettoria, un concetto della meccanica classica che non esiste nella meccanica quantistica, si sceglie una base ortonormale, ognuna corrispondente a una diversa “lente” osservativa, in cui rappresentare lo stato. Ad esempio:

La meccanica quantistica non descrive il moto nello spazio fisico ma nello spazio delle funzioni. Se nel campo elettrico classico l’elettrone segue una parabola, nel formalismo quantistico la parabola è sostituita da una traslazione della distribuzione di probabilità descritta nel linguaggio fornito dalle basi ortonormali. Il moto emerge dai valori medi, dai limiti semiclassici e dalle proiezioni su basi appropriate.

In Python possiamo simulare l’evoluzione della funzione d’onda \(ψ(x,t)=⟨x∣ψ(t)⟩\) del “moto” di un elettrone in un campo elettrico uniforme nella base delle posizioni. L’obiettivo non è la precisione fisica estrema, ma rendere visibile il ruolo della base delle posizioni: il moto come traslazione e deformazione della densità di probabilità.

import numpy as np import matplotlib.pyplot as plt # Costanti (unità atomiche semplificate) hbar = 1.0 m = 1.0 e = 1.0 E = 0.2 # campo elettrico # Griglia spaziale Nx = 1024 x_min, x_max = -50, 50 x = np.linspace(x_min, x_max, Nx) dx = x[1] - x[0] # Griglia dei momenti (FFT) p = np.fft.fftfreq(Nx, d=dx) * 2 * np.pi # Pacchetto iniziale (gaussiano) x0 = -20 p0 = 3.0 σ = 2.0 ψ = (1/(np.pi*σ**2))**0.25 * np.exp(-(x-x0)**2/(2*σ**2)) * np.exp(1j*p0*x) # Normalizzazione ψ /= np.sqrt(np.sum(np.abs(ψ)**2)*dx) # Operatori di evoluzione dt = 0.05 T_op = np.exp(-1j * (p**2)/(2*m) * dt / hbar) V_op = np.exp(-1j * (-e*E*x) * dt / hbar) # Evoluzione temporale def step(ψ): ψ_p = np.fft.fft(ψ) ψ_p *= T_op ψ = np.fft.ifft(ψ_p) ψ *= V_op return psi # Visualizzazione plt.figure(figsize=(8,4)) for n in range(200): ψ = step(ψ) if n % 40 == 0: plt.plot(x, np.abs(ψ)**2, label=f"t={n*dt:.1f}") plt.xlabel("x") plt.ylabel(r"$\$$|\psi(x,t)|^2$\$$") plt.title("Moto quantistico in base delle posizioni (campo elettrico)") plt.legend() plt.show()

❮❮ ❯❯