Teorema di Noerther¶
da PowerShell -- jupyter nbconvert --to html notebook.ipynb
Il teorema di Noether stabilisce una connessione fondamentale tra le simmetrie continue di un sistema fisico e le leggi di conservazione. Esso rappresenta uno dei risultati più profondi della fisica teorica e della matematica applicata.
Contesto variazionale¶
Si consideri un sistema descritto da una azione: $$ S[q] = \int_{t_1}^{t_2} L(q,\dot{q},t)\, dt, $$
dove $q = (q^1, \dots, q^n)$ sono le coordinate generalizzate e $L$ è la Lagrangiana.
Le equazioni del moto sono ottenute imponendo la stazionarietà della azione: $$ \delta S = 0, $$ da cui seguono le equazioni di Eulero--Lagrange: $$ \frac{d}{dt}\left(\frac{\partial L}{\partial \dot{q}^i}\right)\frac{\partial L}{\partial q^i} = 0. $$
Simmetrie continue¶
Una trasformazione continua infinitesima: $$ q^i \rightarrow q^i + \varepsilon \,\delta q^i, \quad t \rightarrow t + \varepsilon \,\delta t, $$ è detta simmetria dell'azione se l'azione è invariata (a meno di un termine di bordo): $$ \delta S = 0. $$
Enunciato del teorema di Noether¶
Ad ogni simmetria continua della azione corrisponde una quantità conservata lungo le traiettorie che soddisfano le equazioni di Eulero--Lagrange.
Quantità di Noether¶
Se la variazione della Lagrangiana è una derivata totale: $$ \delta L = \varepsilon \frac{dF}{dt}, $$ allora la quantità: $$ Q = \sum_i \frac{\partial L}{\partial \dot{q}^i} \delta q^i\left( \sum_i \frac{\partial L}{\partial \dot{q}^i} \dot{q}^i - L \right)\delta tF $$
è conservata:
$$ \large \frac{dQ}{dt} = 0. $$Applicazioni fondamentali¶
Traslazione temporale¶
Se la Lagrangiana è invariante per traslazioni temporali ($\partial L/\partial t = 0$), allora: $$ Q = E = \sum_i \dot{q}^i \frac{\partial L}{\partial \dot{q}^i} - L, $$ che rappresenta la energia meccanica.
Traslazione spaziale¶
La invarianza per traslazioni spaziali implica la conservazione della quantità di moto: $$ \mathbf{p} = \frac{\partial L}{\partial \dot{\mathbf{r}}}. $$
Rotazioni¶
La invarianza per rotazioni spaziali implica la conservazione del momento angolare: $$ \mathbf{L} = \mathbf{r} \times \mathbf{p}. $$
Forma locale: campi continui¶
Nel caso di teorie di campo, il teorema di Noether conduce a leggi di conservazione locali espresse da correnti: $$ \partial_\mu j^\mu = 0, $$ dove $j^\mu$ è la corrente di Noether associata a una simmetria continua.
Simmetrie globali e locali¶
- Le simmetrie globali producono cariche conservate.
- Le simmetrie locali (di gauge) richiedono l'introduzione di campi di connessione.
Osservazioni finali}¶
Il teorema di Noether fornisce una struttura unificante che collega:
- principi di simmetria;
- leggi di conservazione;
- formulazioni variazionali della dinamica.
Esso è fondamentale in meccanica classica, relatività generale e teoria quantistica dei campi.
Moto rettilineo uniforme - Approccio simbolico¶
import sympy as sp
def lagrangian(q, dq, t):
"""
Define a simple Lagrangian:
T = 1/2 Σ dq_i^2
V = 1/2 Σ q_i^2
"""
# Use Python's sum(), not SymPy Sum(), to avoid generators
T = sp.Rational(1, 2) * sum(dqi**2 for dqi in dq)
V = sp.Rational(1, 2) * sum(qi**2 for qi in q)
L = T - V
return L
def conserved_quantity(L, q, dq, t, epsilon, delta_q):
"""
Compute the conserved Noether charge for a given symmetry.
"""
# δL = Σ ( ∂L/∂q_i * δq_i + ∂L/∂dq_i * δ(dq_i) )
delta_L_terms = []
for qi, dqi, deltaqi in zip(q, dq, delta_q):
delta_L_terms.append(
L.diff(qi) * deltaqi +
L.diff(dqi) * sp.diff(deltaqi, t)
)
delta_L = sum(delta_L_terms)
# Euler–Lagrange operator Σ (d/dt ∂L/∂dq_i − ∂L/∂q_i)
EL_terms = []
for qi, dqi in zip(q, dq):
EL_terms.append(
sp.diff(L.diff(dqi), t) - L.diff(qi)
)
EL_expr = sum(EL_terms)
# Noether conserved quantity: Q = Σ p_i δq_i
Q_terms = []
for dqi, deltaqi in zip(dq, delta_q):
Q_terms.append(L.diff(dqi) * deltaqi)
Q = sum(Q_terms)
return sp.simplify(Q)
# Define symbols
t = sp.Symbol('t')
epsilon = sp.Symbol('epsilon')
q = sp.Function('q')(t)
dq = sp.Function('dq')(t)
# Example of transformation for translational symmetry
delta_q_translational = [epsilon for _ in range(1)] # Simple translation
# Example Lagrangian
L_expr = lagrangian([q], [dq], t)
# Compute conserved quantity from translational syrmetry
conserved_translational = conserved_quantity(L_expr, [q], [dq], t, epsilon, delta_q_translational)
print("Lagrangian:", L_expr)
print("Conserved Quantity (Translational Symmetry):")
display(conserved_translational)
print('')
print("If mass=1 --> Linear Momentum is Conserved")
Lagrangian: dq(t)**2/2 - q(t)**2/2 Conserved Quantity (Translational Symmetry):
If mass=1 --> Linear Momentum is Conserved
Moto circolare uniforme - Approccio simbolico¶
import sympy as sp
from sympy.physics.mechanics import dynamicsymbols, mlatex
from IPython.display import display, Math
t = sp.Symbol('t')
epsilon = sp.Symbol('epsilon')
# Coordinates
x = sp.Function('x')(t)
y = sp.Function('y')(t)
dx = sp.diff(x, t)
dy = sp.diff(y, t)
# Rotational infinitesimal transformation
delta_x = -epsilon * y
delta_y = epsilon * x
delta_q_rot = [delta_x, delta_y]
# Lagrangian (free particle in 2D — rotationally invariant!)
L = sp.Rational(1,2)*(dx**2 + dy**2)
q = [x, y]
dq = [dx, dy]
def conserved_quantity(L, q, dq, t, epsilon, delta_q):
Q = sum(L.diff(dqi)*deltaqi for dqi, deltaqi in zip(dq, delta_q))
return sp.simplify(Q)
Q_rot = conserved_quantity(L, q, dq, t, epsilon, delta_q_rot)
print("Rotational Momentum is Conserved")
display(Q_rot)
t = sp.Symbol('t')
x = dynamicsymbols('x')
y = dynamicsymbols('y')
expr = Q_rot
display(Math(mlatex(expr)))
Rotational Momentum is Conserved