% !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}
