diff --git a/quad9/electrodinamica/homework/.gitignore b/quad9/electrodinamica/homework/.gitignore
new file mode 100644
index 0000000..f0de8a3
--- /dev/null
+++ b/quad9/electrodinamica/homework/.gitignore
@@ -0,0 +1 @@
+main.pdf
diff --git a/quad9/electrodinamica/homework/hw1/main.tex b/quad9/electrodinamica/homework/hw1/main.tex
new file mode 100644
index 0000000..c669a6a
--- /dev/null
+++ b/quad9/electrodinamica/homework/hw1/main.tex
@@ -0,0 +1,89 @@
+\documentclass[11pt,a4paper,dvipsnames]{article}
+\usepackage[utf8]{inputenc}
+
+\usepackage[catalan]{babel}
+\input{../../../hw_preamble.tex}
+
+\title{Entrega 1 de problemes\\Electrodinàmica}
+\author{Adrià Vilanova Martínez}
+\date{18 de setembre, 2021}
+
+\showcorrectionsfalse % Change "true" to "false" in order to show corrections as
+                      % if they weren't corrections (in black instead of red).
+
+\begin{document}
+
+\maketitle
+
+\begin{Problem}
+  En un sistema de referència inercial $\mathbf{S}$, dos esdeveniments tenen lloc al mateix punt de l'espai, però a temps diferents. Demostreu que:
+
+  \begin{enumerate}[(a)]
+    \item L'ordre temporal és el mateix en tot sistema de referència inercial (SRI).
+
+    \item La separació temporal en SRI diferents no té fita superior, i és mínima en el sistema $\mathbf{S}$.
+
+    \item La separació espacial no té fita superior ni inferior.
+  \end{enumerate}
+\end{Problem}
+
+Tenim 2 esdeveniments, $\mathbf{E}_0 = (c t_0, x, y, z)_\mathbf{S}$ i $\mathbf{E}_1 = (c t_1, x, y, z)_\mathbf{S}$, on $t_0 < t_1$ ja que al sistema de referència $\mathbf{S}$ el primer experiment passa abans que el segon, però al mateix punt de l'espai.
+
+Sigui $\mathbf{S}'$ un altre SRI qualsevol. A aquest segon SRI anomenem els esdeveniments per $\mathbf{E}_0'$ i $\mathbf{E}_1'$, per fer èmfasi que els expressarem/representarem en les coordenades d'aquest segon SRI, tot i que formalment es tracta dels mateixos esdeveniments ($\mathbf{E}_i \equiv \mathbf{E}_i'$).
+
+Suposarem que, tal com hem vist a classe, tots els sistemes de referència inercials es poden obtenir a partir d'un fixat a través del grup de transformacions de Poincaré. Aquest grup ve generat per les translacions d'espai, les translacions en el temps, les rotacions pròpies d'espai i els boosts en configuració estàndard (és a dir, qualsevol element del grup de Poincaré ve donat per la composició de diverses d'aquestes transformacions).
+
+\hrulefill
+
+\textbf{Solució per a):}
+
+Per demostrar aquest apartat, només fa falta comprovar que els generadors del grup compleixen la propietat de deixar l'ordre temporal invariant.
+
+És evident que sota les transformacions que només modifiquen l'espai (translacions i rotacions) l'ordre temporal es manté, ja que les coordenades temporals es mantenen invariants.
+
+Sota translacions temporals, l'ordre temporal (i, de fet, la separació temporal) també es manté, per la propietat bàsica
+\[ ct_0 < ct_1 \implies ct_0 + a < ct_1 + a. \]
+
+Així doncs, només fa falta comprovar que els boosts en configuració estàndard tenen aquesta propietat. Efectivament, això també passa, ja que la transformació de la coordenada temporal, tal com hem vist a classe, és:
+\[ ct' = \gamma \left( ct - \beta x \right), \]
+on $\beta = v/c$, i per tant obtenim:
+\[ ct_0' = \gamma \left( ct - \beta x \right) t_0 \notate[X]{{}<{}}{1}{t_0 < t_1} \gamma \left( ct - \beta x \right) t_1 = ct_1'. \]
+
+\textbf{Solució per b):}
+
+Prenem un sistema de referència $\mathbf{S}'$ que provingui d'un boost de Lorentz aplicat sobre el sistema de referència $\mathbf{S}$. Aleshores, tal com hem vist a classe els esdeveniments $\mathbf{E}_i' = (ct'_i, x', y', z')_{\mathbf{S}'}$ tindran coordenada temporal (llevat del ``factor de conversió''):
+\[ c t'_i = \gamma (c t_i - \beta x), \]
+i la diferència temporal entre els 2 esdeveniments a $\mathbf{S}'$ serà:
+\[ \Delta (ct') = ct'_1 - ct'_0 = \gamma c (t_1 - t_0) \lnotate[X]{{}={}}{1}{\scriptstyle \gamma = \frac{1}{\sqrt{1 - v^2/c^2}}} \frac{c}{\sqrt{1 - \frac{v^2}{c^2}}} (t_1 - t_0). \]
+
+El nostre objectiu és veure si podem fer $\Delta (ct')$ tant gran com volguem. Vegem què passa quan la velocitat s'apropa a $c$:
+\[ \lim_{v \to c^{-}} \Delta (ct) = \lim_{v \to c^{-}} \left[ \frac{c}{\sqrt{1 - \frac{v^2}{c^2}}} (t_1 - t_0) \right] \notate[X]{{}={}}{1}{\scriptstyle t_1 - t_0 \text{ constant}} c (t_1 - t_0) \lim_{v \to c^{-}} \frac{1}{\sqrt{1 - \frac{v^2}{c^2}}} = + \infty. \]
+
+Aleshores, això vol dir que per qualsevol separació temporal sempre podrem trobar una $v > 0$ tal que tingui aquesta separació.
+
+Per veure que la separació temporal mínima és la del sistema de referència $\mathbf{S}$, només caldrà veure que el boost de Lorentz que hem considerat abans en aquest apartat on la separació temporal és mínima és el definit pel paràmetre $v = 0$. Això és perquè qualsevol altre SRI es pot obtenir a partir d'un boost en configuració estàndard composat amb altres transformacions generadores del grup de Poincaré, que ja hem vist a l'apartat a) que mantenen les diferències de temps invariants.
+
+Primer de tot, observem que la funció $f(v) = \Delta(ct)$ és parell, ja que a la seva expressió només apareix $v^2$, que és igual a $(-v)^2$.
+
+Aleshores, si veiem que $f|_{(0, c)}$ és convexa (és a dir, amb derivada positiva), això vol dir que el mínim global de $f(v)$ és a $v = 0$.
+
+A $(0, c)$, tenim:
+\[ f'(v) = c(t_1 - t_0) \frac{1}{2} \left( 1 - \frac{v^2}{c^2} \right)^{-\frac{3}{2}} \frac{2v}{c^2} = \frac{v}{c} (t_1 - t_0) \left( 1 - \frac{v^2}{c^2} \right)^{- \frac{3}{2}}. \]
+
+Com $v > 0$, $t_0 < t_1 \implies t_1 - t_0 > 0$, i $v < c \implies 1 - \frac{v^2}{c^2} > 0$, tenim que $f'(v) > 0$ i, per tant, hem acabat la demostració.
+
+\newpage
+
+\textbf{Solució per c):}
+
+Considerem un Boost de Lorentz, i vegem que en el sistema $\mathbf{S}'$ fruit d'aquesta transformació podem assolir qualsevol separació espacial:
+\[ x_i' = \gamma (x - vt_i) \implies \]
+\[ \implies \Delta x' = x_1' - x_0' = \gamma (x - v t_1 - x + v t_0) = \gamma v (t_0 - t_1) = - \gamma v (t_1 - t_0) \implies \]
+\[ \implies \Delta x' = - \frac{v}{\sqrt{1 - \frac{v^2}{c^2}}} (t_1 - t_0). \]
+
+Observem que, si $v = 0$, $|\Delta x'| = 0$. A més, si fem tendir $v \to \pm c$:
+\[ \lim_{v \to -c^+} \Delta x' = + \infty, \quad \lim_{v \to +c^-} \Delta x' = - \infty. \]
+
+Així doncs, queda demostrat que no hi ha fita superior ni inferior per la separació espacial.
+
+\end{document}
