\documentclass[11pt,a4paper,dvipsnames]{article}
\usepackage[utf8]{inputenc}

\input{../preamble.tex}

\title{Entrega 2 de problemes\\Física Estadística}
\author{Adrià Vilanova Martínez}
\date{26 de maig, 2021}

\showcorrectionstrue % Change "true" to "false" in order to show corrections as
                     % if they weren't corrections (in black instead of red).

\begin{document}

\maketitle

\ifshowcorrections
{
  \color{red}
  \textbf{\textsc{Valoració personal:}} He fet un error de càcul a l'apartat
  2.a) (l'exponent de la $m$ està malament), així que em posaria un
  \textbf{9.6}. Si a més l'apartat 1.a) estigués malament (el fet de considerar
  el cas $D = \mu H$), em restaria 0.3 punts més. I si l'apartat 1.c) estigués malament, em restaria 1 punt sencer. Falta concretar això pel correu que he
  enviat.

  \textsc{Nota}: Les correccions són el text en color vermell. \\
}
\fi

\begin{Problem}
  Considereu $n$ ions magnètics independents localitzats en els nusos d'una xarxa i amb un hamiltonià de la forma
  \[ \mathcal{H} = D \sum_{i=1}^N S_i^2 - \mu H \sum_{i=1}^N S_i, \]
  on $D$ i $\mu$ són constants positives, $H$ és el mòdul del camp magnètic i la variable $S_i$ pot prendre els valors $-1, 0, +1$.

  \begin{enumerate}[a)]
    \item Caracteritzeu l'estat fonamental ($T = 0$) d'aquest sistema, és a dir l'energia mínima del sistema i el valor promig de les variables $\langle S_i \rangle$ i $\langle S_i^2 \rangle$ corresponents, en funció de la relació entre les magnituds $D$ i $\mu H$ de l'Hamiltonià.
  \end{enumerate}

  Si el sistema es troba en contacte amb un bany tèrmic a temperatura $T$ finita, calculeu:

  \begin{enumerate}[a)]
    \setcounter{enumi}{1}
    \item La funció de partició canònica corresponent.

    \item La magnetització $\mu \langle S_i \rangle$ i l'anomenat moment quadrupolar $D \langle S_i^2 \rangle$.

    \item L'energia mitjana del sistema. Discutiu breument el resultat obtingut en els límits d'altes i baixes temperatures.
  \end{enumerate}
\end{Problem}

\textbf{Solució d'a):} \\
L'Hamiltonià es pot rescriure de la següent manera, donat que $S_i \in \{ -1, 0, +1 \}$:
\[ \mathcal{H} = \sum_{i=1}^N (D |S_i| - \mu H S_i) = \sum_{i=1}^N f(S_i), \]
on definim la funció $f(S_i)$ com:
\[ f(S_i) = \begin{cases}
  D + \mu H, & (\text{si } S_i = -1) \\
  0, & (\text{si } S_i = 0) \\
  D - \mu H. & (\text{si } S_i = 1)
\end{cases} \]
Donat que $D, \mu, H > 0$ tenim que $f(-1) > 0$ i, per tant, una partícula amb $S_i = -1$ sempre augmentarà l'energia del sistema.

Una partícula amb $S_i = 0$ deixarà l'energia igual, i per una partícula amb $S_i = 1$ tot dependrà de la relació entre $D$ i $\mu H$, així que separem casos tal com demana l'enunciat:

\begin{enumerate}[(i)]
  \item \textbf{Si $D > \mu H$}:

  En aquest cas tenim que $f(1) > 0$ i, per tant, a l'estat fonamental totes les partícules estaran a l'estat on $S_i = 0$ (el que té energia més petita), i per tant l'energia de l'estat fonamental serà:
  \[ E_0 = 0. \]
  Per tant, els valors promigs seran:
  \[ \langle S_i^2 \rangle = \langle S_i \rangle = 0. \]

  \item \textbf{Si $D < \mu H$}:

  En aquest cas tenim que $f(1) < 0$ i, per tant, l'estat d'energia mínima és el que té $S_i = 1$. Per tant, totes les partícules estaran en aquest estat i, per tant, tindrem:
  \[ E_0 = \sum_{i=1}^N f(1) = N(D - \mu H), \]
  \[ \langle S_i^2 \rangle = \langle S_i \rangle = 1. \]

  \item \textbf{Si $D = \mu H$}:

  En aquest cas límit (que de fet potser no caldria considerar, ja que és de mesura nul·la), $f(1) = f(0) = 0$ i, per tant, a l'estat fonamental les partícules poden estar amb $S_i \in \{ 0, 1 \}$. Així doncs, tenim un estat degenerat. Pel postulat d'equiprobabilitat a priori, podem calcular els valors promig de $S_i$ i $S_i^2$:
  \[ E_0 = 0, \]
  \[ \langle S_i^2 \rangle = \langle S_i \rangle = \frac{1}{2}. \]
\end{enumerate}

\textbf{Solució de b):} \\
La funció de partició canònica d'un dels ions magnètics és:
\[ Z_1 = \sum_{j} e^{-\beta E_j} = e^{-\beta (D + \mu H)} + e^{-\beta (D - \mu H)} + 1 = e^{-\beta D} 2 \cosh(\beta \mu H) + 1. \]
Per tant, com l'enunciat menciona que els ions són independents i a més són distingibles degut al fet que estan als nusos d'una xarxa, la funció de partició canònica de tot el sistema és:
\[ Z \equiv Z_N = [Z_1]^N = [e^{-\beta D} 2 \cosh(\beta \mu H) + 1]^N. \]

\textbf{Solució de c):} \\
De teoria sabem que
\[ \langle E \rangle = - \left( \frac{\partial \log Z}{\partial \beta}\right)_{N, V} = - N \left( \frac{\partial \left[ \log(e^{-\beta D} 2 \cosh(\beta \mu H) + 1) \right]}{\partial \beta} \right)_{N, V} = \]
\[ = N\left[ \frac{2 e^{-\beta D} (D \cosh(\beta \mu H) - \mu H \sinh(\beta \mu H))}{2 e^{-\beta D} \cosh(\beta \mu H) + 1} \right]. \]
Per altra banda:
\[ \langle E \rangle = \left\langle D \sum_{i=1}^N S_i^2 - \mu H \sum_{i=1}^N S_i \right\rangle = N (D \langle S_i^2 \rangle - \mu H \langle S_i \rangle).
\]
Comparant ambdues expressions, veiem que l'única possibilitat que siguin iguals per qualsevol valor de les variables és que tinguem:
\[ D \langle S_i^2 \rangle = D \frac{\gamma \cosh(\beta \mu H)}{\gamma \cosh(\beta \mu H) + 1}, \]
\[ \mu \langle S_i \rangle = \mu \frac{\gamma \sinh(\beta \mu H)}{\gamma \cosh(\beta \mu H) + 1}, \]
on $\gamma := 2e^{-\beta D}$.

\textbf{Solució de d):}
El valor del promig de l'energia ja l'hem trobat a la secció anterior.

En el límit de baixes temperatures ja hem discutit quant valen els valors promigs de $S_i$ i $S_i^2$ a l'apartat a). A partir del que hem trobat allà i l'última expressió de $\langle E \rangle$ de l'apartat anterior obtenim:
\[ \lim_{\beta \to \infty} \langle E \rangle = \lim_{\beta \to \infty} N (D \langle S_i^2 \rangle - \mu H \langle S_i \rangle) = \begin{cases}
  N(D - \mu H), & (\text{si } D < \mu H) \\
  \frac{1}{2} N (D - \mu H), & (\text{si } D = \mu H) \\
  0. & (\text{si } D > \mu H)
\end{cases} \]

Veiem que aquests valors coincideixen amb allò que hem vist a l'apartat a), exceptuant el cas en què $D = \mu H$. És possible que això sigui perquè la funció $\langle E \rangle$ no convergeix com a funció dins de l'espai de funcions contínues a troços, sinó com a part d'un espai com $L^2(\mathbb{R})$, on les funcions que prenen els mateix valors quasi per tot (és a dir, només difereixen en un conjunt de punts de mesura nul·la) es consideren idèntiques.

En el límit d'altes temperatures tenim:
\[ \lim_{\beta \to 0} \langle E \rangle = \frac{2}{3} ND. \]

\newpage

\begin{Problem}
  Un gas ideal de $N$ partícules indistingibles i independents de massa $m$ es troba entre dues parets rígides perpendiculars a l'eix $x$, localitzades a $z = \pm \frac{L}{2}$, i sotmés a l'acció d'un potencial confinant harmònic de la forma:
  \[ V(x, y) = \frac{a}{2} x^2 + \frac{b}{2} (y - y_0)^2, \]
  amb $a$ i $b$ dos constants positives. El gas es troba en condicions d'equilibri tèrmic a temperatura $T$.

  Calculeu:

  \begin{enumerate}[a)]
    \item La funció de partició $Z(N, L, T)$ del sistema.

    \item La ``pressió'' $f_z = - \left( \frac{\partial F}{\partial L} \right)_{N, T}$ (noteu que en aquest cas es tracta d'una força al llarg de l'eix $z$) exercida pel gas sobre les parets rígides.

    \item L'energia interna $U$ i l'entropia del gas $S$.

    \item Si el gas es refreda adiabàticament (per tant, amb $\Delta S = 0$) disminuïnt el valor de la constant $b$ del potencial harmònic des d'un valor inicial $b_i$ fins a un valor final $b_f$, trobeu la temperatura final $T_f$ en termes de la temperatura inicial $T_i$ i dels valors $b_i$ i $b_f$.
  \end{enumerate}
\end{Problem}

\textbf{Solució d'a):} \\
La funció de partició canònica d'una partícula del gas és:
\[ Z_1 = \frac{1}{h^3} \int_{\mathbb{R}^3} d^3 \vec{p} \int_\mathbb{V} dv \, e^{-\beta \frac{p^2}{2m} - \beta V(x, y)} = \]
\[ = \frac{1}{h^3} \int_{\mathbb{R}^3} d^3 \vec{p} e^{-\beta \frac{p^2}{2m}} \int_{-\infty}^\infty dx \int_{-\infty}^\infty dy \int_{-\frac{L}{2}}^{\frac{L}{2}} dz e^{-\beta V(x, y)} = \]
\[ = \frac{1}{h^3} \left( \frac{2 \pi m}{\beta} \right)^\frac{3}{2} L \int_{\mathbb{R}^2} dx \, dy \, e^{-\beta \frac{a}{2} x^2 -\beta \frac{b}{2} (y - y_0)^2} = \]
\[ = \frac{L}{h^3} \left( \frac{2 \pi m}{\beta} \right)^\frac{3}{2} \sqrt{\frac{2 \pi}{\beta a}} \sqrt{\frac{2 \pi}{\beta b}} = \]
\[ = \frac{L}{h^3} \left( \frac{2 \pi m^\correction{\frac{3}{5}}}{\beta} \right)^\frac{5}{2} \left( \frac{1}{ab} \right)^{\frac{1}{2}}. \]
Com les partícules del gas són indistingibles, obtenim:
\[ Z(N, L, T) = \frac{1}{N!} [Z_1]^N = \frac{1}{N!} \left( \frac{L}{h^3} \right)^N \left( \frac{2 \pi m^\correction{\frac{3}{5}}}{\beta} \right)^\frac{5N}{2} \left( \frac{1}{ab} \right)^{\frac{N}{2}}. \]

\correction{De fet, una expressió alternativa de la funció de partició canònica d'una partícula del gas és:
\[ Z = \frac{L}{\lambda^3} \frac{2 \pi}{\beta} \left( \frac{1}{ab} \right)^\frac{1}{2}, \]
on $\lambda = \sqrt{h^2 / (2 \pi m K_B T)}$ és la longitud d'ona tèrmica.}

\textbf{Solució de b):}
\[ F = - K_B T \log(Z) = N K_B T \log(N!) - N K_B T \log(Z_1) \implies \]
\[ f_z = - \left( \frac{\partial F}{\partial L} \right)_{N, T} = N K_B T \left( \frac{\partial \log(Z_1)}{\partial L} \right)_{N, T} = \frac{N K_B T}{Z_1} \left( \frac{\partial Z_1}{\partial L} \right)_{N, T} = \]
\[ = \frac{N K_B T}{\cancel{Z_1}} \frac{\cancel{Z_1}}{L} = \frac{N K_B T}{L}. \]

\textbf{Solució de c):}
\[ U = - \left( \frac{\partial \log(Z)}{\partial \beta} \right)_{N, L} = - N \left( \frac{\partial \log(Z_1)}{\partial \beta} \right)_{N, L} = - \frac{5}{2} \left( - \frac{N}{\beta} \right) = \frac{5}{2} N K_B T. \]
\[ S = - \left( \frac{\partial F}{\partial T} \right)_{N, L} = N K_B \left( - \log(N!) + \log(Z_1) - T \left( \frac{\partial \log(Z_1)}{\partial T} \right)_{N, L} \right) = \]
\[ = N K_B \left( \log(\frac{Z_1}{N!}) + \frac{5}{2} \right). \]

\correction{Alternativament també podem escriure:
\[ S = K_B \log Z + \frac{5}{2} N K_B. \]}

\textbf{Solució de d):} \\
Si $\Delta S = 0$, aleshores necessàriament les funcions de partició inicial i final seran iguals, degut a l'expressió de l'entropia que hem trobat a l'apartat anterior. Així doncs:
\[ \frac{L}{h^3} \left( \frac{2 \pi m}{\beta_i} \right)^\frac{5}{2} \left( \frac{1}{a b_i} \right)^{\frac{1}{2}} = \frac{L}{h^3} \left( \frac{2 \pi m}{\beta_f} \right)^\frac{5}{2} \left( \frac{1}{a b_f} \right)^{\frac{1}{2}} \implies \]
\[ \implies \frac{T_i^\frac{5}{2}}{b_i^\frac{1}{2}} = \frac{T_f^\frac{5}{2}}{b_f^\frac{1}{2}} \implies T_f = T_i \left( \frac{b_f}{b_i} \right)^\frac{1}{5}. \]

\newpage

\begin{Problem}
  Una sal polar es pot modelitzar com un conjunt de $N$ dipols elèctrics situats en els nusos d'una xarxa cristal·lina cúbica a temperatura $T$. Aquests dipols de magnitud $p$ poden adoptar 6 possibles orientacions $(\pm p, 0, 0)$, $(0, \pm p, 0)$, $(0, 0, \pm p)$. En presència d'un camp elèctric, l'energia d'un dipol és $\varepsilon = - \vec{p} \cdot \vec{E}$. Si considerem que el camp elèctric està orientat segons l'eix $Z$, $\vec{E} = (0, 0, E)$, determineu:

  \begin{enumerate}[a)]
    \item La funció de partició del sistema.

    \item L'energia interna del sistema. Analitzeu els límits d'alta i baixa temperatura i raoneu els resultats.

    \item L'entropia del sistema. Analitzeu els límits d'alta i baixa temperatura i raoneu els resultats.

    \item Representeu esquemàticament la capacitat calorífica del sistema en funció de la temperatura i raoneu el resultat.
  \end{enumerate}
\end{Problem}

\textbf{Solució d'a):} \\
Suposarem que els dipols són independents, degut al fet que cadascun pot prendre una orientació independentment dels altres. Així doncs, la funció de partició canònica per a cada dipol és:
\[ Z_1 = 4 + e^{- \beta p E} + e^{\beta p E} = 4 + 2\cosh(\beta p E). \]

Per tant, per tot el sistema, donat que els dipols són distingibles:
\[ Z_N = [Z_1]^N = [4 + 2\cosh(\beta p E)]^N. \]

\textbf{Solució de b):}
\[ U = - \left( \frac{\partial \log(Z_N)}{\partial \beta} \right)_{N, V} = -N \left( \frac{\partial \log(Z_1)}{\partial \beta} \right)_{N, V} = - N \frac{2pE \sinh(\beta p E)}{4 + 2 \cosh(\beta p E)} = \]
\[ = - p E N \frac{\sinh(\beta p E)}{2 + \cosh(\beta p E)}. \]

Als límits de temperatura tenim:
\[ \lim_{T \to \infty} U = \lim_{\beta \to 0} U = 0, \]
\[ \lim_{T \to 0} U = \lim_{\beta \to \infty} U = -pEN. \]
A temperatures altes, sembla que d'acord amb el teorema d'equipartició cada dipol adopta una orientació aleatòriament distribuida, i per tant les energies dels dipols en les direccions del camp es cancel·len i de mitja dóna 0.

Per altra banda, a temperatures properes a 0 veiem que els dipols tendeixen a l'energia mínima, que correspon al cas en què tots els dipols tenen una orientació contrària al camp.

\textbf{Solució de c):}
\[ S = - \left( \frac{\partial F}{\partial T} \right)_{N, V} = K_B \left( \log(Z_N) + T \left( \frac{\partial \log(Z_N)}{\partial T} \right)_{N, V} \right) = \]
\[ = K_B \log(Z_N) + N K_B T \frac{1}{Z_1} 2 \sinh(\beta p E) \frac{p E}{K_B T^2} = \]
\[ = N K_B \left( \log(Z_1) - \beta p E \frac{\sinh(\beta p E)}{2 + \cosh(\beta p E)} \right). \]

A temperatures properes al 0 tenim:
\[ \lim_{T \to 0} S = \lim_{\beta \to \infty} S = 0, \]
el que quadra amb el que hem vist anteriorment del fet que tots els dipols estan orientats en sentit contrari al camp (i per tant l'estat fonamental està unívocament determinat) per minimitzar l'energia.

A temperatures prou altes tenim:
\[ \lim_{T \to \infty} S = \lim_{\beta \to 0} S = N K_B \log(6). \]
Aquesta expressió coincideix amb la de l'entropia de Boltzmann, si tenim en compte que tenim $N$ dipols i cadascun pot estar en $6$ microestats diferents (és a dir, el nombre total de microestats és $6^N$):
\[ S_\text{Boltzmann} = K_B \log(6^N) = N K_B \log(6). \]

\textbf{Solució a d):}
\[ C_v = \left( \frac{\partial U}{\partial T} \right)_{N, V} = N (pE)^2 \frac{1}{2 K_B T^2} \frac{\sinh(2 \beta p E)}{(2 + \cosh(2 \beta p E))^2}. \]

\[ \lim_{T \to 0} C_v = 0, \]
\[ \lim_{T \to \infty} C_v = 0. \]

Això és així perquè per a temperatures properes a 0, com hem vist anteriorment tots els dipols tendeixen a l'estat fonamental amb energia constant $pE \neq 0$ i, per tant $C_v \to 0$. A temperatures altes també tenim que tendeix a una constant, i per tant també $C_v \to 0$.

A partir de l'expressió que hem trobat, comprovem que en el 0 $C_v$ cau exponencialment (per les funcions hiperbòliques) i a l'infinit cau com $\frac{1}{T^2}$.

\begin{figure}[H]
  \centering
  \includegraphics[width=10cm]{p3d.png}
  \caption{Gràfica de $C_v(T)$.}
\end{figure}

\end{document}
