% !TEX root = main.tex
\chapter{Energia i forces electrostàtiques}

\section{Energia electrostàtica en el buit}

\begin{prop}
  L'energia electrostàtica en el buit de \underline{$n$ partícules carregades}, que és el treball de portar les càrregues des de l'infinit fins a les seves posicions finals, és:
  \[ U = \frac{1}{2} \sum_{i=1}^n q_i V_i, \]
  on $\displaystyle V_i = \sum_{\substack{j = 1 \\ j \neq i}}^n V_{ji}$.
\end{prop}

\begin{prop}
  L'energia electrostàtica en el buit d'una \underline{distribució contínua} (volúmica) de càrrega és:
  \[ U = \frac{1}{2} \int_V \rho(p) V(p) \dif v, \]
  on $V(p)$ és el potencial \underline{total} en un punt.
\end{prop}

\begin{prop}
  L'energia electrostàtica en el buit d'un \underline{sistema de $n$ conductors} en equilibri electrostàtic és:
  \[ U = \frac{1}{2} \int_{\cup_i S_i} \sigma_i(p) V_i \dif s = \frac{1}{2} \sum_{i = 1}^n V_i Q_i. \]

  També es pot expressar de les següents maneres:
  \[ \begin{cases}
    \displaystyle U = \frac{1}{2} \sum_{i = 1}^n \sum_{j = 1}^n a_{ij} V_i V_j, \\
    \displaystyle U = \frac{1}{2} \sum_{i = 1}^n \sum_{j = 1}^n b_{ij} Q_i Q_j.
  \end{cases} \]
\end{prop}

\section{Energia en funció del camp en el buit}

\begin{prop}
  L'energia electrostàtica en el buit d'una distribució volúmica es pot expressar en funció del camp com:
  \[ U = \frac{1}{2} \int_{\mathbb{R}^3} \vec{E} \cdot \vec{D} \dif v = \frac{\varepsilon_0}{2} \int_{\mathbb{R}^3} E^2 \dif v \]
\end{prop}

\begin{defi}
  La densitat volúmica d'energia és:
  \[ u := \frac{1}{2} \vec{E} \cdot \vec{D}. \]
\end{defi}

\section{Energia electrostàtica en presència de dielèctrics}

\begin{prop}
  En medis dielèctrics lineals i isòtrops (LI) l'energia electrostàtica és:
  \[ U = \frac{1}{2} \int_V \rho(p) V(p) \dif v = \frac{1}{2} \int_{\mathbb{R}^3} \vec{E} \cdot \vec{D} \dif v, \]
  on $\rho$ és la càrrega lliure (no de polarització) i l'efecte del dielèctric està inclòs a $V$ (és el potencial degut a les càrregues lliures i de polarització induïdes).
\end{prop}

\begin{obs}
  En medis dielèctrics qualsevols no podem calcular en general l'energia electrostàtica, però es pot veure que si la densitat canvia de $\rho \rightarrow \rho + \delta \rho$ i el desplaçament canvia de $\vec{D} \rightarrow \vec{D} + \delta \vec{D}$, aleshores el treball d'aquest canvi serà:
  \[ \delta W = \int_V \delta p V \dif v = \int_{\mathbb{R}^3} \vec{E} \cdot \delta \vec{D} \dif v. \]
\end{obs}

\section{Força i moment resultant per a una distribució de càrrega}

\begin{prop}
  Considerem un \underline{sistema aïllat de càrrega} que consta de $n$ components connexes. Aleshores, si deixem que una d'aquestes components es mogui, la força que s'exerceix sobre ella és:
  \[ \vec{F} = - \grad U. \]
  Si en comptes de permetre translacions permetem rotacions, aleshores el moment de força de la component és:
  \[ \gamma_i = - \frac{\partial U}{\partial \alpha_i}, \]
  on els $\alpha_i$ corresponen als angles de rotació respecte de $x$, $y$, $z$.
\end{prop}

\section{Força i moment resultant per a un sistema de conductors}

\begin{prop}
  Considerem un \underline{sistema de conductors aïllat}. Aleshores, la força i el moment resultant sobre una dels conductors és:
  \[ \begin{cases}
    \vec{F} = - ( \grad U )_Q, \\
    \gamma_i = - \left( \frac{\partial U}{\partial \alpha_i} \right)_Q,
  \end{cases} \]
  on el subíndex $Q$ significa que mantenim la càrrega constant (estem aïllats).
\end{prop}

\begin{obs}
  En aquest darrer cas és útil utilitzar la següent expressió de l'energia:
  \[ U = \frac{1}{2} \sum_{i = 1}^n \sum_{j = 1}^n b_{ij} Q_i Q_j. \]
\end{obs}

\begin{prop}
  Considerem un \underline{sistema de conductors a potencial constant}. En aquest cas, a més de considerar la variació de l'energia del sistema, cal tenir en compte l'energia que subministren els generadors per mantenir constant els potencials dels conductors:
  \[ dW_g = dW + dU. \]
  De fet, es pot veure que $dW = 2 dU$.

  En aquest cas la força i moment resultants sobre un dels conductors són:
  \[ \begin{cases}
    \vec{F} = (\grad U)_V, \\
    \gamma_i = \left( \frac{\partial U}{\partial \alpha_i}_V \right).
  \end{cases} \]
\end{prop}

\begin{obs}
  En aquest darrer cas és útil utilitzar la següent expressió de l'energia:
  \[ U = \frac{1}{2} \sum_{i = 1}^n \sum_{j = 1}^n a_{ij} V_i V_j. \]
\end{obs}
