diff --git a/quad8/electro/lab/.gitignore b/quad8/electro/lab/.gitignore
new file mode 100644
index 0000000..38442af
--- /dev/null
+++ b/quad8/electro/lab/.gitignore
@@ -0,0 +1,2 @@
+main.pdf
+output
diff --git a/quad8/electro/lab/README.md b/quad8/electro/lab/README.md
new file mode 100644
index 0000000..a3fef0f
--- /dev/null
+++ b/quad8/electro/lab/README.md
@@ -0,0 +1,16 @@
+# Laboratori d'Electromagnetisme
+Aquí estan totes les pràctiques que he realitzat pel Laboratori
+d'Electromagnetisme, al semestre de primavera del curs 2020-21, a la Facultat
+de Física de la Universitat de Barcelona.
+
+Es tracta de les pràctiques amb número parell, ja que per la situació de la
+COVID-19 no he pogut realitzar totes.
+
+*** promo
+TODO(avm99963): Eliminar el següent paràgraf quan es corregeixin.
+***
+
+Els professors encara no han corregit els informes, així que és possible que
+estiguin malament. En concret, l'informe de la pràctica 12 és el de pitjor
+qualitat de tots degut al fet que per algun motiu moltes persones hem tingut
+problemes realitzant l'experiment i les dades obtingudes no són correctes.
diff --git a/quad8/electro/lab/p10/README.md b/quad8/electro/lab/p10/README.md
new file mode 100644
index 0000000..780992a
--- /dev/null
+++ b/quad8/electro/lab/p10/README.md
@@ -0,0 +1,8 @@
+Aquesta pràctica està distribuida en dues parts:
+
+- `informe.odt` contè la majoria de l'informe.
+- `q3.tex` contè la part final de l'informe, que s'ha de concatenar al final
+  de l'altre arxiu.
+
+Els dos fitxers junts formen l'informe (el que he entregat és la concatenació
+dels dos arxius exportats a PDF).
diff --git a/quad8/electro/lab/p10/informe.odt b/quad8/electro/lab/p10/informe.odt
new file mode 100644
index 0000000..e754aa9
--- /dev/null
+++ b/quad8/electro/lab/p10/informe.odt
Binary files differ
diff --git a/quad8/electro/lab/p10/q3.pdf b/quad8/electro/lab/p10/q3.pdf
new file mode 100644
index 0000000..6f1b462
--- /dev/null
+++ b/quad8/electro/lab/p10/q3.pdf
Binary files differ
diff --git a/quad8/electro/lab/p10/q3.tex b/quad8/electro/lab/p10/q3.tex
new file mode 100644
index 0000000..b41c6cf
--- /dev/null
+++ b/quad8/electro/lab/p10/q3.tex
@@ -0,0 +1,25 @@
+\input{../preamble.tex}
+
+\begin{document}
+  \textbf{(c) Demostreu que, independentment de l'amplitud, quan se sumen (o resten) tensions de freqüències diferents, $|V_{12}|^2 = |V_1|^2 + |V_2|^2$. Quina relació hi ha entre els seus valors RMS?}
+
+  L'amplitud mitjana quadràtica (RMS) està definida com:
+  \[ V_{12, \text{RMS}} = \lim_{T \to \infty} \sqrt{\frac{1}{2T} \int_{-T}^T V(x)^2 dx} = \lim_{x \to \infty} \sqrt{\frac{1}{2T} \int_{-T}^T (V_1(x) + V_2(x))^2 dx}. \]
+
+  Si tenim dos tensions alternes amb freqüències diferents, calculem la intergral de la suma (o la diferència):
+  \[ \int_{-T}^T (V_1(x) \pm V_2(x))^2 dx = \int_{-T}^T (V_1 \cos(\omega_1 x) \pm V_2 \cos(\omega_2 x))^2 dx = \]
+  \[ = \int_{-T}^T (V_1^2 \cos^2(\omega_1 x) + V_2^2 \cos^2(\omega_2 x) \pm V_1 V_2 \cos(\omega_1 x) \cos(\omega_2 x)) dx = \]
+  \[ = \left[ V_1^2 \frac{1}{2} t + \frac{sin(2 \omega_1 x)}{4 \omega_1} + V_2^2 \frac{1}{2} t + \frac{sin(2 \omega_2 x)}{4 \omega_2} \pm \frac{\omega_1 \sin(\omega_1 x) \cos(\omega_2 x) - \omega_2 \cos(\omega_1 x) \sin(\omega_2 x)}{\omega_1^2 - \omega_2^2} \right]_{-T}^T = \]
+  \[ = T [ V_1^2 + V_2^2 ] + \xi(T), \]
+  on $\xi(T)$ és una funció fitada per tot $T \in \mathbb{R}$.
+
+  Per tant, substituint a la primera expressió:
+  \[ V_{12, \text{RMS}} = \lim_{T \to \infty} \sqrt{\frac{1}{2T} \left[ T(V_1^2 + V_2^2) + \xi(T) \right]} = \lim_{T \to \infty} \sqrt{\frac{1}{2} \left[ V_1^2 + V_2^2 + \frac{\xi(T)}{T} \right]} = \]
+  \[ = \sqrt{\left(\frac{V_1}{\sqrt{2}}\right)^2 + \left(\frac{V_2}{\sqrt{2}}\right)^2} = \sqrt{V_{1, \text{RMS}}^2 + V_{2, \text{RMS}}^2}, \]
+  on hem utilitzat que com $\xi(T)$ és fitada per tot $T$, aleshores $\dfrac{\xi(T)}{T} \xrightarrow[T \to \infty]{} 0$.
+
+  Per tant, reorganitzant l'equació:
+  \[ V_{12, \text{RMS}}^2 = V_{1, \text{RMS}}^2 + V_{2, \text{RMS}}^2 \]
+
+  Si tenim en compte que $V_{i, \text{RMS}} = \dfrac{V_i}{\sqrt{2}}$, aleshores substituint obtenim la igualtat que ens demanaven demostrar.
+\end{document}
diff --git a/quad8/electro/lab/p12/data/12_3_1.dat b/quad8/electro/lab/p12/data/12_3_1.dat
new file mode 100644
index 0000000..2afac62
--- /dev/null
+++ b/quad8/electro/lab/p12/data/12_3_1.dat
@@ -0,0 +1,32 @@
+# t	V	log V
+0	2778	7.929486523
+10	2521.9	7.832767865
+20	2301.5	7.741316363
+30	2093.8	7.646735876
+40	1909.1	7.554387206
+50	1740.6	7.46198516
+60	1589	7.370860167
+70	1452.5	7.281041489
+80	1325.3	7.189394128
+90	1210.4	7.098706162
+100	1104.9	7.007510112
+110	1010.8	6.918497376
+120	921.96	6.826501839
+130	843.4	6.737441341
+140	770.85	6.647493802
+150	704.44	6.557403161
+160	645.16	6.469498348
+170	589.95	6.380037788
+180	539.97	6.291513582
+190	494.4	6.203344906
+200	452.23	6.1141909
+210	413.96	6.025769351
+220	378.99	5.93750982
+230	346.94	5.849151854
+240	318.27	5.762900079
+250	291.68	5.675657311
+260	266.93	5.586986452
+270	244.69	5.499992103
+280	224.64	5.414499121
+290	205.82	5.327002
+300	188.89	5.241164835
diff --git a/quad8/electro/lab/p12/data/12_3_2.dat b/quad8/electro/lab/p12/data/12_3_2.dat
new file mode 100644
index 0000000..ea60bc3
--- /dev/null
+++ b/quad8/electro/lab/p12/data/12_3_2.dat
@@ -0,0 +1,22 @@
+# t (us)	V (V)	log V
+0	3.91	1.363537374
+3	3.78	1.32972401
+6	3.68	1.302912752
+8.99	3.56	1.269760545
+12	3.45	1.238374231
+15	3.35	1.208960346
+18	3.23	1.172482137
+21	3.15	1.147402453
+24	3.05	1.115141591
+27	2.95	1.08180517
+30	2.88	1.057790294
+33	2.78	1.022450928
+36	2.7	0.993251773
+39	2.61	0.9593502213
+42	2.51	0.9202827531
+45	2.45	0.8960880246
+48	2.36	0.858661619
+51	2.28	0.824175443
+54	2.21	0.7929925155
+57	2.16	0.7701082217
+59.9	2.08	0.7323678937
diff --git a/quad8/electro/lab/p12/data/12_3_3.dat b/quad8/electro/lab/p12/data/12_3_3.dat
new file mode 100644
index 0000000..5fb83e5
--- /dev/null
+++ b/quad8/electro/lab/p12/data/12_3_3.dat
@@ -0,0 +1,10 @@
+# Freq (Hz)	V (V)
+100	3.04
+200	3.04
+500	3
+1000	2.92
+2000	2.44
+5000	1.2
+10000	0.66
+20000	0.35
+50000	0.146
diff --git a/quad8/electro/lab/p12/graphs/12_3_1.gnu b/quad8/electro/lab/p12/graphs/12_3_1.gnu
new file mode 100755
index 0000000..d801e35
--- /dev/null
+++ b/quad8/electro/lab/p12/graphs/12_3_1.gnu
@@ -0,0 +1,58 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/12_3_1' # Nom de la imatge resultant (sense extensió)
+datafile = '../data/12_3_1.dat' # Nom del fitxer de dades que es vol usar
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 10cm, 7.5cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel 't $(\si{\second})$'
+set ylabel '$\log(V)$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+# == CONFIGURACIÓ DEL FIT ==
+set fit quiet
+
+f(x) = a*x + b # Funció a fitar
+fit f(x) datafile u 1:3 via a, b # Fem el fit de les dades
+
+# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
+# guardat a la var. "STATS_correlation"
+stats datafile u 1:3 name "STATS" nooutput
+
+# Funció per obtenir els dígits significatius d'una expressió
+f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
+significant_digits(n) = f_sd(n - 10*int(n/10), 0)
+
+significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - abs(n)))
+
+error_a = STATS_slope_err
+sd_error_a = significant_digits(error_a)
+error_b = STATS_intercept_err
+sd_error_b = significant_digits(error_b)
+r = STATS_correlation
+sd_r = significant_digits_r(r)
+
+print("=== ".datafile." ===")
+print(sprintf('delta(a) = %.'.sd_error_a.'f, sd=%.0f', error_a, sd_error_a))
+print(sprintf('delta(b) = %.'.sd_error_b.'f, sd=%.0f', error_b, sd_error_b))
+
+# Aquesta funció escriu, a partir dels valors del paràmetres a, b i r,
+# l'equació de la regressió:
+title_f(a, b, r) = sprintf('$\log V(t) = %.'.sd_error_a.'f t + (%.'.sd_error_b.'f)$, $r = %.'.sd_r.'f$', a, b, r);
+
+plot datafile u 1:3 t "Dades experimentals" w p, f(x) t title_f(a, b, r)
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p12/graphs/12_3_2.gnu b/quad8/electro/lab/p12/graphs/12_3_2.gnu
new file mode 100755
index 0000000..f0fe21f
--- /dev/null
+++ b/quad8/electro/lab/p12/graphs/12_3_2.gnu
@@ -0,0 +1,58 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/12_3_2' # Nom de la imatge resultant (sense extensió)
+datafile = '../data/12_3_2.dat' # Nom del fitxer de dades que es vol usar
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 10cm, 7.5cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel 't $(\si{\micro\second})$'
+set ylabel '$\log(V)$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+# == CONFIGURACIÓ DEL FIT ==
+set fit quiet
+
+f(x) = a*x + b # Funció a fitar
+fit f(x) datafile u 1:3 via a, b # Fem el fit de les dades
+
+# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
+# guardat a la var. "STATS_correlation"
+stats datafile u 1:3 name "STATS" nooutput
+
+# Funció per obtenir els dígits significatius d'una expressió
+f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
+significant_digits(n) = f_sd(n - 10*int(n/10), 0)
+
+significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - abs(n)))
+
+error_a = STATS_slope_err
+sd_error_a = significant_digits(error_a)
+error_b = STATS_intercept_err
+sd_error_b = significant_digits(error_b)
+r = STATS_correlation
+sd_r = significant_digits_r(r)
+
+print("=== ".datafile." ===")
+print(sprintf('delta(a) = %.'.sd_error_a.'f, sd=%.0f', error_a, sd_error_a))
+print(sprintf('delta(b) = %.'.sd_error_b.'f, sd=%.0f', error_b, sd_error_b))
+
+# Aquesta funció escriu, a partir dels valors del paràmetres a, b i r,
+# l'equació de la regressió:
+title_f(a, b, r) = sprintf('$\log V(t) = %.'.sd_error_a.'f t + (%.'.sd_error_b.'f)$, $r = %.'.sd_r.'f$', a, b, r);
+
+plot datafile u 1:3 t "Dades experimentals" w p, f(x) t title_f(a, b, r)
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p12/graphs/12_3_3.gnu b/quad8/electro/lab/p12/graphs/12_3_3.gnu
new file mode 100755
index 0000000..edc96e9
--- /dev/null
+++ b/quad8/electro/lab/p12/graphs/12_3_3.gnu
@@ -0,0 +1,29 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/12_3_3' # Nom de la imatge resultant (sense extensió)
+datafile = '../data/12_3_3.dat' # Nom del fitxer de dades que es vol usar
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 10cm, 7.5cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel 't $(\si{\micro\second})$'
+set ylabel 'V $(\si{\volt})$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+set logscale xy
+
+plot datafile u 1:2 t "Dades experimentals" w p
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p12/graphs/generate.bash b/quad8/electro/lab/p12/graphs/generate.bash
new file mode 100755
index 0000000..3a4ef9e
--- /dev/null
+++ b/quad8/electro/lab/p12/graphs/generate.bash
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+mkdir -p ../output
+
+./12_3_1.gnu
+./12_3_2.gnu
+./12_3_3.gnu
diff --git a/quad8/electro/lab/p12/informe/main.tex b/quad8/electro/lab/p12/informe/main.tex
new file mode 100644
index 0000000..c6fb694
--- /dev/null
+++ b/quad8/electro/lab/p12/informe/main.tex
@@ -0,0 +1,120 @@
+\input{../../preamble.tex}
+
+% Changing margins just so the tables fit nicely:
+\geometry{margin=20mm}
+
+\graphicspath{ {./img/} }
+
+\pagestyle{fancy}
+\fancyhf{}
+\rhead{Víctor Rubio Español, Adrià Vilanova Martínez}
+\lhead{Pràctica 12}
+\rfoot{\thepage}
+%%%% Title %%%%
+\title{Pràctica 12. Transistori RC. Filtre RC passa-baixos.}
+\author{Víctor Rubio Español, Adrià Vilanova Martínez (4b, grup C1)}
+\date{Primavera 2020}
+
+\begin{document}
+  {\parskip=0pt
+    \maketitle
+  }
+
+  \section{Descàrrega d'un condensador}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$t (\si{\second})$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$V (\si{\milli\volt})$, fixed, fixed zerofill, precision=2},
+        columns/2/.style={column name=$\log(V)$, fixed, fixed zerofill, precision=2}
+    ]{../data/12_3_1.dat}
+
+    \captionof{figure}{Taula dels valors presos manualment amb un cronòmetre.}
+  \end{center}
+
+  La regressió és:
+  \[ V(t) = V_1 e^{\frac{-t}{RC}} \implies \log(V) = \underbrace{\log(V_1)}_{b} + \underbrace{\left(- \frac{1}{RC}\right)}_{a} t. \]
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/12_3_1.tex}
+    \caption{Gràfica que mostra la situació en què un condensador s'està descarregant.}
+  \end{figure}
+
+  En aquest cas tenim:
+  \[ a = \SI{-0.008946(17)e-3}{\per\second}, \]
+  \[ b = \SI{7.909(3)}{}, \]
+  \[ \tau = RC = - \frac{1}{a} = \SI{111.8(2)}{\second}, \]
+  \[ C = \frac{\tau}{R} = \SI{1.118(2)}{\milli\farad}.  \]
+
+  Amb el mètode alternatiu:
+  \[ V_0 = \SI{2.78}{\volt}, \]
+  \[ V_0/e = \SI{1.02}{\volt}, \]
+  \[ \tau = \SI{110}{\second} \]
+
+  \newpage
+
+  \section{Càrregues successives per aplicació d'un $V(t)$ de forma quadrada}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$t (\si{\micro\second})$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$V (\si{\milli\volt})$, fixed, fixed zerofill, precision=2},
+        columns/2/.style={column name=$\log(V)$, fixed, fixed zerofill, precision=2}
+    ]{../data/12_3_2.dat}
+
+    \captionof{figure}{Taula dels valors presos manualment amb els cursors de l'oscil·loscopi.}
+  \end{center}
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/12_3_2.tex}
+    \caption{Gràfica que mostra la situació en què un condensador s'està descarregant en mig d'un cicle de càrrega-descàrrega molt més curt que $\tau$.}
+  \end{figure}
+
+  En aquest cas tenim:
+  \[ a = \SI{-0.01051(5)}{\per\micro\second}, \]
+  \[ b = \SI{1.3656(4)}{}, \]
+  \[ \tau = RC = - \frac{1}{a} = \SI{-95.15(15)}{\micro\second}, \]
+  \[ C = \frac{\tau}{R} = \SI{0.951(2)}{\nano\farad}.  \]
+
+  \section{Filtre RC passa-baixos}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$\nu (\si{\hertz})$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$V (\si{\volt})$, fixed, fixed zerofill, precision=2}
+    ]{../data/12_3_3.dat}
+
+    \captionof{figure}{Taula dels valors presos amb l'oscil·loscopi.}
+  \end{center}
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/12_3_3.tex}
+    \caption{Gràfica que mostra el grau de filtració de les freqüències provades.}
+  \end{figure}
+
+  \newpage
+
+  \section{Qüestions}
+
+  \textbf{(a) Demostreu que $RC$ té dimensions de temps:}
+  \[ \left.\begin{array}{r}
+    {[R]} = \si{\ohm} = \si{\kilogram\meter\squared\per\second\cubed\per\ampere\squared} \\
+    {[C]} = \si{\farad} = \si{\ampere\squared\second\tothe{4}\per\kilogram\per\meter\squared}
+  \end{array}\right\} \implies [RC] = \si{\second} \]
+
+  \textbf{(b) Calculeu el temps que ha de passar, mesurat en termes de la constant de temps, perquè la tensió d'un condensador, en descarregar-se, arribi a un 1\% de la tensió inicial.}
+  \[ V_f(t_f) = \alpha V_i(t_i) \implies \exp\left(-\frac{t_f}{RC}\right) = \alpha \exp\left(-\frac{t_i}{RC}\right) \implies - t_f = RC \log(\alpha) - t_i \implies \]
+  \[ \implies \Delta t = t_f - t_i = - RC \log(\alpha) \notate[X]{{}={}}{1}{\scriptstyle \alpha = 0.01 = 1\%} - RC \log(0.01) \]
+
+  \textbf{(c) A partir del resultat de la qüestió anterior, indiqueu quina limitació existeix en el valor màxim de la freqüència del senyal quadrat, per a un valor determinat de $R$ i $C$, si es vol mesurar la constant de temps.}
+
+  Per una determinada freqüència $\nu$ tindrem un període $T = \frac{1}{\nu}$ en què ha de donar temps a carregar-se i descarregar-se ``completament'' (al 99\%) el condensador. Per tant:
+  \[ \frac{T}{2} \geq - RC \log(0.01) \implies T \geq - 2RC \log(0.01) \implies \nu \leq - \frac{1}{2RC \log(0.01)}. \]
+
+\end{document}
diff --git a/quad8/electro/lab/p2/data/2_3_1.dat b/quad8/electro/lab/p2/data/2_3_1.dat
new file mode 100644
index 0000000..55a68d0
--- /dev/null
+++ b/quad8/electro/lab/p2/data/2_3_1.dat
@@ -0,0 +1,15 @@
+# Lectura construït	Lectura patró (mA)
+102	1.06	95.22641509
+217	2.21	97.19004525
+330	3.33	98.0990991
+495	4.97	98.59758551
+738	7.4	98.72972973
+1208	12.08	99
+1551	15.51	99
+1832	18.31	99.05461496
+-1840	-18.32	99.43668122
+-1446	-14.39	99.48644892
+-1092	-10.86	99.55248619
+-790	-7.85	99.63694268
+-433	-4.28	100.1682243
+-106	-1.03	101.9126214
diff --git a/quad8/electro/lab/p2/data/2_3_2.dat b/quad8/electro/lab/p2/data/2_3_2.dat
new file mode 100644
index 0000000..98daeb9
--- /dev/null
+++ b/quad8/electro/lab/p2/data/2_3_2.dat
@@ -0,0 +1,12 @@
+# Lectura constr.	Lectura patró (V)	
+429	4.23	100.4184397
+803	7.88	100.9035533
+1170	11.47	101.005231
+1565	15.32	101.154047
+1909	18.66	101.3043944
+-1916	-18.67	101.6245313
+-1608	-15.67	101.6164646
+-1233	-12.01	101.6644463
+-818	-7.96	101.7638191
+-401	-3.88	102.3505155
+-113	-1.07	104.6074766
diff --git a/quad8/electro/lab/p2/data/2_3_3_a.dat b/quad8/electro/lab/p2/data/2_3_3_a.dat
new file mode 100644
index 0000000..2f92a4f
--- /dev/null
+++ b/quad8/electro/lab/p2/data/2_3_3_a.dat
@@ -0,0 +1,9 @@
+# R_nominal	V (mV)	I (A)	R_mesurada	DeltaR/R
+1	0.13	90	1.4	44.444
+10	0.64	61	10.5	4.918
+100	1.29	12.72	101.4	1.415
+1000	6.87	6.79	1011.8	1.178
+10000	19.82	2.01	9860.7	1.393
+100000	14.69	0.148	99256.8	0.743
+1000000	16.37	0.0181	904419.9	9.558
+10000000	37	0.0074	5000000.0	50.000
diff --git a/quad8/electro/lab/p2/data/2_3_3_b.dat b/quad8/electro/lab/p2/data/2_3_3_b.dat
new file mode 100644
index 0000000..44c7ee0
--- /dev/null
+++ b/quad8/electro/lab/p2/data/2_3_3_b.dat
@@ -0,0 +1,9 @@
+# R_nominal	V (mV)	I (A)	R_mesurada	DeltaR/R
+1	0.29	125.4	2.3	131.260
+10	0.71	63.5	11.2	11.811
+100	1.95	19.5	100.0	0.000
+1000	6.89	6.73	1023.8	2.377
+10000	22.7	2.29	9912.7	0.873
+100000	24.2	0.242	100000.0	0.000
+1000000	28.3	0.0285	992982.5	0.702
+10000000	23.9	0.0023	10391304.3	3.913
diff --git a/quad8/electro/lab/p2/graphs/2_3_1.gnu b/quad8/electro/lab/p2/graphs/2_3_1.gnu
new file mode 100755
index 0000000..4fafe1c
--- /dev/null
+++ b/quad8/electro/lab/p2/graphs/2_3_1.gnu
@@ -0,0 +1,58 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/2_3_1' # Nom de la imatge resultant (sense extensió)
+datafile = '../data/2_3_1.dat' # Nom del fitxer de dades que es vol usar
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 10cm, 7.5cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel '$I_c$'
+set ylabel '$I_p \, (\si{\milli\ampere})$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+# == CONFIGURACIÓ DEL FIT ==
+set fit quiet
+
+f(x) = a*x + b # Funció a fitar
+fit f(x) datafile u 1:2 via a, b # Fem el fit de les dades
+
+# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
+# guardat a la var. "STATS_correlation"
+stats datafile u 1:2 name "STATS" nooutput
+
+# Funció per obtenir els dígits significatius d'una expressió
+f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
+significant_digits(n) = f_sd(n - 10*int(n/10), 0)
+
+significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - abs(n)))
+
+error_a = STATS_slope_err
+sd_error_a = significant_digits(error_a)
+error_b = STATS_intercept_err
+sd_error_b = significant_digits(error_b)
+r = STATS_correlation
+sd_r = significant_digits_r(r)
+
+print("=== ".datafile." ===")
+print(sprintf('delta(a) = %.'.sd_error_a.'f, sd=%.0f', error_a, sd_error_a))
+print(sprintf('delta(b) = %.'.sd_error_b.'f, sd=%.0f', error_b, sd_error_b))
+
+# Aquesta funció escriu, a partir dels valors del paràmetres a, b i r,
+# l'equació de la regressió:
+title_f(a, b, r) = sprintf('$I_p(I_c) = %.'.sd_error_a.'f I_c + (%.'.sd_error_b.'f)$, $r = %.'.sd_r.'f$', a, b, r);
+
+plot datafile u 1:2 t "Dades experimentals" w p, f(x) t title_f(a, b, r)
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p2/graphs/2_3_2.gnu b/quad8/electro/lab/p2/graphs/2_3_2.gnu
new file mode 100755
index 0000000..ef11e30
--- /dev/null
+++ b/quad8/electro/lab/p2/graphs/2_3_2.gnu
@@ -0,0 +1,58 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/2_3_2' # Nom de la imatge resultant (sense extensió)
+datafile = '../data/2_3_2.dat' # Nom del fitxer de dades que es vol usar
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 10cm, 7.5cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel '$V_c$'
+set ylabel '$V_p \, (\si{\volt})$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+# == CONFIGURACIÓ DEL FIT ==
+set fit quiet
+
+f(x) = a*x + b # Funció a fitar
+fit f(x) datafile u 1:2 via a, b # Fem el fit de les dades
+
+# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
+# guardat a la var. "STATS_correlation"
+stats datafile u 1:2 name "STATS" nooutput
+
+# Funció per obtenir els dígits significatius d'una expressió
+f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
+significant_digits(n) = f_sd(n - 10*int(n/10), 0)
+
+significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - abs(n)))
+
+error_a = STATS_slope_err
+sd_error_a = significant_digits(error_a)
+error_b = STATS_intercept_err
+sd_error_b = significant_digits(error_b)
+r = STATS_correlation
+sd_r = significant_digits_r(r)
+
+print("=== ".datafile." ===")
+print(sprintf('delta(a) = %.'.sd_error_a.'f, sd=%.0f', error_a, sd_error_a))
+print(sprintf('delta(b) = %.'.sd_error_b.'f, sd=%.0f', error_b, sd_error_b))
+
+# Aquesta funció escriu, a partir dels valors del paràmetres a, b i r,
+# l'equació de la regressió:
+title_f(a, b, r) = sprintf('$V_p(V_c) = %.'.sd_error_a.'f V_c + (%.'.sd_error_b.'f)$, $r = %.'.sd_r.'f$', a, b, r);
+
+plot datafile u 1:2 t "Dades experimentals" w p, f(x) t title_f(a, b, r)
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p2/graphs/2_3_3.gnu b/quad8/electro/lab/p2/graphs/2_3_3.gnu
new file mode 100755
index 0000000..4f54964
--- /dev/null
+++ b/quad8/electro/lab/p2/graphs/2_3_3.gnu
@@ -0,0 +1,30 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/2_3_3' # Nom de la imatge resultant (sense extensió)
+datafile_a = '../data/2_3_3_a.dat' # Nom del fitxer de dades que es vol usar
+datafile_b = '../data/2_3_3_b.dat' # Nom del fitxer de dades que es vol usar
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 8cm, 6cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel '$R_{\text{nominal}} \, (\si{\ohm})$'
+set ylabel '$R_{\text{mesurada}} \, (\si{\ohm})$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+set logscale xy
+
+plot datafile_a u 1:4 t "Muntatge (a)" w p, datafile_b u 1:4 t "Muntatge (b)" w p
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p2/graphs/generate.bash b/quad8/electro/lab/p2/graphs/generate.bash
new file mode 100755
index 0000000..e4190ce
--- /dev/null
+++ b/quad8/electro/lab/p2/graphs/generate.bash
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+mkdir -p ../output
+
+./2_3_1.gnu
+./2_3_2.gnu
+./2_3_3.gnu
diff --git a/quad8/electro/lab/p2/informe/img/2_3_1.png b/quad8/electro/lab/p2/informe/img/2_3_1.png
new file mode 100644
index 0000000..a38ae1e
--- /dev/null
+++ b/quad8/electro/lab/p2/informe/img/2_3_1.png
Binary files differ
diff --git a/quad8/electro/lab/p2/informe/img/2_3_2.png b/quad8/electro/lab/p2/informe/img/2_3_2.png
new file mode 100644
index 0000000..2d5f651
--- /dev/null
+++ b/quad8/electro/lab/p2/informe/img/2_3_2.png
Binary files differ
diff --git a/quad8/electro/lab/p2/informe/main.tex b/quad8/electro/lab/p2/informe/main.tex
new file mode 100644
index 0000000..4f1cd1b
--- /dev/null
+++ b/quad8/electro/lab/p2/informe/main.tex
@@ -0,0 +1,157 @@
+\input{../../preamble.tex}
+
+% Changing margins just so the tables fit nicely:
+\geometry{margin=20mm}
+
+\graphicspath{ {./img/} }
+
+\pagestyle{fancy}
+\fancyhf{}
+\rhead{Víctor Rubio Español, Adrià Vilanova Martínez}
+\lhead{Pràctica 2}
+\rfoot{\thepage}
+%%%% Title %%%%
+\title{Pràctica 2. Construcció i connexió d'aparells de mesura}
+\author{Víctor Rubio Español, Adrià Vilanova Martínez (4b, grup C1)}
+\date{Primavera 2020}
+
+\begin{document}
+  {\parskip=0pt
+    \maketitle
+  }
+
+  \section{Amperímetre}
+
+  \begin{center}
+    \centering
+    \includegraphics[scale=0.5]{2_3_1.png}
+    \captionof{figure}{Circuit de calibratge.}
+  \end{center}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$I_c$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$I_p \, (\si{\milli\ampere})$, fixed, fixed zerofill, precision=2},
+        columns/2/.style={column name=$\frac{I_c - I_p}{I_p}$, fixed, fixed zerofill, precision=2},
+    ]{../data/2_3_1.dat}
+
+    \captionof{figure}{Taula de correspondència entre les lectures de l'amperímetre patró $I_p$ i el construït $I_c$.}
+  \end{center}
+
+  La regressió és:
+  \[ I_p(I_c) = m I_c + b. \]
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/2_3_1.tex}
+    \caption{Recta de regressió que calibra l'amperímetre.}
+  \end{figure}
+  \[ m = \SI{0.0099760(13)}{}, \]
+  \[ b = \SI{0.0356(14)}{\milli\ampere} \]
+
+  \section{Voltímetre}
+
+  \begin{center}
+    \centering
+    \includegraphics[scale=0.5]{2_3_2.png}
+    \captionof{figure}{Circuit de calibratge.}
+  \end{center}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$V_c$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$V_p \, (\si{\volt})$, fixed, fixed zerofill, precision=2},
+        columns/2/.style={column name=$\frac{V_c - V_p}{V_p}$, fixed, fixed zerofill, precision=2},
+    ]{../data/2_3_2.dat}
+
+    \captionof{figure}{Taula de correspondència entre les lectures del voltímetre patró $V_p$ i el construït $V_c$.}
+  \end{center}
+
+  La regressió és:
+  \[ V_p(V_c) = m V_c + b. \]
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/2_3_2.tex}
+    \caption{Recta de regressió que calibra el voltímetre.}
+  \end{figure}
+  \[ m = \SI{0.00997648(19)}{}, \]
+  \[ b = \SI{0.035(2)}{\milli\ampere} \]
+
+  \newpage
+
+  \section{Mesura de la resistència}
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/2_3_3.tex}
+    \caption{Comparació de les mesures de la resistència amb el muntatge (a) i el muntatge (b) del guió.}
+  \end{figure}
+
+  \subsection{Muntatge (a)}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$R_{\text{nominal}} \, (\si{\ohm})$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$V \, (\si{\milli\volt})$, fixed, fixed zerofill, precision=0},
+        columns/2/.style={column name=$I \, (\si{\ampere})$, fixed, fixed zerofill, precision=4},
+        columns/3/.style={column name=$R_{\text{mesurada}} \, (\si{\ohm})$, fixed, fixed zerofill, precision=2},
+        columns/4/.style={column name=$\frac{\Delta R}{R} \, (\%)$, fixed, fixed zerofill, precision=2},
+    ]{../data/2_3_3_a.dat}
+
+    \captionof{figure}{Valors obtinguts a partir de l'amperímetre i el voltímetre per diferents resistències, amb el muntatge (a).}
+  \end{center}
+
+  \subsection{Muntatge (b)}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$R_{\text{nominal}} \, (\si{\ohm})$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$V \, (\si{\milli\volt})$, fixed, fixed zerofill, precision=0},
+        columns/2/.style={column name=$I \, (\si{\ampere})$, fixed, fixed zerofill, precision=4},
+        columns/3/.style={column name=$R_{\text{mesurada}} \, (\si{\ohm})$, fixed, fixed zerofill, precision=2},
+        columns/4/.style={column name=$\frac{\Delta R}{R} \, (\%)$, fixed, fixed zerofill, precision=2},
+    ]{../data/2_3_3_b.dat}
+
+    \captionof{figure}{Valors obtinguts a partir de l'amperímetre i el voltímetre per diferents resistències, amb el muntatge (b).}
+  \end{center}
+
+  \section{Qüestions}
+
+  \textbf{(a) Impedància d'entrada de l'amperímetre construït:}
+  \[ R_{\text{A}} = \frac{1}{\frac{1}{R_V} + \frac{1}{r}} \approx \SI{50}{\ohm}. \]
+
+  \textbf{(b) Impedància d'entrada del voltímetre construït:}
+  \[ R_{\text{V}} = R_1 + \frac{1}{\frac{1}{R_2} + \frac{1}{R_V}} \approx \SI{1.999}{\mega\ohm}. \]
+
+  \textbf{(c) Si en el voltímetre construït substituïm la resistència $R_2$ per una altra de valor $R_2/2$, adaptant el valor de $R_1$ en aquesta nova situació per tal que la relació enre elles es mantingui constant, quin és el rang del nou aparell? I la resolució? Comenteu en quins aspectes aquest nou voltímetre és millor o pitjor que l'anterior.} \\
+  Com la relació es manté constant, tant el rang com la resolució seguiran sent els mateixos per simetria, ja que amb un voltatge fix, la caiguda de potencial mantindrà les mateixes proporcions (aproximant que $R_V \gg R_2$) i per tant mesurarem el mateix.
+
+  L'única diferència és que en aquest cas estem fent que la nova $R_2$ sigui encara més petita que $R_V$, i per tant estem millorant el fet que s'assembla més a un voltímetre ideal (passa menys corrent pel voltímetre bàsic). Tot i així, la mala notícia és que quan mesurem resistències petites, el voltatge mesurat no serà tant precís.
+
+  \textbf{(d) En quines regions s'aparten de la linealitat les gràfiques de l'apartat 2.3? Per què?}
+  En el muntatge (a) en la regió de resistències grans, ja que les resistències són de l'ordre de magnitud de les impedàncies d'entrada (el problema que ja hem comentat a l'apartat (c)).
+
+  En el muntatge (b) en la regió de resistències petites, ja que l'amperímetre té una impedància d'entrada molt petita.
+
+  \textbf{(e) Quan estem mesurant la resistència d'$\SI{1}{\ohm}$ amb el circuit (a), un canvi en l'escala de l'amperímetre provoca un canvi en la tensió mesurada pel voltímetre.}
+
+  \textbf{a.} Mai es mesura la tensió real, sempre és una aproximació. Però tot i així, en el cas del circuit (a) l'aproximació és prou bona, ja que la resistència del voltímetre (que està en paral·lel amb la resistència de prova) és molt gran.
+
+  \textbf{b.} El fet que si augmenta la resistència, aleshores la impedància de l'amperímetre és més petita, així que la diferència de tensió als dos extrems de l'amperímetre és menor.
+
+  \textbf{c.} No, degut a dues coses: el fet que el voltímetre no té una impedància infinita, i la de l'amperímetre no és nul·la.
+
+  \textbf{(f) Si fem servir el circuit (b) per a mesurar una resistència de valor similar al de la resistència interna del voltímetre:}
+
+  \textbf{a.} Com les resistències són semblants, les intensitats també ho seran.
+
+  \textbf{b.} No, degut al fet que passa corrent pel voltímetre, fet que està molt lluny del comportament d'un voltímetre ideal.
+
+  \textbf{c.} La intensitat que circula per la resistència és molt més petita que la que passa per l'amperímetre (ja que els amperímetres tenen una resistència molt més petita que els voltímetres). Tot i així, la mesura és bastant bona degut justament al fet que com la resistència té un valor similar a la resistència interna del voltímetre, aquesta és més gran que la de l'amperímetre.
+
+\end{document}
diff --git a/quad8/electro/lab/p4/data/4_4_1_1.dat b/quad8/electro/lab/p4/data/4_4_1_1.dat
new file mode 100644
index 0000000..1aca1f4
--- /dev/null
+++ b/quad8/electro/lab/p4/data/4_4_1_1.dat
@@ -0,0 +1,22 @@
+# V (V)	I (mA)
+0.0018	0.0002
+1.0024	0.207
+2.0079	0.4146
+3.0216	0.6238
+4.039	0.8334
+5.04	1.04
+6.067	1.2522
+7.007	1.4462
+8.037	1.6582
+9.122	1.8822
+10.036	2.071
+-1.1186	-0.2304
+-2.0418	-0.4202
+-3.027	-0.6228
+-4.063	-0.8364
+-5.048	-1.0396
+-6.017	-1.2392
+-7.038	-1.4498
+-8.056	-1.6596
+-9.055	-1.865
+-10.09	-2.0788
diff --git a/quad8/electro/lab/p4/data/4_4_1_2.dat b/quad8/electro/lab/p4/data/4_4_1_2.dat
new file mode 100644
index 0000000..9b55045
--- /dev/null
+++ b/quad8/electro/lab/p4/data/4_4_1_2.dat
@@ -0,0 +1,22 @@
+# V (V)	I (mA)
+0.0432	0.003
+1.0478	0.0738
+2.0409	0.144
+3.0213	0.2132
+4.049	0.2858
+5.113	0.3612
+6.099	0.4306
+7.025	0.4964
+8.063	0.5694
+9.022	0.6374
+10.072	0.7114
+-1.0423	-0.0736
+-2.123	-0.15
+-3.0745	-0.217
+-4.013	-0.283
+-5.19	-0.3668
+-6.167	-0.4358
+-7.039	-0.4974
+-8.162	-0.5768
+-9.234	-0.6528
+-10.039	-0.7098
diff --git a/quad8/electro/lab/p4/graphs/4_4_1.gnu b/quad8/electro/lab/p4/graphs/4_4_1.gnu
new file mode 100755
index 0000000..5139d02
--- /dev/null
+++ b/quad8/electro/lab/p4/graphs/4_4_1.gnu
@@ -0,0 +1,80 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/4_4_1' # Nom de la imatge resultant (sense extensió)
+datafile1 = '../data/4_4_1_1.dat' # Nom del fitxer de dades que es vol usar
+datafile2 = '../data/4_4_1_2.dat' # Nom del fitxer de dades que es vol usar
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 13cm, 10cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel '$V \, (\si{\volt})$'
+set ylabel '$I \, (\si{\milli\ampere})$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 2
+set key font ",8.5"
+
+# == CONFIGURACIÓ DEL FIT ==
+set fit quiet
+
+# Funció per obtenir els dígits significatius d'una expressió
+f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
+significant_digits(n) = f_sd(n - 10*int(n/10), 0)
+
+significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - abs(n)))
+
+# FITS:
+
+f1(x) = a1*x + b1 # Funció a fitar
+fit f1(x) datafile1 u 1:2 via a1, b1 # Fem el fit de les dades
+
+f2(x) = a2*x + b2 # Funció a fitar
+fit f2(x) datafile2 u 1:2 via a2, b2 # Fem el fit de les dades
+
+# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
+# guardat a la var. "STATS_correlation"
+stats datafile1 u 1:2 name "STATS1" nooutput
+stats datafile2 u 1:2 name "STATS2" nooutput
+
+error_a_1 = STATS1_slope_err
+sd_error_a_1 = significant_digits(error_a_1)
+error_b_1 = STATS1_intercept_err
+sd_error_b_1 = significant_digits(error_b_1)
+r_1 = STATS1_correlation
+sd_r_1 = significant_digits_r(r_1)
+
+print("=== ".datafile1." ===")
+print(sprintf('delta(a) = %.'.sd_error_a_1.'f, sd=%.0f', error_a_1, sd_error_a_1))
+print(sprintf('delta(b) = %.'.sd_error_b_1.'f, sd=%.0f', error_b_1, sd_error_b_1))
+
+error_a_2 = STATS2_slope_err
+sd_error_a_2 = significant_digits(error_a_2)
+error_b_2 = STATS2_intercept_err
+sd_error_b_2 = significant_digits(error_b_2)
+r_2 = STATS2_correlation
+sd_r_2 = significant_digits_r(r_2)
+
+print("=== ".datafile2." ===")
+print(sprintf('delta(a) = %.'.sd_error_a_2.'f, sd=%.0f', error_a_2, sd_error_a_2))
+print(sprintf('delta(b) = %.'.sd_error_b_2.'f, sd=%.0f', error_b_2, sd_error_b_2))
+
+# Aquesta funció escriu, a partir dels valors del paràmetres a_i (c), b_i (d),
+# sd_error_a_i, sd_error_b_i, 'i', r i sd_r, l'equació de la regressió:
+title_f(c, d, r, sd_error_c, sd_error_d, sd_r, i) = sprintf('$I_'.i.'(V) = %.'.sd_error_c.'f V + (%.'.sd_error_d.'f)$, $r = %.'.sd_r.'f$', c, d, r);
+
+plot datafile1 u 1:2 t "Dades làmina 1" w p, \
+     datafile2 u 1:2 t "Dades làmina 2" w p, \
+     f1(x) t title_f(a1, b1, r_1, sd_error_a_1, sd_error_b_1, sd_r_1, 1), \
+     f2(x) t title_f(a2, b2, r_2, sd_error_a_2, sd_error_b_2, sd_r_2, 2)
+
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p4/graphs/generate.bash b/quad8/electro/lab/p4/graphs/generate.bash
new file mode 100755
index 0000000..b1f1eb2
--- /dev/null
+++ b/quad8/electro/lab/p4/graphs/generate.bash
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+mkdir -p ../output
+
+./4_4_1.gnu
diff --git a/quad8/electro/lab/p4/informe/img/4_4_2.pdf b/quad8/electro/lab/p4/informe/img/4_4_2.pdf
new file mode 100644
index 0000000..62f75ce
--- /dev/null
+++ b/quad8/electro/lab/p4/informe/img/4_4_2.pdf
Binary files differ
diff --git a/quad8/electro/lab/p4/informe/img/4_4_4_simulacio.png b/quad8/electro/lab/p4/informe/img/4_4_4_simulacio.png
new file mode 100755
index 0000000..355c38f
--- /dev/null
+++ b/quad8/electro/lab/p4/informe/img/4_4_4_simulacio.png
Binary files differ
diff --git a/quad8/electro/lab/p4/informe/main.tex b/quad8/electro/lab/p4/informe/main.tex
new file mode 100644
index 0000000..f2e461a
--- /dev/null
+++ b/quad8/electro/lab/p4/informe/main.tex
@@ -0,0 +1,81 @@
+\input{../../preamble.tex}
+
+% Changing margins just so the tables fit nicely:
+\geometry{margin=20mm}
+
+\graphicspath{ {./img/} }
+
+% Electric field colors
+\definecolor{fieldBlue}{HTML}{3c78d8}
+\definecolor{fieldGreen}{HTML}{6aa84f}
+
+\pagestyle{fancy}
+\fancyhf{}
+\rhead{Víctor Rubio Español, Adrià Vilanova Martínez}
+\lhead{Pràctica 4}
+\rfoot{\thepage}
+
+%%%% Title %%%%
+\title{Pràctica 4. Conductivitat elèctrica}
+\author{Víctor Rubio Español, Adrià Vilanova Martínez (4b, grup C1)}
+\date{Primavera 2020}
+
+\begin{document}
+  {\parskip=0pt
+    \maketitle
+  }
+
+  \section{Mesura de resistències}
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/4_4_1.tex}
+    \caption{Dependència $I(V)$ de les dues làmines resistives.}
+  \end{figure}
+
+  A partir dels ajustos lineals anteriors i de la propagació d'errors tenint en compte les fonts d'error experimentals i estadístiques, s'han obtingut els següents valors per les resistències:
+  \[ \begin{cases}
+    R_1 = \SI{4.85(2)}{\kilo\ohm}, \\
+    R_2 = \SI{14.2(2)}{\kilo\ohm}.
+  \end{cases} \]
+
+  Observem que tot i que els electrodes són iguals en quant al fet que estan al mateix potencial i són del mateix material, els valors de la resistència no ho són degut al fet que les geometries del conductor/electrodes són diferents (és a dir, el problema de Dirichlet no és el mateix per a cada conductor, ja que les condicions de contorn són diferents).
+
+  \newpage
+
+  \section{Superfícies equipotencials, línies de camp i línies de corrent}
+
+  \begin{figure}[H]
+    \centering
+    \includegraphics[width=16cm]{4_4_2.pdf}
+    \caption{Superfícies equipotencials corresponents a la mesura experimtal del voltatge a la làmina 1. En blau les \textcolor{fieldBlue}{línies de corrent} (que coincideixen amb les línies de camp pel fet d'estar en un estat estacionari) i en verd les \textcolor{fieldGreen}{línies de camp} on no hi ha transport de càrrega. En vermell estan representats els \textcolor{red}{$\Delta x$} corresponents als punts amb major i menor camp elèctric.}
+  \end{figure}
+
+  \section{Càlcul de propietats elèctriques a 2 punts de la làmina}
+
+  \begin{table}[ht]
+    \centering
+    \begin{tabular}{r | *{3}{c}}
+      & Camp elèctric $||\vec{E}||$ & Densitat de corrent $||\vec{j}||$ & Conductivitat $\gamma$ \\
+      \hline
+      Camp més intens & \SI{130(50)}{\volt\per\meter} & \SI{536.4(5)}{\ampere\per\meter\squared} & \SI{4.3(5)}{\per\meter\per\ohm} \\
+      Camp menys intens & \SI{16(2)}{\volt\per\meter} & \SI{69.21(2)}{\ampere\per\meter\squared} & \SI{4.29(02)}{\per\meter\per\ohm} \\
+    \end{tabular}
+    \caption{Càlcul aproximat del camp elèctric, densitat de corrent i conductivitat a 2 punts de la làmina 1.}
+  \end{table}
+
+  Per tal de calcular els valors de la taula s'han utilitzat les fórmules i dades del guió de pràctiques, la resistència de la làmina 1 i el diagrama de la secció anterior. El càlcul d'incerteses s'ha realitzat utilitzant únicament la propagació de les incerteses de les dades.
+
+  \section{Superfícies equipotencials a partir de l'equació de Laplace}
+
+  \begin{figure}[H]
+    \centering
+    \includegraphics[width=16cm]{4_4_4_simulacio.png}
+    \caption{Superfícies equipotencials corresponents a la resolució del problema a través del mètode numèric de diferències finites (per la resolució de l'equació de Laplace) executat amb 1000 iteracions.}
+  \end{figure}
+
+  Podem observar com les dues gràfiques de les superfícies equipotencials són molt similars. Donat que només tenim assegurada la convergència cap a la solució teòrica en el mètode de diferències finites, el que tenim nosaltres és només una aproximació d'aquesta.
+
+  Podem concloure, però, que la descripció teòrica s'ajusta al nostre experiment.
+
+\end{document}
diff --git a/quad8/electro/lab/p6/data/6_3_2_1.dat b/quad8/electro/lab/p6/data/6_3_2_1.dat
new file mode 100644
index 0000000..cc03894
--- /dev/null
+++ b/quad8/electro/lab/p6/data/6_3_2_1.dat
@@ -0,0 +1,13 @@
+# I (mA)	alpha (º)	B_b	tan(alpha)	delta tan(alpha)
+0.2	0	0.00016	0.00	0.03
+10.1	-12	0.00814	-0.21	0.04
+20.1	-31	0.01620	-0.60	0.05
+30.1	-41	0.02427	-0.87	0.06
+40	-49	0.03225	-1.15	0.08
+50.2	-55	0.04047	-1.43	0.11
+60.3	-60	0.04861	-1.73	0.14
+70	-63	0.05643	-1.96	0.17
+80.1	-66	0.06457	-2.2	0.2
+90.1	-68	0.07263	-2.5	0.2
+100.2	-70	0.08078	-2.7	0.3
+125.3	-74	0.10101	-3.5	0.5
diff --git a/quad8/electro/lab/p6/data/6_3_2_2.dat b/quad8/electro/lab/p6/data/6_3_2_2.dat
new file mode 100644
index 0000000..dd80a38
--- /dev/null
+++ b/quad8/electro/lab/p6/data/6_3_2_2.dat
@@ -0,0 +1,21 @@
+# I (mA)	t (s)	# oscil·lacions (anada i tornada)	T (s)	1/T^2	s*1/T^2	B_b	delta t	delta T	delta 1/T^2
+0	11.38	3	3.79	0.0695	0.0695	0.000	0.2	0.07	0.0001
+10.4	10.31	3	3.44	0.0847	0.0847	0.008	0.2	0.07	0.0001
+19.7	9.41	3	3.14	0.1016	0.1016	0.016	0.2	0.07	0.0002
+29.8	8.69	3	2.90	0.1192	0.1192	0.024	0.2	0.07	0.0002
+39.7	8.06	3	2.69	0.1385	0.1385	0.032	0.2	0.07	0.0003
+50.1	7.5	3	2.50	0.1600	0.1600	0.040	0.2	0.07	0.0003
+60.1	9.41	4	2.35	0.1807	0.1807	0.048	0.2	0.05	0.0001
+70.1	8.97	4	2.24	0.1989	0.1989	0.057	0.2	0.05	0.0001
+80.1	8.6	4	2.15	0.2163	0.2163	0.065	0.2	0.05	0.0002
+89.8	8.28	4	2.07	0.2334	0.2334	0.072	0.2	0.05	0.0002
+99.8	8.06	4	2.02	0.2463	0.2463	0.080	0.2	0.05	0.0002
+-9.8	14	3	4.67	0.0459	0.0459	-0.008	0.2	0.07	0.0000
+-20.4	10.59	2	5.30	0.0357	0.0357	-0.016	0.2	0.10	0.0002
+-42.9	7.25	1	7.25	0.0190	-0.0190	-0.035	0.2	0.20	0.0010
+-52.8	10.22	2	5.11	0.0383	-0.0383	-0.043	0.2	0.10	0.0002
+-64	12.56	3	4.19	0.0571	-0.0571	-0.052	0.2	0.07	0.0001
+-72.3	11.12	3	3.71	0.0728	-0.0728	-0.058	0.2	0.07	0.0001
+-80.6	10.09	3	3.36	0.0884	-0.0884	-0.065	0.2	0.07	0.0001
+-89.5	12.34	4	3.09	0.1051	-0.1051	-0.072	0.2	0.05	0.0001
+-100.7	14.16	5	2.83	0.1247	-0.1247	-0.081	0.2	0.04	0.0000
diff --git a/quad8/electro/lab/p6/graphs/6_3_2_1.gnu b/quad8/electro/lab/p6/graphs/6_3_2_1.gnu
new file mode 100755
index 0000000..7354047
--- /dev/null
+++ b/quad8/electro/lab/p6/graphs/6_3_2_1.gnu
@@ -0,0 +1,58 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/6_3_2_1' # Nom de la imatge resultant (sense extensió)
+datafile = '../data/6_3_2_1.dat' # Nom del fitxer de dades que es vol usar
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 10cm, 7.5cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel '$\tan(\alpha) =: x$'
+set ylabel '$B_b \, (\si{\milli\tesla)}$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+# == CONFIGURACIÓ DEL FIT ==
+set fit quiet
+
+f(x) = a*x + b # Funció a fitar
+fit f(x) datafile u 4:3 via a, b # Fem el fit de les dades
+
+# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
+# guardat a la var. "STATS_correlation"
+stats datafile u 4:3 name "STATS" nooutput
+
+# Funció per obtenir els dígits significatius d'una expressió
+f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
+significant_digits(n) = f_sd(n - 10*int(n/10), 0)
+
+significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - abs(n)))
+
+error_a = STATS_slope_err
+sd_error_a = significant_digits(error_a)
+error_b = STATS_intercept_err
+sd_error_b = significant_digits(error_b)
+r = STATS_correlation
+sd_r = significant_digits_r(r)
+
+print("=== ".datafile." ===")
+print(sprintf('delta(a) = %.'.sd_error_a.'f, sd=%.0f', error_a, sd_error_a))
+print(sprintf('delta(b) = %.'.sd_error_b.'f, sd=%.0f', error_b, sd_error_b))
+
+# Aquesta funció escriu, a partir dels valors del paràmetres a, b i r,
+# l'equació de la regressió:
+title_f(a, b, r) = sprintf('$B_b(x) = %.'.sd_error_a.'f x + (%.'.sd_error_b.'f)$, $r = %.'.sd_r.'f$', a, b, r);
+
+plot datafile u 4:3:5 t "Dades experimentals" w xerr, f(x) t title_f(a, b, r)
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p6/graphs/6_3_2_2.gnu b/quad8/electro/lab/p6/graphs/6_3_2_2.gnu
new file mode 100755
index 0000000..e2d4439
--- /dev/null
+++ b/quad8/electro/lab/p6/graphs/6_3_2_2.gnu
@@ -0,0 +1,62 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/6_3_2_2' # Nom de la imatge resultant (sense extensió)
+datafile = '../data/6_3_2_2.dat' # Nom del fitxer de dades que es vol usar
+b_mean_exp_err = 0.00014
+a_exp_err = 0.002
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 10cm, 7.5cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel '$B_b \, (\si{\milli\tesla)}$'
+set ylabel '${\scriptstyle (-1)^s} \frac{1}{T^2} =: y \quad (\si{\per\second\squared})$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+# == CONFIGURACIÓ DEL FIT ==
+set fit quiet
+
+f(x) = a*x + b # Funció a fitar
+fit f(x) datafile u 7:6 via a, b # Fem el fit de les dades
+
+# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
+# guardat a la var. "STATS_correlation"
+stats datafile u 7:6 name "STATS" nooutput
+
+# Funció per obtenir els dígits significatius d'una expressió
+f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
+significant_digits(n) = f_sd(n - 10*int(n/10), 0)
+
+significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - abs(n)))
+
+error_a = sqrt(STATS_slope_err**2 + a_exp_err**2)
+sd_error_a = significant_digits(error_a)
+error_b = sqrt(STATS_intercept_err**2 + b_mean_exp_err**2)
+sd_error_b = significant_digits(error_b)
+r = STATS_correlation
+sd_r = significant_digits_r(r)
+
+print("=== ".datafile." ===")
+print(sprintf('delta(a) = %.'.sd_error_a.'f, sd=%.0f', error_a, sd_error_a))
+print(sprintf('delta(b) = %.'.sd_error_b.'f, sd=%.0f', error_b, sd_error_b))
+
+# Aquesta funció escriu, a partir dels valors del paràmetres a, b i r,
+# l'equació de la regressió:
+title_f(a, b, r) = sprintf('$y(B_b) = %.'.sd_error_a.'f B_b + (%.'.sd_error_b.'f)$, $r = %.'.sd_r.'f$', a, b, r);
+
+set xtics 0.03
+
+plot datafile u 7:6:10 t "Dades experimentals" w yerr, f(x) t title_f(a, b, r)
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p6/graphs/generate.bash b/quad8/electro/lab/p6/graphs/generate.bash
new file mode 100755
index 0000000..3467ba2
--- /dev/null
+++ b/quad8/electro/lab/p6/graphs/generate.bash
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+mkdir -p ../output
+
+./6_3_2_1.gnu
+./6_3_2_2.gnu
diff --git a/quad8/electro/lab/p6/informe/main.tex b/quad8/electro/lab/p6/informe/main.tex
new file mode 100644
index 0000000..e7907ad
--- /dev/null
+++ b/quad8/electro/lab/p6/informe/main.tex
@@ -0,0 +1,147 @@
+\input{../../preamble.tex}
+
+% Changing margins just so the tables fit nicely:
+\geometry{
+  margin=20mm,
+  includeheadfoot,
+  heightrounded
+}
+
+% Hack because we added fancyhdr in the preamble before setting the margins
+% and therefore it doesn't pick up the new margins:
+% (this is easier than redefining the preamble, which is already used by
+% all the other documents and this is the last one)
+\setlength{\headwidth}{\textwidth}
+
+\graphicspath{ {./img/} }
+
+% Electric field colors
+\definecolor{fieldBlue}{HTML}{3c78d8}
+\definecolor{fieldGreen}{HTML}{6aa84f}
+
+\usepackage{biblatex}
+\addbibresource{references.bib}
+
+\pagestyle{fancy}
+\fancyhf{}
+\rhead{Víctor Rubio Español, Adrià Vilanova Martínez}
+\lhead{Pràctica 6}
+\rfoot{\thepage}
+
+%%%% Title %%%%
+\title{Pràctica 6. Mesura del camp magnètic terrestre}
+\author{Víctor Rubio Español, Adrià Vilanova Martínez (4b, grup C1)}
+\date{Primavera 2020}
+
+\begin{document}
+  {\parskip=0pt
+    \maketitle
+  }
+
+  \section{Determinació de la direcció de $B$ amb la ``brúixola d'inclinacions''}
+
+  La inclinació que hem determinat és de:
+  \[ D = \SI{50(4)}{\degree}. \]
+
+  \section{Determinació de la component horitzontal del camp magnètic terrestre}
+  \subsection{Mètode de la brúixola de tangents}
+
+  \textsc{Nota}: A l'informe s'ha fet el desenvolupament amb els eixos $x$ i $y$ intercanviats respecte del que demana el guió de pràctiques degut a un malentès llegint el guió. Tot i així, el desenvolupament és molt similar i el resultat hauria de ser el mateix.
+
+  \begin{figure}[ht]
+    \centering
+    \begin{minipage}{0.35\textwidth}
+      \centering
+      \pgfplotstabletypeset[
+          columns={0, 1, 2, 3},
+          columns/0/.style={column name=$I \, (\si{\milli\ampere})$, fixed, fixed zerofill, precision=1},
+          columns/1/.style={column name=$\alpha \, (\si{\degree})$, fixed, fixed zerofill, precision=0},
+          columns/2/.style={column name=$B_b \, (\si{\milli\tesla})$, fixed, fixed zerofill, precision=3},
+          columns/3/.style={column name=$\tan(\alpha)$, fixed, fixed zerofill, precision=2}
+      ]{../data/6_3_2_1.dat}
+      \captionof{table}{Direcció del camp total $\alpha$ en funció de la intensitat del corrent $I$, i els seus valors derivats $B_b = \left( \frac{4}{5} \right)^{\frac{3}{2}} \frac{\mu_0 N I}{R}$ i $\tan{\alpha}$.}
+    \end{minipage}\hfill
+    \begin{minipage}{0.6\textwidth}
+      \centering
+      \input{../output/6_3_2_1.tex}
+      \captionof{figure}{Regressió lineal de $B_b$ en funció de $\tan(\alpha)$.}
+    \end{minipage}
+  \end{figure}
+
+  L'ajust de $B_b(\tan(\alpha)) = a \cdot \tan(\alpha) + b$ per residus quadrats ens dona els següents coeficients:
+  \[ \begin{cases}
+    a = \SI{-0.0291(19)}{\milli\tesla}, \\
+    b = \SI{-0.0004(7)}{\milli\tesla}.
+  \end{cases} \]
+  Observant que el 0 s'inclou dins de l'interval de confiança de $b$ (que és el valor teòric de $b$), es pot concloure que
+  \[ B_h = \frac{B_b}{\tan(\alpha)} = a = \SI{-0.0291(19)}{\milli\tesla}. \]
+
+  \subsection{Mètode del pèndol magnètic}
+  \begin{figure}[ht]
+    \centering
+    \begin{minipage}{0.4\textwidth}
+      \centering
+      \pgfplotstabletypeset[
+          columns={3, 0, 5, 6},
+          columns/3/.style={column name=$T \, (\si{\second})$, fixed, fixed zerofill, precision=2},
+          columns/0/.style={column name=$I \, (\si{\milli\ampere})$, fixed, fixed zerofill, precision=1},
+          columns/5/.style={column name=${\scriptstyle (-1)^s} \cdot \frac{1}{T^2} \, (\si{\per\second\squared})$, fixed, fixed zerofill, precision=4},
+          columns/6/.style={column name=$B_b \, (\si{\milli\tesla})$, fixed, fixed zerofill, precision=3}
+      ]{../data/6_3_2_2.dat}
+      \captionof{table}{Període d'oscil·lació del pèndol magnètic $T$ en funció de la intensitat de corrent $I$, i els seus valors derivats $(-1)^s \frac{1}{T^2}$ i $B_b$.}
+    \end{minipage}\hfill
+    \begin{minipage}{0.55\textwidth}
+      \centering
+      \input{../output/6_3_2_2.tex}
+      \captionof{figure}{Regressió lineal de $(-1)^s \dfrac{1}{T^2}$ en funció de $B_b$.}
+      \label{fig:grafica2}
+    \end{minipage}
+  \end{figure}
+
+  L'ajust de $\left((-1)^s \dfrac{1}{T^2}\right)(B_b) = a B_b + b$ per residus quadrats ens dona els següents coeficients:\footnote{A l'expressió $(-1)^s \dfrac{1}{T^2}$, la variable $s$ pren els valors $0$ o $1$ depenent de $T$, de tal forma que les dades graficades a la figura \ref{fig:grafica2} quedin en línia recta.}
+  \[ \begin{cases}
+    a = \SI{2.341(14)}{\per\milli\tesla\per\second\squared}, \\
+    b = \SI{0.0649(7)}{\per\second\squared}.
+  \end{cases} \]
+
+  Sabem per la teoria desenvolupada al guió de pràctiques que
+  \[ (-1)^s \frac{1}{T^2} = \frac{1}{(2 \pi)^2} \frac{M}{A} [B_h + B_b], \]
+  d'on podem identificar
+  \[ \left.\begin{array}{l}
+    \displaystyle a = \frac{1}{2 \pi}^2 \frac{M}{A}, \\[1em]
+    \displaystyle b = \frac{1}{2 \pi}^2 \frac{M}{A} B_h
+  \end{array}\right\} \implies B_h = \frac{b}{a} = \SI{0.028(3)}{\milli\tesla}. \]
+
+  \textbf{(Resposta a la pregunta (c))} Observem que a la gràfica de la figura \ref{fig:grafica2} el punt en què la recta talla l'eix de les abscisses ($\frac{1}{T^2} = 0$) és, degut a la fórmula anterior, el punt en què la component horitzontal del camp magnètic de la Terra i el creat artificialment tenen el mateix mòdul:
+  \[ |B_h| = |B_b|. \]
+  És al voltant d'aquest punt on no hem pogut prendre mesures, ja que al voltant d'aquests punts el període és massa gran i per tant la fricció fa que l'agulla no completi cap oscil·lació, o si en fa 1 no podem negligir aquests efectes de fricció.
+
+  \section{Conclusió}
+  \textbf{(Resposta a la pregunta (d))} Segons les dades del \textit{World Magnetic Model for 2020-2025},\cite{https://doi.org/10.25923/ytk1-yx35} la component horitzontal del camp magnètic al voltant de Barcelona és de $\SI{2.5e-5}{\tesla}$. Vegem si els valors que hem trobat són compatibles entre ells, i si ho són també amb el valor de la bibliografia.
+
+  Primer de tot, establim el següent test d'hipòtesi, on la hipòtesi nul·la (el que ens agradaria acceptar o rebutjar) és el fet que les dues mesures siguin compatibles:
+  \[ \begin{cases}
+    H_0: |B_h^\text{(1)}| - |B_h^\text{(2)}| = 0, \\
+    H_1: |B_h^\text{(1)}| - |B_h^\text{(2)}| \neq 0.
+  \end{cases} \]
+  Veiem que $|B_h^\text{(1)}| - |B_h^\text{(2)}| = \SI{1(5)e-5}{\tesla}$ i, com el $0$ està dins de l'interval de confiança, acceptem la hipòtesi nul·la, és a dir, acceptem que les dues mesures siguin compatibles.
+
+  Ara establim el següent test d'hipòtesi per veure si cadascuna de les mesures és compatible amb el valor de la bibliografia:
+  \[ \begin{cases}
+    H_0: |B_h^\text{(i)}| = B_h^\text{(WMM)}, \\
+    H_1: |B_h^\text{(i)}| \neq B_h^\text{(WMM)}.
+  \end{cases} \]
+
+  Veiem que per la primera mesura tenim l'interval de confiança $|B_h^\text{(1)}| \in (2.53, 3.29) \, \times 10^{-5} \si{\tesla}$ (prenent dues desviacions tipus per tenir una confiança de $1 - \alpha = 0.95$). El valor de la bibliografia no cau dins de l'interval de confiança així que hauríem de rebutjar que els valors siguin compatibles, però donat que cau molt a prop del límit inferior (amb una confiança lleugerament més alta cauria dins), sota un criteri més lax podríem acceptar aquesta compatibilitat.
+
+  Per la segona mesura tenim l'interval de confiança $|B_h^\text{(2)}| \in (2.2, 3.4) \, \times 10^{-5} \si{\tesla}$ (calculat de la mateixa manera que abans), i el valor de la bibliografia aquest cop sí que cau dins així que són compatibles ambdós valors.
+
+  Per tant, podem concloure que amb aquests 2 experiments hem conseguit una bastant bona aproximació de la component horitzontal del camp magnètic terrestre.
+
+  \textbf{(Resposta a la pregunta (e))} A partir de la component horitzontal calculada al segon experiment i la inclinació mesurada al principi, podem calcular el mòdul del camp magnètic terrestre amb trigonometria:
+  \[ ||\vec{B}|| = \frac{B_h}{\cos(D)} = \SI{4.4(6)e-5}{\tesla}. \]
+  Com a referència, la intensitat total del camp magnètic segons les dades del mateix model és d'aproximadament $\SI{4.55e-5}{\tesla}$ al voltant de Barcelona,\cite{https://doi.org/10.25923/ytk1-yx35} valor que cau dins d'una desviació tipus del valor calculat a partir de les nostres observacions.
+
+  \printbibliography
+
+\end{document}
diff --git a/quad8/electro/lab/p6/informe/references.bib b/quad8/electro/lab/p6/informe/references.bib
new file mode 100644
index 0000000..020f810
--- /dev/null
+++ b/quad8/electro/lab/p6/informe/references.bib
@@ -0,0 +1,8 @@
+@article{https://doi.org/10.25923/ytk1-yx35,
+  doi = {10.25923/YTK1-YX35},
+  url = {https://repository.library.noaa.gov/view/noaa/24390},
+  author = {Chulliat,  Arnaud and Alken,  Patrick and Nair,  Manoj},
+  title = {The US/UK World Magnetic Model for 2020-2025: Technical Report},
+  publisher = {National Centers for Environmental Information (U.S.); British Geological Survey},
+  year = {2020}
+}
diff --git a/quad8/electro/lab/p8/data/fil_espira_foucault.dat b/quad8/electro/lab/p8/data/fil_espira_foucault.dat
new file mode 100644
index 0000000..9771026
--- /dev/null
+++ b/quad8/electro/lab/p8/data/fil_espira_foucault.dat
@@ -0,0 +1,101 @@
+Temps_(s) Tensió_fil_(mV) Tensió_espira_(mV) Tensió_Foucault_(mV)
+0.00 0.01 0.00 0.01
+0.05 0.01 0.01 0.01
+0.10 0.00 0.01 0.01
+0.15 0.01 0.01 0.01
+0.20 0.01 0.01 0.01
+0.25 0.01 0.01 0.01
+0.30 0.01 0.01 0.00
+0.35 0.01 0.01 -0.01
+0.40 0.01 0.01 0.01
+0.45 0.01 0.01 0.02
+0.50 0.01 0.01 0.02
+0.55 0.01 0.01 0.01
+0.60 0.01 0.01 0.01
+0.65 0.01 0.01 0.01
+0.70 0.01 0.01 0.01
+0.75 0.01 0.03 0.02
+0.80 0.01 0.04 0.02
+0.85 0.01 0.03 0.00
+0.90 0.01 0.05 0.00
+0.95 0.01 0.10 -0.02
+1.00 -0.01 0.19 -0.02
+1.05 -0.01 0.35 0.02
+1.10 -0.04 0.70 0.04
+1.15 -0.09 1.20 -0.02
+1.20 -0.19 1.76 0.02
+1.25 -0.37 1.63 0.01
+1.30 -0.79 1.11 0.00
+1.35 -1.48 0.49 0.00
+1.40 -2.03 0.20 0.02
+1.45 -2.14 0.07 0.05
+1.50 -2.39 0.01 0.07
+1.55 -2.44 -0.04 0.08
+1.60 -2.45 -0.07 0.13
+1.65 -2.45 -0.14 0.19
+1.70 -2.44 -0.28 0.28
+1.75 -2.42 -0.63 0.40
+1.80 -2.43 -1.30 0.53
+1.85 -2.42 -1.80 0.74
+1.90 -2.35 -1.66 1.08
+1.95 -2.06 -1.11 1.53
+2.00 -1.36 -0.52 1.93
+2.05 -0.66 -0.24 2.21
+2.10 -0.33 -0.12 2.39
+2.15 -0.16 -0.06 2.53
+2.20 -0.08 -0.03 2.60
+2.25 -0.04 -0.02 2.52
+2.30 -0.01 -0.01 2.51
+2.35 0.00 0.00 2.44
+2.40 0.01 0.00 2.28
+2.45 0.01 0.00 2.03
+2.50 0.01 0.01 1.59
+2.55 0.02 0.01 1.25
+2.60 0.02 0.01 0.87
+2.65 0.02 0.01 0.63
+2.70 0.02 0.01 0.46
+2.75 0.02 0.01 0.33
+2.80 0.01 0.01 0.24
+2.85 0.01 0.00 0.16
+2.90 0.02 0.01 0.13
+2.95 0.01 0.01 0.09
+3.00 0.01 0.01 0.07
+3.05 0.01 0.01 0.05
+3.10 0.01 0.01 0.03
+3.15 0.01 0.00 0.02
+3.20 0.01 0.00 0.02
+3.25 0.01 0.00 0.01
+3.30 0.01 0.01 0.01
+3.35 0.01 0.01 0.01
+3.40 0.01 0.01 0.01
+3.45 0.01 0.01 0.01
+3.50 0.01 0.01 0.01
+3.55 0.01 0.01 0.01
+3.60 0.01 0.00 0.01
+3.65 0.01 0.00 0.00
+3.70 0.01 -0.01 0.01
+3.75 0.01 0.00 0.00
+3.80 0.01 0.01 0.00
+3.85 0.01 0.01 0.00
+3.90 0.01 0.00 0.00
+3.95 0.01 0.00 0.00
+4.00 0.01 0.01 0.00
+4.05 0.01 0.01 -0.01
+4.10 0.00 0.01 0.00
+4.15 0.01 0.01 0.01
+4.20 0.01 0.01 0.01
+4.25 -0.01 0.01 0.00
+4.30 0.01 0.01 0.00
+4.35 0.02 0.01 0.01
+4.40 0.02 0.03 0.00
+4.45 0.01 0.01 0.01
+4.50 0.01 0.01 0.01
+4.55 0.01 0.01 0.01
+4.60 0.01 0.01 0.01
+4.65 0.01 0.01 0.01
+4.70 0.01 0.01 0.01
+4.75 0.01 0.01 0.01
+4.80 0.01 0.01 0.00
+4.85 0.01 0.01 0.01
+4.90 0.01 0.01 0.01
+4.95 0.01 0.01 0.01
diff --git a/quad8/electro/lab/p8/data/forca_velocitat.dat b/quad8/electro/lab/p8/data/forca_velocitat.dat
new file mode 100644
index 0000000..6cee4d9
--- /dev/null
+++ b/quad8/electro/lab/p8/data/forca_velocitat.dat
@@ -0,0 +1,4 @@
+421.8	1.0	7.60	0.08
+622.0	1.0	11.38	0.08
+821.1	1.0	14.88	0.36
+1021.2	1.0	19.80	0.67
diff --git a/quad8/electro/lab/p8/data/massa_temps.dat b/quad8/electro/lab/p8/data/massa_temps.dat
new file mode 100644
index 0000000..3ebd3bf
--- /dev/null
+++ b/quad8/electro/lab/p8/data/massa_temps.dat
@@ -0,0 +1,4 @@
+43 3.29
+63.4 2.20
+83.7 1.68
+104.1 1.26
diff --git a/quad8/electro/lab/p8/data/massa_temps_calculs.ods b/quad8/electro/lab/p8/data/massa_temps_calculs.ods
new file mode 100644
index 0000000..c3a53ad
--- /dev/null
+++ b/quad8/electro/lab/p8/data/massa_temps_calculs.ods
Binary files differ
diff --git a/quad8/electro/lab/p8/data/velocitat_fineta.dat b/quad8/electro/lab/p8/data/velocitat_fineta.dat
new file mode 100644
index 0000000..cec1af8
--- /dev/null
+++ b/quad8/electro/lab/p8/data/velocitat_fineta.dat
@@ -0,0 +1,5 @@
+5 0.38
+10 0.69
+15 1.09
+20 1.46
+25 1.84
diff --git a/quad8/electro/lab/p8/data/velocitat_gruixuda.dat b/quad8/electro/lab/p8/data/velocitat_gruixuda.dat
new file mode 100644
index 0000000..aa4e906
--- /dev/null
+++ b/quad8/electro/lab/p8/data/velocitat_gruixuda.dat
@@ -0,0 +1,5 @@
+5 0.58
+10 1.27
+15 1.89
+20 2.95
+25 3.14
diff --git a/quad8/electro/lab/p8/graphs/fil_espira_foucault.gnu b/quad8/electro/lab/p8/graphs/fil_espira_foucault.gnu
new file mode 100755
index 0000000..bf17179
--- /dev/null
+++ b/quad8/electro/lab/p8/graphs/fil_espira_foucault.gnu
@@ -0,0 +1,27 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/fil_espira_foucault' # Nom de la imatge resultant (sense extensió)
+datafile = '../data/fil_espira_foucault.dat' # Nom del fitxer de dades que es vol usar
+error_sist_b = 0.2
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 10cm, 7cm
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel 'Temps ($\si{\second}$)'
+set ylabel 'Tensió ($\si{\milli\volt}$)'
+
+# Opcions per la llegenda:
+#set key above
+#set key spacing 1.5
+
+plot [0:3] datafile u 1:2 t "Fil" w l, datafile u (column(1) + 0.1):3 t "Espira" w l, datafile u (column(1) - 0.6):4 t "Foucault" w l
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p8/graphs/forca_velocitat.gnu b/quad8/electro/lab/p8/graphs/forca_velocitat.gnu
new file mode 100755
index 0000000..384c6e7
--- /dev/null
+++ b/quad8/electro/lab/p8/graphs/forca_velocitat.gnu
@@ -0,0 +1,59 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/forca_velocitat' # Nom de la imatge resultant (sense extensió)
+datafile = '../data/forca_velocitat.dat' # Nom del fitxer de dades que es vol usar
+error_sist_b = 0.2
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 7cm, 5cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel 'Força magnètica $(\si{\milli\newton})$'
+set ylabel 'Velocitat $(\si{\centi\meter \per \second})$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+# == CONFIGURACIÓ DEL FIT ==
+set fit quiet
+
+f(x) = a*x + b # Funció a fitar
+fit f(x) datafile u 1:3 via a, b # Fem el fit de les dades
+
+# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
+# guardat a la var. "STATS_correlation"
+stats datafile u 1:3 name "STATS" nooutput
+
+# Funció per obtenir els dígits significatius d'una expressió
+f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
+significant_digits(n) = f_sd(n - 10*int(n/10), 0)
+
+significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - n))
+
+error_a = STATS_slope_err
+sd_error_a = significant_digits(error_a)
+error_b = sqrt(STATS_slope_err + error_sist_b)
+sd_error_b = significant_digits(error_b)
+r = STATS_correlation
+sd_r = significant_digits_r(r)
+
+print("=== ".datafile." ===")
+print(sprintf('delta(a) = %.'.sd_error_a.'f, sd=%.0f', error_a, sd_error_a))
+print(sprintf('delta(b) = %.'.sd_error_b.'f, sd=%.0f', error_b, sd_error_b))
+
+# Aquesta funció escriu, a partir dels valors del paràmetres a, b i r,
+# l'equació de la regressió:
+title_f(a, b, r) = sprintf('$V(F) = %.'.sd_error_a.'f F + (%.'.sd_error_b.'f)$, $r = %.'.sd_r.'f$', a, b, r);
+
+plot datafile u 1:3:2:4 t "Dades experimentals" w xyerr, f(x) t title_f(a, b, r)
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p8/graphs/generate.bash b/quad8/electro/lab/p8/graphs/generate.bash
new file mode 100755
index 0000000..3b40f03
--- /dev/null
+++ b/quad8/electro/lab/p8/graphs/generate.bash
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+mkdir -p ../output
+
+for i in fineta gruixuda; do
+  echo $i
+  ./velocitat.gnu "../data/velocitat_${i}.dat" "../output/velocitat_${i}"
+done
+
+./forca_velocitat.gnu
+./fil_espira_foucault.gnu
diff --git a/quad8/electro/lab/p8/graphs/velocitat.gnu b/quad8/electro/lab/p8/graphs/velocitat.gnu
new file mode 100755
index 0000000..70efa80
--- /dev/null
+++ b/quad8/electro/lab/p8/graphs/velocitat.gnu
@@ -0,0 +1,61 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = ARG2 # Nom de la imatge resultant (sense extensió)
+datafile = ARG1 # Nom del fitxer de dades que es vol usar
+error_sist_b = 0.1
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 7cm, 5cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel '$x \, (\si{\centi\meter})$'
+set ylabel '$t \, (\si{\second})$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+# == CONFIGURACIÓ DEL FIT ==
+set fit quiet
+
+f(x) = a*x + b # Funció a fitar
+fit f(x) datafile u 1:2 via a, b # Fem el fit de les dades
+
+# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
+# guardat a la var. "STATS_correlation"
+stats datafile u 1:2 name "STATS" nooutput
+
+# Funció per obtenir els dígits significatius d'una expressió
+f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
+significant_digits(n) = f_sd(n - 10*int(n/10), 0)
+
+significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - n))
+
+error_a = STATS_slope_err
+sd_error_a = significant_digits(error_a)
+error_b = sqrt(STATS_slope_err + error_sist_b)
+sd_error_b = significant_digits(error_b)
+r = STATS_correlation
+sd_r = significant_digits_r(r)
+
+print("=== ".datafile." ===")
+print(sprintf('delta(a) = %.'.sd_error_a.'f, sd=%.0f', error_a, sd_error_a))
+print(sprintf('delta(b) = %.'.sd_error_b.'f, sd=%.0f', error_b, sd_error_b))
+
+# Aquesta funció escriu, a partir dels valors del paràmetres a, b i r,
+# l'equació de la regressió:
+title_f(a, b, r) = sprintf('$t(x) = %.'.sd_error_a.'f x + (%.'.sd_error_b.'f)$, $r = %.'.sd_r.'f$', a, b, r);
+
+set ytics 0.5
+
+plot datafile u 1:2:(1):(error_sist_b) t "Dades experimentals" w xyerr, f(x) t title_f(a, b, r)
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p8/informe/img/lenz_diagram.pdf b/quad8/electro/lab/p8/informe/img/lenz_diagram.pdf
new file mode 100644
index 0000000..0c0ccf1
--- /dev/null
+++ b/quad8/electro/lab/p8/informe/img/lenz_diagram.pdf
Binary files differ
diff --git a/quad8/electro/lab/p8/informe/main.tex b/quad8/electro/lab/p8/informe/main.tex
new file mode 100644
index 0000000..34b1b2c
--- /dev/null
+++ b/quad8/electro/lab/p8/informe/main.tex
@@ -0,0 +1,164 @@
+\input{../../preamble.tex}
+
+% Changing margins just so the tables fit nicely:
+\geometry{margin=20mm}
+
+\graphicspath{ {./img/} }
+
+\pagestyle{fancy}
+\fancyhf{}
+\rhead{Víctor Rubio Español, Adrià Vilanova Martínez}
+\lhead{Pràctica 8}
+\rfoot{\thepage}
+%%%% Title %%%%
+\title{Pràctica 8. Inducció electromagnètica i corrents de Foucault}
+\author{Víctor Rubio Español, Adrià Vilanova Martínez (4b, grup C1)}
+\date{Primavera 2020}
+
+\begin{document}
+  {\parskip=0pt
+    \maketitle
+  }
+
+  \begin{abstract}
+    La pràctica consta de 2 experiments. Un d'ells consisteix en verificar la llei de Lenz mitjançant la mesura del corrent induït en una bobina per part del camp magnètic d'un iman.
+
+    El segon consisteix en verificar que en deixar caure una barra a través d'un iman (en règim permanent de velocitat constant), les corrents de Foucaults induïdes a la barra tenen una força proporcional a la velocitat de caiguda.
+
+    Finalment, també verificarem que les corrents de Foucault indueixen una força electromotriu $\varepsilon = v B l$, que és proporcional a la velocitat de caiguda.
+  \end{abstract}
+
+  \section{Obtenció de la Llei de Lenz}
+
+  \begin{table}[ht]
+    \centering
+    \begin{adjustbox}{width=\textwidth}
+      \begin{tabular}{r | *{8}{C{20.4mm}}}
+        & Sentit + del corrent en el solenoide & Pol de l'imant encarat al solenoide? & Signe del $\varphi_{\text{inicial}}$ & L'imant respecte al solenoide & Variació del mòdul de $B$ & Signe del $\varphi_{\text{final}}$ & Signe de $\varphi_{\text{fin.}} - \varphi_{\text{ini.}}$ & Signe de $I_{\text{induït}}$ \\
+        \hline
+        & Horari o antihorari? & N/S? & +/-? & S'acosta o s'allunya? & Augmenta o disminueix? & +/-? & +/-? & +/-? \\
+        \hline
+        Exp. 1 & Horari & N & + & S'acosta & Augmenta & + & + & - \\
+        Exp. 2 & Horari & S & - & S'acosta & Augmenta & - & - & + \\
+        Exp. 3 & Horari & N & + & S'allunya & Disminueix & + & - & + \\
+      \end{tabular}
+    \end{adjustbox}
+    \caption{Resultats de l'experiment 8.3.2 del guió de la pràctica.}
+  \end{table}
+
+  \begin{center}
+    \centering
+    \includegraphics[scale=0.75,page=1]{lenz_diagram.pdf}
+    \captionof{figure}{Dibuix esquemàtic de l'experiment 1.}
+  \end{center}
+
+  \newpage
+
+  \section{Velocitat de caiguda uniforme}
+
+  \begin{center}
+    \begin{minipage}{\textwidth}
+      \begin{multicols}{2}
+        \null \vfill
+        \begin{center}
+          \centering
+          \pgfplotstabletypeset[
+              columns/0/.style={column name=Distància $(\si{\centi\meter})$, fixed, fixed zerofill, precision=0},
+              columns/1/.style={column name=Temps $(\si{\second})$, fixed, fixed zerofill, precision=2}
+          ]{../data/velocitat_gruixuda.dat}
+
+          \vspace{1em}
+
+          \textbf{Velocitat de caiguda:} $\SI{7.4(7)}{\centi\meter \per \second}$
+        \end{center}
+
+        \vfill \null
+        \columnbreak
+
+        \begin{center}
+          \centering
+          \vspace{-2em}
+          \input{../output/velocitat_gruixuda.tex}
+        \end{center}
+      \end{multicols}
+      \captionof{figure}{Mesures de la barra gruixuda a l'experiment 8.3.4.}
+
+      \vspace{2em}
+
+      \begin{multicols}{2}
+        \begin{center}
+          \centering
+          \pgfplotstabletypeset[
+              columns/0/.style={column name=Distància $(\si{\centi\meter})$, fixed, fixed zerofill, precision=0},
+              columns/1/.style={column name=Temps $(\si{\second})$, fixed, fixed zerofill, precision=2}
+          ]{../data/velocitat_fineta.dat}
+
+          \vspace{1em}
+
+          \textbf{Velocitat de caiguda:} $\SI{13.55(29)}{\centi\meter \per \second}$
+        \end{center}
+
+        \begin{center}
+          \centering
+          \vspace{-2em}
+          \input{../output/velocitat_fineta.tex}
+        \end{center}
+      \end{multicols}
+      \captionof{figure}{Mesures de la barra fineta a l'experiment 8.3.4.}
+    \end{minipage}
+  \end{center}
+
+  Les velocitats s'han obtingut com la inversa de la pendent de la recta de regressió. S'ha suposat que les incerteses sistemàtiques de mesurar el temps són de $\SI{0.1}{\second}$ i les de mesurar l'espai són de $\SI{1}{\centi\meter}$.
+
+  \section{Força magnètica proporcional a la velocitat}
+
+  \begin{center}
+    \begin{minipage}{\textwidth}
+      \begin{multicols}{2}
+        \null \vfill
+        \begin{center}
+          \centering
+          \pgfplotstabletypeset[
+              columns/0/.style={column name=Massa total $(\si{\gram})$, fixed, fixed zerofill, precision=0},
+              columns/1/.style={column name=Temps $(\si{\second})$, fixed, fixed zerofill, precision=2}
+          ]{../data/massa_temps.dat}
+          \captionof{figure}{Mesures de l'experiment 8.3.5 de la guia. Són les mesures del temps que triga en caure la barra $\SI{25}{\centi\meter}$ en funció de la seva massa total. S'ha repetit l'experiment $n = 4$ cops per obtenir mesures precises.}
+        \end{center}
+
+        \vfill \null
+        \columnbreak
+
+        \begin{center}
+          \centering
+          \vspace{-2em}
+          \input{../output/forca_velocitat.tex}
+          \captionof{figure}{Gràfica que mostra les velocitats obtingudes en funció de les forces magnètiques.}
+        \end{center}
+      \end{multicols}
+    \end{minipage}
+  \end{center}
+
+  \section{Fil conductor, espira i corrents de Foucault}
+
+  \begin{center}
+    \centering
+    \vspace{-2em}
+    \input{../output/fil_espira_foucault.tex}
+    \captionof{figure}{Gràfica que mostra la tensió en funció del temps enregistrat en executar els experiments 8.3.7, 8.3.8 i 8.3.9.}
+  \end{center}
+
+  De l'anterior gràfica podem observar que
+  \[ |V_{\text{max}}(\text{fil})| = \SI{2.45}{\milli\volt}. \]
+
+  Tenint en compte que $v = \SI{0.086}{\meter\per\second}$, $B = \SI{0.77}{\tesla}$ i $l = \SI{0.041}{\meter}$, obtenim que:
+  \[ vBl = \SI{2.72}{\milli\volt}. \]
+
+  Observem que això ens permet reafirmar-nos en el fet que la força electromotriu que s'indueix és realment $\varepsilon = vBl$, tal com havíem deduït teòricament al començament de la pràctica.
+
+  Per acceptar la hipòtesi nul·la $H_0: \varepsilon = vBl$, és necessari establir i realitzar una prova d'hipòtesi, que al grau de física normalment fem mitjançant el càlcul d'incerteses i discrepàncies. En tot cas, aquest procediment queda fora de l'àmbit d'aquest informe.
+
+  Per altra banda, també podem observar que la força electromotriu que s'indueix a l'espira és senar respecte el centre de l'espira: és a dir, la força electromotriu induïda canvia de sentit depenent si la barra està entrant o sortint de l'iman (cosa que hem comprovat al primer experiment).
+
+  Finalment, observem també que la tensió màxima del fil ($|V_{\text{max}}(\text{fil})| = \SI{2.45}{\milli\volt}$) és inferior a la de les corrents de Foucault ($|V_{\text{max}}(\text{Foucault})| = \SI{2.6}{\milli\volt}$).
+
+\end{document}
diff --git a/quad8/electro/lab/preamble.tex b/quad8/electro/lab/preamble.tex
new file mode 100644
index 0000000..b7562e7
--- /dev/null
+++ b/quad8/electro/lab/preamble.tex
@@ -0,0 +1,61 @@
+\documentclass[11pt,a4paper]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[catalan]{babel}
+\usepackage{fancyhdr}
+\usepackage{graphicx}
+\usepackage[labelfont=bf]{caption}
+\usepackage{siunitx}
+\usepackage{geometry}
+\geometry{top=25mm}
+\usepackage{amsmath}
+\usepackage{amsfonts}
+\usepackage{booktabs}
+\usepackage{chemformula}
+\usepackage{multicol}
+%\usepackage{hyperref} %TODO: Uncomment
+\usepackage{biblatex}
+\usepackage{pgfplotstable}
+\usepackage{adjustbox}
+\usepackage{array}
+\usepackage{float}
+\usepackage{stackengine}
+
+\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
+\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
+\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
+
+\pgfplotsset{compat=1.16}
+\pgfplotstableset{
+  empty cells with={--}, % replace empty cells with ’--’
+  every head row/.style={before row=\toprule,after row=\midrule},
+  every last row/.style={after row=\bottomrule},
+  set thousands separator={\,}%,
+}
+\sisetup{separate-uncertainty=true}
+\setlength{\parskip}{1em}
+\pagestyle{fancy}
+\fancyhf{}
+
+% Plantilles del notate
+\def\myupbracefill#1{\rotatebox{90}{\stretchto{\{}{#1}}}
+\def\rlwd{.5pt}
+\newcommand\notate[4][B]{%
+  \if B#1\else\def\myupbracefill##1{}\fi%
+  \def\useanchorwidth{T}%
+  \setbox0=\hbox{$\displaystyle#2$}%
+  \def\stackalignment{c}\stackunder[-6pt]{%
+    \def\stackalignment{c}\stackunder[-1.5pt]{%
+      \stackunder[2pt]{\strut $\displaystyle#2$}{\myupbracefill{\wd0}}}{%
+    \rule{\rlwd}{#3\baselineskip}}}{%
+  \strut\kern9pt$\rightarrow$\smash{\rlap{$~#4$}}}%
+}
+\newcommand\lnotate[4][B]{%
+  \if B#1\else\def\myupbracefill##1{}\fi%
+  \def\useanchorwidth{T}%
+  \setbox0=\hbox{$\displaystyle#2$}%
+  \def\stackalignment{c}\stackunder[-6pt]{%
+    \def\stackalignment{c}\stackunder[-1.5pt]{%
+      \stackunder[2pt]{\strut $\displaystyle#2$}{\myupbracefill{\wd0}}}{%
+    \rule{\rlwd}{#3\baselineskip}}}{%
+  \strut\kern-9pt$\leftarrow$\smash{\llap{$~#4\quad\;\,$}}}%
+}
