Variational Principles in Field Theory¶

da PowerShell -- jupyter nbconvert --to html notebook.ipynb

Tabella di traduzione indici → forma esplicita¶

Derivate Forma estesa Denominazione
$\partial_\mu \phi$ $\left(\dfrac{\partial \phi}{\partial t},\nabla\phi\right)$ variazione del campo
$\partial^\mu \phi$ $\left(\dfrac{\partial \phi}{\partial t},-\nabla\phi\right)$ cambia segno nello spazio
$\partial_\mu \partial^\mu \phi$ $\dfrac{\partial^2 \phi}{\partial t^2}-\nabla^2\phi$ operatore d’onda
$\nabla^2\phi$ $\dfrac{\partial^2\phi}{\partial x^2}+\dfrac{\partial^2\phi}{\partial y^2}+\dfrac{\partial^2\phi}{\partial z^2}$ langrangiana

Termini tipici di Lagrangiana¶

Con indici Forma esplicita
$\partial_\mu\phi,\partial^\mu\phi$ $\left(\dfrac{\partial\phi}{\partial t}\right)^2$
$\frac{1}{2}\partial_\mu\phi,\partial_\mu\phi$ energia cinetica del campo
$V(\phi)$ potenziale del campo

Equazioni del moto (campo scalare)¶

Con indici Forma esplicita
$\partial_\mu\partial^\mu\phi=0$ $\dfrac{\partial^2\phi}{\partial t^2}-\nabla^2\phi=0$
$\partial_\mu\partial^\mu\phi+m^2\phi=0$ equazione di Klein–Gordon

Tensore elettromagnetico¶

Con indici Forma esplicita
$F_{\mu\nu}$ contiene $\mathbf{E}$ e $\mathbf{B}$
$F_{0i}$ $E_i$
$F_{ij}$ $\epsilon_{ijk}B_k$

Lagrangiana EM¶

Con indici Forma esplicita
$-\frac{1}{4}F_{\mu\nu}F^{\mu\nu}$ $\frac{1}{2}(E^2-B^2)$

Equazioni di Maxwell¶

Con indici Forma esplicita
$\partial_\mu F^{\mu\nu}=J^\nu$ Maxwell con sorgenti
$\partial_\mu J^\mu=0$ conservazione della carica

Dato $\Phi$ trovo numericamente $\Phi^*$ che rende stazionaria l'azione¶

Flusso logico dell’esercizio variazionale numerico¶

Dati iniziali¶

Si assumono come dati iniziali: $$\large \Bigl\{ \Phi^{(0)}(x,t),\; \mathscr{L}(\phi, \partial_\mu \phi),\; \mathcal{G} = \{x_i, t_j\} \Bigr\}, $$

dove $\Phi^{(0)}$ è una configurazione iniziale del campo, $\mathscr{L}$ è la densità lagrangiana del sistema e $\mathcal{G}$ è una griglia spaziotemporale discretizzata.

Discretizzazione dello spaziotempo¶

Lo spaziotempo continuo viene discretizzato come: $$\large (x,t) \longrightarrow (x_i, t_j), \qquad \Delta x,\; \Delta t, $$

e il campo scalare diventa: $$\large \phi(x,t) \longrightarrow \phi_{i,j}. $$

Discretizzazione delle derivate¶

Le derivate spaziotemporali sono approssimate tramite differenze finite: $$\large \partial_x \phi(x,t) \longrightarrow \frac{\phi_{i+1,j} - \phi_{i-1,j}}{2\Delta x}, \qquad \partial_t \phi(x,t) \longrightarrow \frac{\phi_{i,j+1} - \phi_{i,j-1}}{2\Delta t}. $$

Lagrangiana discretizzata¶

La densità lagrangiana discreta è definita come: $$\large \mathscr{L}_{i,j} = \mathscr{L} \bigl( \phi_{i,j}, (\nabla_x \phi)_{i,j}, (\nabla_t \phi)_{i,j} \bigr). $$

Azione discretizzata¶

L’azione continua viene approssimata da una somma discreta: $$\large S[\phi] = \int \mathscr{L}\,\mathrm{d}x\,\mathrm{d}t \;\longrightarrow\; S_{\mathrm{disc}}[\phi] = \sum_{i,j} \mathscr{L}_{i,j}\,\Delta x\,\Delta t. $$

Variazione discreta dell’azione¶

Si considera una variazione locale del campo: $$\large \phi_{i,j} \longrightarrow \phi_{i,j} + \varepsilon\,\eta_{i,j}, $$

e si calcola la variazione discreta dell’azione: $$\large \delta S_{\mathrm{disc}} = \frac{\partial S_{\mathrm{disc}}}{\partial \phi_{i,j}}. $$

Equazioni di Eulero--Lagrange discrete¶

La condizione di stazionarietà dell’azione conduce alle equazioni: $$\large \frac{\partial \mathscr{L}{i,j}}{\partial \phi{i,j}}\nabla_\mu^{\mathrm{disc}} \left( \frac{\partial \mathscr{L}{i,j}} {\partial (\nabla\mu \phi)_{i,j}} \right) = 0, $$

che definiscono l’operatore discreto delle equazioni del moto: $$\large \mathcal{E}_{i,j}[\phi] = 0. $$

Metodo iterativo variazionale¶

Il sistema discreto viene risolto tramite un’iterazione di rilassamento: $$\large \phi^{(n+1)}{i,j} = \phi^{(n)}{i,j} -\alpha \mathcal{E}_{i,j}[\phi^{(n)}], $$

dove $\alpha$ è il passo di aggiornamento.

Convergenza¶

L’iterazione viene arrestata quando vale la condizione: $$\large \|\phi^{(n+1)} - \phi^{(n)}\| < \varepsilon, $$

ottenendo una configurazione convergente: $$\large \Phi^*_{i,j}. $$

Interpretazione della soluzione¶

La configurazione finale soddisfa: $$\large \Phi^*_{i,j} \longleftrightarrow \Phi^*(x,t), $$

ed è interpretata come soluzione classica delle equazioni del moto,

ovvero come punto stazionario dell’azione discretizzata.

Analisi successive¶

A partire dalla soluzione $\Phi^*$ è possibile studiare: $$\large \Phi^* \Rightarrow \begin{cases} \text{stabilità rispetto a fluttuazioni}, \\ \text{correnti di Noether}, \\ \text{limite continuo}, \\ \text{approssimazione semiclassica}. \end{cases} $$

In [30]:
import numpy as np 

def action_integral(L, phi, d_phi, spacetime_vol):
    '''
    Compute the action integral for a field.
        :param L: Lagrangian density function.
        :param phi: Field values.
        :param d_phi: Spacetime derivative of field values.
        :param sp acetime _v ol: Volume element d^x over spacetime.
    :return: 
        Action value.
    '''
    return np.sum(L(phi, d_phi) * spacetime_vol)

def euler_lagrange_equation(L, phi, d_phi):
    '''
    Compute the Euler-Lagrange equation for fields.
    Implementa ∂_μ​∂^μ(ϕ)+ϕ=0
        :param L: Lagrangian density function.
        :param phi: Field values.
        :param d_phi: Spacetime derivative of field values.
    :return: 
        Euler-Lagrange equation function.
    '''
    dphi_dx, dphi_dt = d_phi

    # L = 1/2 (∂μφ ∂^μφ) - 1/2 φ^2
    dL_dphi = -phi

    dL_ddphi_x = dphi_dx
    dL_ddphi_t = dphi_dt

    ddx = np.gradient(dL_ddphi_x, axis=0)
    ddt = np.gradient(dL_ddphi_t, axis=1)

    return dL_dphi - (ddx + ddt)

def electromagnetic_lagrangian(F, A, j):
    '''
    Lagrangian density for electromagnetic field.
        :param F: Electromagnetic field tensor.
        :param A: Vector potential.
        :param j: Current density.
    :return: 
        Electromagnetic Lagrangian density.
    '''
    return -0.25 * np.sum(F**2) + np.dot(j, A)

def noether_current(L, phi, psi):
    '''
    Compute Noether current based on symmetry transformation.
        :param L: Lagrangian density function.
        :param phi: Field configuration.
        :param psi: Symmetry variation.
    :return: 
        Noether current.
    '''
    dL_ddphi = np.gradient(L(phi, np.gradient(phi)))
    return dL_ddphi * psi

def iterative_solution(initial_phi, L, spacetime_grid, max_iter=1000, tol=1e-6):
    '''
    Iteratively solve for field configuration minimizing the action.
        :param initial_phi: Initial field configuration.
        :param L: Lagrangian density function.
        :param spacetime_grid: Grid representing spacetime.
        :param max_iter: Maximum number of iterations.
        :param tol: Convergence tolerance.
    :return: 
        Field configuration minimizing the action.
    '''
    phi = initial_phi

    dx = spacetime_grid[1] - spacetime_grid[0]
    dt = dx  # stessa discretizzazione

    for _ in range(max_iter):
        d_phi = np.gradient(phi, dx, dt)  # <-- FIX
        delta_phi = -euler_lagrange_equation(L, phi, d_phi)
        phi_new = phi + 0.01 * delta_phi

        if np.linalg.norm(phi_new - phi) < tol:
            break

        phi = phi_new

    return phi

# Example usage
L_example = lambda phi, d_phi: (0.5 * (d_phi[0]**2 + d_phi[1]**2) - 0.5 * phi**2)
initial_phi = np.random.rand(10, 10) # matrice 10x10 di random tra 0 e 1
spacetime_grid = np.linspace(0, 1, 10) # 10 numeri equisoaziati tra 0 e 1
phi_solution = iterative_solution(initial_phi, L_example, spacetime_grid)
print("Field configuration minimizing the action:", phi_solution)
Field configuration minimizing the action: [[-2874966.85528487 -2176788.15363693 -1490641.48067622  -799730.45941436
   -119400.22660278   569884.05211262  1251314.98185759  1944809.66504631
   2634125.66852995  3337160.06628992]
 [-1493836.15356277 -1057328.40599249  -627114.8263703   -193560.39928535
    234459.02939942   668757.19752021  1098947.13928367  1537596.40383627
   1974059.7268027   2420142.63673672]
 [ -129629.49702703    48953.04654783   226910.48797319   406808.38472109
    586156.57586354   769151.63012063   951738.67792511  1139239.13114222
   1326522.48866001  1519393.1646815 ]
 [ 1248985.65211868  1167140.25880744  1090397.8357555   1014183.55803142
    942456.75703877   871722.54459956   804319.05944199   738252.88525369
    673958.95403356   611185.75675904]
 [ 2612718.04563629  2273738.67279     1945529.84535616  1616457.17470367
   1296855.96272574   975631.25656991   661436.52465076   345054.46497082
     32412.97645019  -282715.84940467]
 [ 4003529.5475316   3402712.59589219  2818444.66097082  2231898.49604451
   1659905.29217564  1083630.41647627   518157.1442914    -53084.8087183
   -618579.34854808 -1190633.79015288]
 [ 5383294.66333193  4523084.99764908  3685157.917281    2843553.30325326
   2021543.66588639  1192622.52605138   378245.31084701  -445443.74641621
  -1261394.14302598 -2087933.57570484]
 [ 6799543.36317546  5673603.84131223  4575829.88334261  3472948.91099179
   2394836.31983843  1307125.68124529   237798.80883867  -844459.47787623
  -1916935.966922   -3004117.51773161]
 [ 8209914.40371097  6819545.91103439  5463202.0685978   4100329.75662517
   2767378.21990997  1422157.173915      99144.14111525 -1240399.55679385
  -2568126.6177034  -3914651.65737306]
 [ 9661773.04527922  7999769.24964147  6377819.09335295  4747884.69627932
   3153172.87850518  1543455.5964503    -40118.52924825 -1643909.4622579
  -3233789.91232739 -4846660.06740832]]

Interpretazione della soluzione classica¶

Una volta determinata numericamente una configurazione del campo $$\large \Phi^*(x,t), $$

essa va interpretata come una configurazione che rende stazionaria l’azione del sistema. In questo senso, $\Phi^*$ rappresenta una soluzione classica delle equazioni di Eulero--Lagrange associate al funzionale d’azione $$\large S[\phi] = \int \mathcal{L}(\phi, \partial_\mu \phi)\, \mathrm{d}^{d}x. $$

Verifica della stazionarietà dell’azione¶

Il primo passo concettuale consiste nel verificare che la configurazione trovata soddisfi effettivamente le equazioni del moto: $$\large \left.\frac{\delta S}{\delta \phi}\right|_{\phi=\Phi^*} = 0. $$

Se questa condizione è soddisfatta, la configurazione $\Phi^*$ è fisicamente ammessa e non rappresenta un semplice artefatto numerico.

Interpretazione fisica della soluzione¶

La struttura spaziotemporale della soluzione fornisce indicazioni sulla sua interpretazione fisica. In particolare, si può stabilire se la configurazione è:

  • statica, nel caso in cui $\partial_t \Phi^* \simeq 0$,
  • oscillante, come nel caso dei modi normali di un campo libero,
  • localizzata nello spazio, suggerendo una soluzione di tipo solitonico,
  • sensibile alle condizioni al contorno, indicando possibili problemi di consistenza del modello numerico.

Stabilità e fluttuazioni¶

Per analizzare la stabilità della soluzione, si considerano piccole fluttuazioni attorno alla configurazione classica: $$\large \phi = \Phi^* + \eta. $$

Espandendo l’azione in serie funzionale attorno a $\Phi^*$ si ottiene $$\large S[\phi] = S[\Phi^*] + \frac{1}{2} \int \eta \, \hat{O} \, \eta \, \mathrm{d}^dx + \dots $$

dove $\hat{O}$ è l’operatore delle fluttuazioni. Il segno degli autovalori di tale operatore determina la stabilità della soluzione.

Simmetrie e correnti di Noether¶

Nel caso in cui il Lagrangiano presenti simmetrie continue, è possibile costruire le corrispondenti correnti di Noether. Valutando tali correnti sulla soluzione $\Phi^*$, si possono identificare quantità conservate come energia, impulso o cariche associate alle simmetrie del sistema.

Limite continuo¶

Infine, è necessario verificare che la soluzione numerica sia stabile rispetto alla discretizzazione dello spaziotempo. In particolare, si richiede che nel limite di passo di griglia $\Delta x \to 0$ la configurazione numerica converga a una soluzione ben definita del problema continuo: $$\large \Phi^*_{\Delta x} \longrightarrow \Phi^*(x,t). $$

Interpretazione semiclassica¶

Nel contesto della teoria quantistica dei campi, la configurazione $\Phi^*$ può essere interpretata come un campo classico di background. Le fluttuazioni $\eta$ vengono quantizzate e il contributo dominante all’integrale funzionale è fornito dal punto di sella associato a $\Phi^*$, realizzando un’approssimazione semiclassica.

In [ ]: