diff --git a/quad8/electro/resum/.gitignore b/quad8/electro/resum/.gitignore
new file mode 100644
index 0000000..a136337
--- /dev/null
+++ b/quad8/electro/resum/.gitignore
@@ -0,0 +1 @@
+*.pdf
diff --git a/quad8/electro/resum/README.md b/quad8/electro/resum/README.md
new file mode 100644
index 0000000..81d6254
--- /dev/null
+++ b/quad8/electro/resum/README.md
@@ -0,0 +1,31 @@
+# Resum d'electromagnetisme
+Aquesta carpeta conté el codi font del resum en LaTeX de l'assignatura
+electromagnetisme del grau de física de la UB al curs 2020-21.
+
+*** note
+**Nota:** Aquest resum no està complet. S'anirà omplint a mesura que vagi
+avançant el curs.
+***
+
+## Ubicació del PDF del resum
+El PDF del resum està penjat a la carpeta d'electromagnetisme del Drive de
+Física UB.
+
+## Generació del PDF
+Si no tens accés al Drive o vols fer canvis al codi font, pots generar tu mateix
+el PDF. Per això, hauràs d'instal·lar abans un paquet i una classe de document
+que no venen preinstal·lats amb el LaTeX ja que són propis:
+
+1. Clona el repositori del paquet apuntsgenerics mitjançant la següent comanda:
+`git clone "https://gerrit.avm99963.com/edu/apuntsgenerics-package"`, o
+[descarrega't la carpeta comprimida](https://gerrit.avm99963.com/plugins/gitiles/edu/apuntsgenerics-package/+archive/refs/heads/master.tar.gz)
+i descomprimeix-la.
+2. A la terminal navega a la carpeta on tens el codi font del paquet, i executa
+la comanda `make`.
+3. Això hauria d'haver creat els següents fitxers a la mateixa carpeta:
+`apuntsgenerics.sty` i `notes.cls`. Instal·la aquests fitxers al directori on
+pots instal·lar els paquets/classes de documents de LaTeX, que pot ser diferent
+segons la distribució de LaTeX que tinguis instal·lada. També funciona copiar
+aquests fitxers al mateix directori on està el codi font del LaTeX que vols
+compilar.
+4. Compila el fitxer `main.tex` d'aquesta carpeta.
diff --git a/quad8/electro/resum/main.tex b/quad8/electro/resum/main.tex
new file mode 100644
index 0000000..c420de5
--- /dev/null
+++ b/quad8/electro/resum/main.tex
@@ -0,0 +1,30 @@
+\documentclass[12pt,catalan]{notes}
+
+\usepackage{apuntsgenerics}
+
+\setlength{\parskip}{1em}
+
+% Tensor commands:
+\newcommand*{\TT}[1]{\bar{\bar{#1}}}
+
+\title{\vspace{-.5em}Resum electromagnetisme}
+\author{Adrià Vilanova Martínez\vspace{-2em}}
+
+\titlemonth{Semestre primavera curs 2020-21}
+
+\newcommand{\ex}{\text{Ex}}
+
+\newcommand*\lapl{\Delta}
+
+\begin{document}
+
+\makecover
+
+\input{tema1.tex}
+\input{tema2.tex}
+\input{tema3.tex}
+\input{tema4.tex}
+
+%\printindex
+
+\end{document}
diff --git a/quad8/electro/resum/tema1.tex b/quad8/electro/resum/tema1.tex
new file mode 100644
index 0000000..ec2a437
--- /dev/null
+++ b/quad8/electro/resum/tema1.tex
@@ -0,0 +1,113 @@
+% !TEX root = main.tex
+\chapter{Electrostàtica en el buit}
+
+\section{Introducció}
+
+\begin{defi}[Densitat de càrrega]
+  Les densitats de càrrega volúmica, superficial i lineal són, respectivament:
+  \[ \rho(\vec{r}) = \frac{\dif q}{\dif V}, \]
+  \[ \sigma(\vec{r}) = \frac{\dif q}{\dif s}, \]
+  \[ \lambda(\vec{r}) = \frac{\dif q}{\dif l}. \]
+
+  Per les càrreges puntuals normalment denotarem la seva càrrega amb la lletra $q$.
+\end{defi}
+
+\begin{prop}[Llei de Coulomb]
+  \[ \vec{F_{12}} = K \frac{q_1 q_2}{r_{12}^2} \vec{e}_{12} = K \frac{q_1 q_2}{r_{12}^3} \vec{r}_{12}, \]
+  on $\displaystyle \vec{a}_{12} := \frac{\vec{r}_{12}}{|| \vec{r}_{12} ||}$ és el vector que apunta de la càrrega 1 a la 2 normalitzat i $\displaystyle k = \frac{1}{4 \pi \varepsilon_0}$, on $\varepsilon_0 = \SI{8.845e-12}{\coulomb\squared \per\newton \per\meter\squared}$ és la permitivitat del buit.
+\end{prop}
+
+\begin{prop}[Principi de superposició]
+  La força deguda a un sistema de càrregues és la suma de les forces deguda a cada una d'elles com si estigués sola:
+  \[ \vec{F}_j = \frac{1}{4 \pi \varepsilon_0} \sum_{\substack{i=1 \\ i \neq j}}^N \frac{q_i q_j}{r_{ij}^3} \vec{r}_{ij}. \]
+\end{prop}
+
+\begin{prop}[Camp elèctric]
+  El camp elèctric és:
+  \[ \vec{E} = \frac{\vec{F}}{q}. \]
+
+  Així doncs, el camp elèctric creat per una càrrega puntual és:
+  \[ \vec{E} = \frac{1}{4 \pi \varepsilon_0} \frac{q_1}{r_{12}^3} \vec{r}_{12}, \]
+  i el camp elèctric creat per una distribució volúmica de càrrega (és anàlog per distribucions superficials i lineals) és:
+  \[ \vec{E} = \frac{1}{4 \pi \varepsilon_0} \int_V \frac{\rho(\vec{r}) \cdot \vec{r}}{r^3} \dif v. \]
+\end{prop}
+
+\section{Equacions fonamentals del camp elèctric}
+
+\begin{obs}
+  Propietats del camp elèctric.
+
+  \begin{enumerate}
+    \item Llei de Gauss:
+    \[ \oint_S \vec{E} \cdot \vec{\dif S} = \frac{Q_i}{\varepsilon_0}. \]
+
+    \item Circulació del camp sobre un camí tancat:
+    \[ \oint_C \vec{E} \cdot \vec{\dif l} = 0. \]
+
+    Això vol dir que el camp elèctric és conservador, i per tant:
+    \begin{enumerate}[a)]
+      \item $V(A) - V(B) = \int_C \vec{E} \cdot \vec{\int l}$ per tot camí $C$ que uneixi els punts $A$ i $B$ (és a dir, el valor del potencial a un punt $A$ respecte d'un orígen $B$ és independent del camí seguit).
+      \item $\vec{E} = - \grad V$.
+    \end{enumerate}
+  \end{enumerate}
+\end{obs}
+
+\begin{prop}[Gauss's law in differential form]
+  \[ \div \vec{E} = \frac{\rho}{\varepsilon_0}. \]
+\end{prop}
+
+\begin{prop}
+  El camp elèctric al buit és irrotacional:
+  \[ \curl \vec{E} = 0. \]
+\end{prop}
+
+\begin{prop}[Condicions de continuïtat del camp elèctric]
+  \[ \vec{n} \cross (\vec{E}_2 - \vec{E}_1) = 0, \qquad \vec{n} \cdot (\vec{E}_2 - \vec{E}_1) = \frac{\sigma}{\varepsilon_0}. \]
+\end{prop}
+
+\section{Altres equacions}
+
+\begin{prop}[Equació de Poisson]
+  \[ \lapl V = - \frac{\rho}{\varepsilon_0}. \]
+\end{prop}
+
+\begin{prop}[Equació de Laplace]
+  En els punts on no hi ha càrrega, l'equació de Poisson es pot expressar com:
+  \[ \lapl V = 0. \]
+\end{prop}
+
+\begin{obs}
+  Propietats del potencial elèctric:
+  \begin{enumerate}
+    \item Pren \underline{valors finits} (està fitat).
+    \item Sempre és \underline{continu}, però no és $\mathcal{C}^2$ en general (per les condicions de continuïtat del camp elèctric).
+    \item Si $\rho = 0$, not pot tenir cap màxim o mínim local.
+    \item Compleix el \underline{principi de superposició} (és a dir, l'espai de solucions és un espai vectorial).
+    \item És \underline{constant} en volums tancats per \underline{àrees equipotencials}.
+    \item El potencial és \underline{únic}.
+  \end{enumerate}
+\end{obs}
+
+\section{Dipol elèctric i moment dipolar}
+
+\begin{defi}[Moment dipolar]
+  El moment dipolar d'un dipol (que consisteix de dos càrregues puntuals $+q$ i $-q$ separades per $\vec{l}$) és:
+  \[ \vec{p} = q \vec{l}. \]
+\end{defi}
+
+\begin{prop}
+  El potencial creat per un dipol és:
+  \[ V(p) = \frac{\vec{p} \cdot \vec{r}}{4 \pi \varepsilon_0 r^2}, \]
+  i el camp elèctric creat és:
+  \[ \vec{E} = - \grad V = \frac{1}{4 \pi \varepsilon_0} \left( \frac{3 (\vec{p} \cdot \vec{r}) \vec{r}}{r^5} - \frac{\vec{p}}{r^3} \right). \]
+\end{prop}
+
+\begin{prop}
+  Si existeix un camp elèctric extern, l'energia d'un dipol en aquest camp és el treball que es fa per portar-lo del despatx del Varela (l'infinit) al punt on es troba, que és:
+  \[ U = - \vec{p} \cdot \vec{E}. \]
+
+  La força total que exerceix el camp sobre el dipol és
+  \[ \vec{F} = (\vec{p} \cdot \nabla) \vec{E} \]
+  i el moment de força electrostàtica respecte el punt mig de les dues càrregues del dipol és
+  \[ \vec{\Gamma} = \vec{p} \cross \vec{E}. \]
+\end{prop}
diff --git a/quad8/electro/resum/tema2.tex b/quad8/electro/resum/tema2.tex
new file mode 100644
index 0000000..fb1dfc2
--- /dev/null
+++ b/quad8/electro/resum/tema2.tex
@@ -0,0 +1,125 @@
+% !TEX root = main.tex
+\chapter{Electrostàtica en dielèctrics}
+
+\section{Introducció}
+
+\begin{defi}
+  Depenent de com es comporten en presència d'un camp elèctric, els materials es poden dividir entre:
+  \begin{itemize}
+    \item \underline{Materials dielèctrics}: les seves càrregues, sota l'acció d'una força elèctrica, pateixen desplacaments petits respecte l'equilibri.
+
+    \item \underline{Materials conductors}: part de les seves càrregues, sota l'acció d'una força elèctrica, poden moure's gairebé lliurement per tot el material.
+  \end{itemize}
+\end{defi}
+
+\begin{defi}
+  Quan un medi s'introdueix en un camp elèctric té lloc el fenòmen de la polarització. En funció dels tipus de molècules que els constitueixen, podem dividir els medis en:
+  \begin{enumerate}
+    \item \underline{Dielèctrics de molècules no polars}: el moment dipolar per a cada molècula és nul.
+
+    \item \underline{Dielèctrics de molècules polars}: cada molècula presenta un moment dipolar $\vec{p}_0 \neq 0$, però la seva distribució a l'atzar fa que el moment dipolar total sigui nul.
+  \end{enumerate}
+\end{defi}
+
+\begin{defi}
+  Quan un material està sotmès a un camp elèctric poden tenir lloc els següents fenòmens:
+  \begin{enumerate}
+    \item \underline{Polarització electrònica}: en una molècula on el centre de càrrega positiva i negativa coincideixen, en aplicar el camp elèctric els dos es separen i apareix un moment dipolar no nul.
+
+    \item \underline{Polarització iònica}: en una molècula no polar que consisteixi d'enllaços iònics, si els àtoms estan diferentment carregats poden apropar-se/allunyar-se depenent del camp elèctric, i donar un moment dipolar no nul.
+
+    \item \underline{Polarització dipolar}: un dielèctric de molècules polars es polaritzarà sota l'acció d'un camp elèctric ja que les molècules tendiran a dirigir-se en el sentit del camp.
+  \end{enumerate}
+\end{defi}
+
+\begin{defi}[Vector polarització]
+  El vector polarització $\vec{P}$ es defineix com el moment dipolar per unitat de volum:
+  \[ \vec{P} := \frac{\dif p}{\dif v}. \]
+\end{defi}
+
+\begin{prop}
+  El potencial creat per un medi polaritzat és:
+  \[ V(P) = \frac{1}{4 \pi \varepsilon_0} \int_V \frac{\vec{P} \cdot \vec{r}}{r^3} \dif v. \]
+\end{prop}
+
+\begin{prop}
+  En comptes d'utilitzar l'expressió anterior, podem expressar la polarització com si fos una densitat de càrrega de la següent manera:
+  \[ \begin{cases}
+    \sigma_P = \vec{P} \cdot \vec{n}, \\
+    \rho_P = - \div \vec{P}.
+  \end{cases} \]
+  i calcular el potencial i el camp considerant les càrregues pures i les de polarització:
+  \[ \begin{cases}
+    \displaystyle V = \frac{1}{4 \pi \varepsilon_0} \left( \int_V \frac{\rho + \rho_P}{r} \dif v + \int_S \frac{\sigma + \sigma_P}{r} \dif s \right), \\
+    \displaystyle \vec{E} = \frac{1}{4 \pi \varepsilon_0} \left( \int_V \frac{(\rho + \rho_P) \vec{r}}{r^3} \dif v + \int_S \frac{(\sigma + \sigma_P) \vec{r}}{r^3} \dif s \right).
+  \end{cases} \]
+
+  Sempre es té que la càrrega de polarització és nul·la:
+  \[ Q_P = \int_V \rho_P \dif v + \int_S \sigma_P \dif s = 0. \]
+\end{prop}
+
+\section{Equacions fonamentals en medis dielèctrics}
+
+\begin{defi}
+  El vector desplaçament és:
+  \[ \vec{D} := \varepsilon_0 \vec{E} + \vec{P}. \]
+\end{defi}
+
+\begin{prop}
+  Les equacions fonamentals en medis dielèctrics són les següents:
+  \begin{align*}
+    \oint_S \vec{D} \vec{\dif S} &= Q_i & \oint_C \vec{E} \vec{\dif l} &= 0 \\
+    \div \vec{D} &= \rho & \curl \vec{E} &= 0 \\
+    \vec{n} \cdot (\vec{D_2} - \vec{D_1}) &= \sigma & \vec{n} \cross (\vec{E_2} - \vec{E_1}) &= 0
+  \end{align*}
+\end{prop}
+
+\section{Susceptibilitat elèctrica i permititivat}
+
+\begin{defi}
+  Per poder determinar les densitats de càrrega de polarització necessitem saber el valor de $\vec{P}$, i per això necessitem saber quina relació hi ha entre $\vec{P}$ i $\vec{E}_{ext}$. Per això, dividim els materials en diferents grups segons la relació:
+
+  \begin{enumerate}
+    \item \underline{Polarització permanent}: materials que encara amb absència de camp elèctrics presenten una polarització.
+
+    \item \underline{Dielèctrics no lineals}: Relació entre $\vec{P}$ i $\vec{E}$ no lineal:
+    \[ P_i = \sum_{j = 1}^3 \alpha_{ij} E_j + \sum_{j = 1}^3 \sum_{k = 1}^3 \beta_{ijk} E_j E_k + \cdots. \]
+
+    \item \underline{Dielèctrics lineals:} Relació entre $\vec{P}$ i $\vec{E}$ lineal:
+    \[ P_i = \varepsilon_0 \sum_{j = 1}^3 \chi_{ij} E_j. \]
+    Definim $\TT{\chi}$ com el tensor de susceptibilitat elèctrica, que pot dependre de la posició i de la direcció del camp.
+
+    \item \underline{Dielèctrics lineals i isòtrops:} Dielèctric lineal en què la polarització no depèn de la direcció del camp, i per tant:
+    \[ \vec{P} = \varepsilon_0 \chi \vec{E}, \quad \chi \in \mathbb{R}^+. \]
+  \end{enumerate}
+\end{defi}
+
+\begin{defi}
+  En un dielèctric LI (lineal i isotròpic) podem definir:
+  \begin{itemize}
+    \item \underline{Permitivitat relativa}: $\varepsilon_r := 1 + \chi$.
+    \item \underline{Permitivitat}: $\varepsilon := \varepsilon_0 \varepsilon_r$.
+  \end{itemize}
+\end{defi}
+
+\begin{prop}
+  En un dielèctric LI tenim:
+  \[ \vec{D} = \varepsilon_0 \vec{E} + \vec{P} = \varepsilon_0 (1 + \chi) \vec{E} = \varepsilon_0 \varepsilon_r \vec{E} = \varepsilon \vec{E}. \]
+\end{prop}
+
+\section{Equacions fonamentals en dielèctrics lineals i isòtrops}
+
+\begin{prop}
+  En medis LI les equacions fonamentals generals per dielèctrics es particularitzen així:
+  \begin{align*}
+    \curl \vec{E} &= 0, \\
+    \div (\varepsilon \vec{E}) &= \rho, \\
+    \vec{n} \cross (\vec{E}_2 - \vec{E}_1) &= 0, \\
+    \vec{n} \cdot (\varepsilon_2 \vec{E_2} - \varepsilon_1 \vec{E_1}) &= \sigma.
+  \end{align*}
+\end{prop}
+
+\begin{obs}
+  Si el dielèctric a més de lineal i isòtrop és homogeni, la segona equació es pot expressar de la següent manera:
+  \[ \div \vec{E} = \frac{\rho}{\varepsilon}. \]
+\end{obs}
diff --git a/quad8/electro/resum/tema3.tex b/quad8/electro/resum/tema3.tex
new file mode 100644
index 0000000..d2f6d00
--- /dev/null
+++ b/quad8/electro/resum/tema3.tex
@@ -0,0 +1,97 @@
+% !TEX root = main.tex
+\chapter{Electrostàtica en conductors}
+
+\section{Introducció}
+
+\begin{prop}
+  Propietats d'un conductor.
+  \begin{enumerate}
+    \item A dins del conductor $\vec{E} = 0$.
+
+    \item A dins del conductor $V = \text{constant}$.
+
+    \item Un conductor no té densitat volúmica de càrrega, però sí densitat superficial de càrrega a la seva vora:
+    \[ Q = \int_S \sigma \dif s. \]
+  \end{enumerate}
+\end{prop}
+
+\begin{prop}[Teorema de Coulomb]
+  En punts exteriors suficientment propers a la superfície, tenim que la component normal del vector desplaçament és:
+  \[ D_n = \sigma. \]
+  Si el medi exterior és lineal i isòtrop, aleshores el vector desplaçament és perpendicular a la interfície i per tant
+  \[ \vec{D} = \sigma \vec{n} \implies \vec{E} = \frac{\sigma}{\varepsilon} \vec{n}. \]
+\end{prop}
+
+\begin{prop}
+  La pressió electrostàtica en un punt exterior suficientment proper a la superfície és:
+  \[ P = \frac{\dif F}{\dif S} = \frac{\sigma^2}{2 \varepsilon}. \]
+\end{prop}
+
+\section{Problema fonamental de l'equilibri electrostàtic en un conductor, i capacitat}
+
+En aquesta secció considerarem un únic conductor envoltat per un medi LIH (lineal, isòtrop i homogeni) indefinit.
+
+\begin{defi}
+  La capacitat d'un conductor és:
+  \[ C := \frac{Q}{V}. \]
+\end{defi}
+
+\begin{prop}
+  Si coneixem el potencial del conductor $V$, aleshores el potencial en tot punt de l'espai queda unívocament determinat resolent el problema de Dirichlet
+  \[ \begin{cases}
+    \lapl V(P) = 0, \\
+    V_S = V.
+  \end{cases} \]
+  Un cop trobat el potencial, podem calcular:
+  \[ \begin{cases}
+    \displaystyle \sigma = - \varepsilon \left( \frac{\partial V}{\partial n} \right)_S, \\[2ex]
+    \displaystyle Q = - \varepsilon \int_S \left( \frac{\partial V}{\partial n} \right)_S \dif s.
+  \end{cases} \]
+\end{prop}
+
+\begin{prop}
+  Si coneixem la càrrega del conductor $Q$, aleshores podem resoldre el problema de Dirichlet pel cas en què $V = V_0 = 1$, i per la proposició anterior obtindrem $V_0(P)$ i $Q_0 = C$, a partir dels quals podrem calcular:
+  \[ \begin{cases}
+    \displaystyle V = \frac{Q}{C} \\
+    \displaystyle V(P) = \frac{Q}{C} V_0(P) \\
+    \displaystyle \sigma = \frac{Q}{C} \sigma_0
+  \end{cases} \]
+\end{prop}
+
+\section{Sistemes de conductors}
+
+\begin{prop}
+  Si tenim un sistema d'$n$ conductors, els quals estan a potencials $\{ V_i \}_i$ i tenen càrregues totals $\{ Q_i \}_i$, tenim que:
+  \[ \begin{cases}
+    \displaystyle V_i = \sum_{j = 1}^n B_{ij} Q_j, \\
+    \displaystyle Q_i = \sum_{j = 1}^n A_{ij} V_j,
+  \end{cases} \]
+  on $A_{ii}$ s'anomenen coeficients de capacitat, $A_{ij}$ ($i \neq j$) coeficients de capacitat i $B_{ij}$ coeficients de potencial.
+\end{prop}
+
+\begin{prop}[Propietats dels coeficients de capacitat i influència.]
+  \[ \begin{cases}
+    a_ii > 0, \\
+    a_{ij} \leq 0 \quad \forall i \neq j, \\
+    a_{ij} = a_{ji}, \\
+    a_{ii} \geq - \sum_{\substack{j = 1 \\ i \neq j}^N a_{ji}},
+  \end{cases} \]
+  on la igualtat de la segona equació es dona quan no hi ha influència entre els conductors $i$ i $j$, i la igualtat de la quarta representa la influència total.
+\end{prop}
+
+\section{Condensadors}
+
+\begin{defi}
+  Un condensador és un sistema de dos conductors amb la mateixa càrrega però de signe oposat.
+
+  La capacitat d'un condensador es defineix com:
+  \[ C := \frac{Q_1}{V_1 - V_2}. \]
+\end{defi}
+
+\begin{prop}[Associació de condensadors]
+  Si $n$ condensadors estan connectats en sèrie, aleshores la capacitat del conjunt és:
+  \[ \frac{1}{C} = \sum_{i = 1}^n \frac{1}{C_i}. \]
+
+  D'altra manera, si $n$ condensadors estan connectats en paral·lel, aleshores:
+  \[ C = \sum_{i = 1}^n C_i. \]
+\end{prop}
diff --git a/quad8/electro/resum/tema4.tex b/quad8/electro/resum/tema4.tex
new file mode 100644
index 0000000..c4bb7f7
--- /dev/null
+++ b/quad8/electro/resum/tema4.tex
@@ -0,0 +1,95 @@
+% !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}
