\documentclass[11pt,a4paper]{article}
\usepackage[utf8x]{inputenc}
\usepackage[catalan]{babel}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage[labelfont=bf]{caption}
\usepackage{siunitx}
\usepackage{geometry}
\geometry{top=25mm}
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{chemformula}
\usepackage{multicol}
%\usepackage{hyperref} %@TODO: Enable later

\usepackage{tikz}
\usetikzlibrary{positioning}

\usepackage{pgfplotstable}
\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}%,
%every even row/.style={
%before row={\rowcolor[gray]{0.9}}}, % Add this for stylish tables ;)
%begin table=\begin{longtable},
%end table=\end{longtable}
}

\DeclareSIUnit{\calorie}{cal}

\setlength{\parskip}{1em}

\pagestyle{fancy}
\fancyhf{}
\rhead{Adrià Vilanova Martínez}
\lhead{Tasques Termodinàmica}
\rfoot{\thepage}

%%%% Title %%%%
\title{\vspace{-2ex}Tasques Termodinàmica curs 2020-2021\vspace{-2ex}}
\author{Adrià Vilanova Martínez\vspace{-2ex} }
\date{Tardor 2020}

\begin{document}
  \maketitle

  \textbf{Tasca 1. En $\SI{1}{\milli\meter\cubed}$ d'aigua, quantes mol·lècules hi ha? I quina extensió conté tants grans de sorra com mol·lècules contè la gota d'aigua?}

    La densitat de l'aigua és $\rho \approx \SI{1}{\gram\per\centi\meter\cubed}$, i el volum ocupat és $V = \SI{1}{\milli\meter\cubed} = \SI{e-3}{\centi\meter\cubed}$. Per tant: \[ m = \rho V = \SI{1}{\gram\per\centi\meter\cubed} \cdot \SI{e-3}{\centi\meter\cubed} = \SI{e-3}{\gram} \]

    La massa molar de l'aigua és $M \approx \SI{18}{\gram\per\mol}$ i sabem que en un mol hi ha $N_A$ mol·lècules (on $N_A$ és el nombre d'Avogadro), així que: \[ n = N_A \, \si{\per\mol} \frac{m}{M} \approx \SI{6.022e23}{\per\mol} \frac{\SI{e-3}{\gram}}{\SI{18}{\gram\per\mol}} \approx \SI{3.3e19}{} \text{ mol·lècules} \]

    Com vam acordar a classe, suposarem que la platja té una profunditat de $\SI{10}{\meter}$, i la platja és rectangular amb una amplada de $\SI{100}{\meter}$, i que el volum d'un gra de sorra és d'$\SI{1}{\milli\meter\cubed}$. A més, suposarem també que una gota d'aigua té un volum d'$\SI{1}{\milli\meter\cubed}$.

    El volum de la platja en funció de la llargada en metres, $x$, serà $V_\text{platja} = 10 \cdot 100 \, \si{\meter\squared} \cdot x = \SI{e3}{\meter\squared} \cdot x$.

    El volum d'un gra de sorra és $V_\text{gra} = \SI{1}{\milli\meter\cubed} = \SI{e-9}{\meter\cubed}$. Per tant, si suposem que tots els grans de sorra ocuparan el volum de la platja sense deixar cap forat, el nombre de grans de sorra serà de \[ n_\text{grans} = \frac{V_\text{platja}}{V_\text{gra}} \]

    Com, segons l'enunciat, tenim el mateix nombre de grans de sorra que de mol·lècules en una gota d'aigua, tenim que $n = n_\text{grans}$ i, llavors: \[ n = \frac{V_\text{platja}}{V_\text{gra}} = \frac{\SI{e3}{\meter\squared} \cdot x}{V_\text{gra}} \implies \]
    \[ \implies x = \frac{n \, V_\text{gra}}{\SI{e3}{\meter\squared}} = \frac{\SI{3.3e19}{} \cdot \SI{e-9}{\meter\cubed}}{\SI{e3}{\meter\squared}} \approx \SI{33e6}{\meter} = \SI{33000}{\kilo\meter} \]

    Si tinguéssim en compte que entre grans de sorra poden haver forats, la llargada de la platja seria encara més gran que els $\SI{33000}{\kilo\meter}$ que hem calculat.

    En conclusió, hem pogut observar com el nombre de mol·lècules d'aigua en només 1 mil·límetre és extraordinàriament gran.

  \textbf{Tasca 2. Calculeu els graus de llibertat $g$ que té una proteina com la barnasa que té un $C_p \approx \SI{1000}{\calorie\per\mol\per\kelvin}$.}

    Com hem demostrat a classe, pels gasos ideals $C_V = \frac{g}{2} n R$, on $g$ és el nombre de graus de llibertat. Aleshores, suposant que la barnasa es comportés com un gas ideal, per $n = 1 \text{ mol·lècula}$ tenim: \[ C_V = \frac{g}{2} R \implies g = \frac{2 C_V}{R} \approx \frac{2 \cdot \SI{1000}{\calorie\per\mol\per\kelvin}}{\SI{1.987}{\calorie\per\mol\per\kelvin}} \approx 1007 \text{ graus de llibertat} \]

  \textbf{Tasca 3. Expresseu en les vostres pròpies paraules [$\neg (\text{CLAUSIUS}) \implies \neg (\text{KELVIN})$], que és la demostració de [$(\text{KELVIN}) \implies (\text{CLAUSIUS})$].}

    Si no es satisfà la hipòtesi de Clausius, això vol dir que en unes condicions concretes existeix una transformació termodinàmica l'únic resultat de la qual és el flux espontani de calor $Q$ d'una font freda a una font calenta.

    \begin{center}
      \begin{tikzpicture}[
        squarednode/.style={rectangle, draw=black, minimum size=7mm},
        circlednode/.style={circle, draw=black, minimum size=5mm},
        none/.style={}
      ]
        \node[squarednode] (tc) {$T_C$};
        \node[squarednode] (tf) [below=12mm of tc] {$T_F$};

        \draw[->] (tf.north) -- (tc.south) node[pos=0.5, align=left, right] {$Q$};
      \end{tikzpicture}
    \end{center}

    Aleshores, el nostre objectiu és, a partir d'aquest fet, arribar a la conclusió que no se satisfà Kelvin, és a dir, que en certes condicions sigui possible fer una transformació termodinàmica, l'únic resultat de la qual sigui la conversió de la calor $Q$ en treball $W$.

    Definim la següent transformació termodinàmica a partir del Cicle de Carnot:

    \begin{center}
      \begin{tikzpicture}[
        squarednode/.style={rectangle, draw=black, minimum size=7mm},
        circlednode/.style={circle, draw=black, minimum size=5mm},
        none/.style={}
      ]
        \node[circlednode] (s) {S};
        \node[squarednode] (tc) [above=10mm of s] {$T_C$};
        \node[squarednode] (tf) [below=10mm of s] {$T_F$};
        \node[none] (n) [right=14mm of s] {};

        \draw[->] (tc.south) -- (s.north) node[pos=0.5, align=left, right] {$Q_C$};
        \draw[->] (s.south) -- (tf.north) node[pos=0.5, align=left, right] {$Q_F$};
        \draw[->] (s.east) -- (n.west) node[pos=0.5, align=center, above] {$W$};
      \end{tikzpicture}
    \end{center}

    On convenim que $Q_F = Q$ i, per tant, $Q_C = Q + W$.

    Si realitzem les dues transformacions termodinàmiques anteriors alhora, el resultat serà que estem realitzant la següent transformació termodinàmica:

    \begin{center}
      \begin{tikzpicture}[
        squarednode/.style={rectangle, draw=black, minimum size=7mm},
        circlednode/.style={circle, draw=black, minimum size=5mm},
        none/.style={}
      ]
        \node[circlednode] (s) {S};
        \node[squarednode] (tc) [above=10mm of s] {$T_C$};
        \node[squarednode] (tf) [below=10mm of s] {$T_F$};
        \node[none] (n) [right=14mm of s] {};

        \draw[->] (tc.south) -- (s.north) node[pos=0.5, align=left, right] {$Q_C = Q + W - Q = W$};
        \draw[->] (s.east) -- (n.west) node[pos=0.5, align=center, below] {$W$};
      \end{tikzpicture}
    \end{center}

    I aquesta transformació termodinàmica compleix justament l'enunciat negat de Kelvin (és una transformació íntegra de calor en trebeall), que era justament el que volíem veure.

  \textbf{Tasca 4. Calculeu les $Q_C$, $Q_F$ i $W$ del Cicle de Carnot per $T_F$, $T_C$ qualsevols. Demostreu que $\frac{Q_C}{Q_F} = \frac{T_C}{T_F} (= f(T_C, T_F))$}

    \begin{center}
      \includegraphics[width=10cm]{CicledeCarnot}
    \end{center}

    Pel Cicle de Carnot tenim: \[ \begin{cases}
      \displaystyle Q_C = \int_{V_A}^{V_B} P \, dV = \int_{V_A}^{V_B} \frac{nRT_C}{V} \, dV = nRT_C \log\left(\frac{V_B}{V_A}\right) \\
      \displaystyle Q_F = - \int_{V_C}^{V_D} P \, dV = - nRT_F \log\left(\frac{V_D}{V_C}\right) \\
      W = Q_C - Q_F
    \end{cases} \]

    Com és un cicle de Carnot, i tenint en compte que estem considerant processos isotèrmics intercalats amb processos adiabàtics, donats $V_A$ i $V_B$ podem determinar $V_C$ i $V_D$.

    Per $V_B$ tenim que $P_B = \frac{nRT_C}{V_B}$. Aleshores, si fem l'expansió adiabàtica amb $PV^\gamma$ constant, $P_C V_C^\gamma = P_B V_B^\gamma$. I com volem arribar a $T_F$ al punt C, $P_C V_C = nRT_F$. Juntant les dues darreres expressions obtenim que \[ V_C^{\gamma - 1} = \frac{P_B V_B^\gamma}{n R T_F} \implies V_C = \left( \frac{P_B V_B^\gamma}{n R T_F} \right)^\frac{1}{\gamma - 1} =
    \left( \frac{T_C V_B^{\gamma - 1}}{T_F} \right)^\frac{1}{\gamma - 1} =
    V_B \left( \frac{T_C}{T_F} \right)^\frac{1}{\gamma - 1} \]

    Si intercanviem els subíndexs B per A i els subíndexs C per D, obtenim el resultat anàleg: \[ V_D = V_A \left( \frac{T_C}{T_F} \right)^\frac{1}{\gamma - 1} \]

    Aleshores: \[ \frac{V_D}{V_C} =
    \frac{V_A}{V_B} \]

    Substituïnt a l'equació per la $Q_F$ obtenim: \[ Q_F = nRT_F \log\left(\frac{V_B}{V_A}\right) \]

    I per tant, fent el quocient de $Q_C$ i $Q_F$ obtenim: \[ \frac{Q_C}{Q_F} = \frac{nRT_C \log\left(\frac{V_B}{V_A}\right)}{nRT_F \log\left(\frac{V_B}{V_A}\right)} = \frac{T_C}{T_F} \]

  \textbf{Tasca 5. Tenint en compte que:}

  \begin{equation}
    \label{eqn:1}
    \frac{\partial^2 S}{\partial V \partial T} = \frac{\partial^2 S}{\partial T \partial V}
  \end{equation}
  \begin{equation}
    \label{eqn:2}
    \left( \frac{\partial S}{\partial V} \right)_T = \frac{1}{T} \left( \left(\frac{\partial U}{\partial V}\right)_T + P \right)
  \end{equation}
  \begin{equation}
    \label{eqn:3}
    \left(\frac{\partial S}{\partial T}\right)_V = \frac{1}{T} \left( \frac{\partial U}{\partial T} \right)_V
  \end{equation}

  \textbf{Comproveu que:}
  \begin{equation}
    \label{eqn:4}
    \left( \frac{\partial U}{\partial V} \right)_T = T \left(\frac{\partial P}{\partial T}\right)_V - P
  \end{equation}

    Apliquem $\left( \frac{\partial}{\partial T} \right)_V$ a \eqref{eqn:2} i $\left( \frac{\partial}{\partial V} \right)_T$ a \eqref{eqn:3}. Obtenim: \[ \begin{cases}
      \displaystyle \frac{\partial^2 S}{\partial V \partial T} = \frac{1}{T} \left( \frac{\partial^2 U}{\partial V \partial T} + \left(\frac{\partial P}{\partial T}\right)_V \right) - \frac{1}{T^2} \left( \left(\frac{\partial U}{\partial V}\right)_T + P \right) \\
      \displaystyle \frac{\partial^2 S}{\partial V \partial T} = \frac{1}{T} \frac{\partial^2 U}{\partial T \partial V}
    \end{cases} \]

    Aleshores, per \eqref{eqn:1} (Teorema de Schwarz), igualant les anteriors expressions tenim: \[ \left(\frac{\partial U}{\partial V}\right)_T = T \left(\frac{\partial P}{\partial T}\right)_V - P \]

  \newpage

  \textbf{Tasca 6. Calculeu $C_P - C_V$ per l'equació de Van der Waals, partint de l'expressió \eqref{eqn:4} i sabent que:}

  \begin{equation}
    \label{eqn:5}
    C_P - C_V = \left( P + \left(\frac{\partial U}{\partial V}\right)_T \right) \left(\frac{\partial V}{\partial T}\right)_P
  \end{equation}

    L'equació de Van der Waals és: \[ \left( P + \frac{a}{v^2} \right) (v - b) = RT \] on $v = \frac{V}{n}$.

    Sabem que: \[ \left( \frac{\partial U}{\partial V} \right)_T = T \left(\frac{\partial P}{\partial T}\right)_V - P = T \frac{R}{v - b} - \frac{RT}{v -b} + \frac{a}{v^2} = \frac{a}{v^2} \]

    Ara calculem la derivada de V respecte T a pressió constant utilitzant la regla de la cadena d'Euler:
    \[ \def\arraystretch{2.2}\left.\begin{array}{r}
      \displaystyle \left(\frac{\partial V}{\partial T}\right)_P \left(\frac{\partial T}{\partial P}\right)_V \left(\frac{\partial P}{\partial V}\right)_T = -1 \\
      \displaystyle \left(\frac{\partial T}{\partial P}\right)_V = \frac{v - b}{R} \\
      \displaystyle \left(\frac{\partial P}{\partial V}\right)_T = - \frac{RT}{n(v - b)^2} + \frac{2a}{nv^3} = - \frac{1}{n} \left( \frac{RT}{(v - b)^2} - \frac{2a}{v^3} \right)
    \end{array}\right\} \implies \]
    \[ \implies \left(\frac{\partial V}{\partial T}\right)_P = -\frac{1}{\left(\frac{\partial T}{\partial P}\right)_V \left(\frac{\partial P}{\partial V}\right)_T} = \frac{1}{\frac{v - b}{R} \frac{1}{n} \left( \frac{RT}{(v - b)^2} - \frac{2a}{v^3} \right)} \]

    Finalment:

    \[ C_P - C_V = \left( P + \left(\frac{\partial U}{\partial V}\right)_T \right) \left(\frac{\partial V}{\partial T}\right)_P =
    \left( P + \frac{a}{v^2} \right) \left( \frac{1}{\frac{v - b}{R} \frac{1}{n} \left( \frac{RT}{(v - b)^2} - \frac{2a}{v^3} \right)} \right) = \]
    \[ = \frac{\frac{RT}{v - b}}{\frac{v - b}{R} \frac{1}{n} \left( \frac{RT}{(v - b)^2} - \frac{2a}{v^3} \right)} =
    \frac{R}{\frac{(v - b)^2}{RT} \frac{1}{n} \left( \frac{RT}{(v - b)^2} - \frac{2a}{v^3} \right)} =
    \frac{nR}{1 - \frac{2a (v - b)^2}{v^3 RT}}\]

  \newpage

  \textbf{Tasca 7.}

  \textbf{a) Demostreu:}

  \begin{equation}
    \label{eqn:6}
    \left(\frac{\partial S}{\partial P}\right)_T = \frac{1}{T} \left[ \left(\frac{\partial U}{\partial P}\right)_T + P \left(\frac{\partial V}{\partial P}\right)_T \right]
  \end{equation}

  \begin{equation}
    \label{eqn:7}
    \left(\frac{\partial S}{\partial T}\right)_P = \frac{1}{T} \left[ \left(\frac{\partial U}{\partial T}\right)_P + P \left(\frac{\partial V}{\partial T}\right)_P \right]
  \end{equation}

  \textbf{\underline{Indicació:}} Expreseu l'entropia en funció de $P$ i $T$, i feu les substitucions adients tenint en compte que:

  \begin{equation}
    \label{eqn:8}
    dS = \frac{dU + dV}{T}
  \end{equation}

  \textbf{b) A partir del Teorema de Schwarz } \[ \frac{\partial}{\partial T} \left(\frac{\partial S}{\partial P}\right)_T = \frac{\partial}{\partial P} \left( \frac{\partial S}{\partial T} \right)_P \] \textbf{ veieu que això implica que }
  \begin{equation}
    \label{eqn:9}
    \left( \frac{\partial S}{\partial T} \right)_P = - \left( \frac{\partial V}{\partial T} \right)_P
  \end{equation}

    Fem les descomposicions de la diferencial exterior de $U(P, T)$ i la diferencial exterior de $V(P, T)$: \[ \def\arraystretch{2.2} \left\{\begin{array}{l}
      \displaystyle dU = \left(\frac{\partial U}{\partial P}\right)_T dP + \left(\frac{\partial U}{\partial T}\right)_P dT \\
      \displaystyle dV = \left(\frac{\partial V}{\partial P}\right)_T dP + \left(\frac{\partial V}{\partial T}\right)_P dT
    \end{array}\right. \]

    Ara substituïm aquestes expressions a l'expressió \eqref{eqn:8}, que s'ha derivat a partir del primer principi de la Termodinàmica: \[ dS = \frac{1}{T}\left[ \left(\frac{\partial U}{\partial P}\right)_T dP + \left(\frac{\partial U}{\partial T}\right)_P dT + P \left[ \left(\frac{\partial V}{\partial P}\right)_T dP + \left(\frac{\partial V}{\partial T}\right)_P dT \right] \right] = \]
    \[ = \frac{1}{T} \left[ \left(\frac{\partial U}{\partial P}\right)_T + P \left(\frac{\partial V}{\partial P}\right)_T \right] dP + \frac{1}{T} \left[ \left(\frac{\partial U}{\partial T}\right)_P + P \left(\frac{\partial V}{\partial T}\right)_P \right] dT \]

    Fem la descomposició de la diferencial exterior de $S(P, T)$: \[ dS = \left(\frac{\partial S}{\partial P}\right)_T dP + \left(\frac{\partial S}{\partial T}\right)_P dT \]

    Si igualem per components les dues expressions anteriors arribarem a les igualtats \eqref{eqn:6} i \eqref{eqn:7} que buscàvem a l'apartat a.

    \[ \frac{\partial}{\partial T} \left(\frac{\partial S}{\partial P}\right)_T = \frac{\partial}{\partial T} \left\{ \frac{1}{T} \left[ \left(\frac{\partial U}{\partial P}\right)_T + P \left(\frac{\partial V}{\partial P}\right)_T \right] \right\} = \]
    \[ = -\frac{1}{T^2} \left[ \left(\frac{\partial U}{\partial P}\right)_T + P \left(\frac{\partial V}{\partial P}\right)_T \right] + \frac{1}{T} \left[ \frac{\partial^2 U}{\partial P \partial T} + P \frac{\partial^2 V}{\partial P \partial T} \right] = \]

    \[ \frac{\partial}{\partial P} \left(\frac{\partial S}{\partial T}\right)_P = \frac{\partial}{\partial P} \left\{ \frac{1}{T} \left[ \left(\frac{\partial U}{\partial T}\right)_P + P \left(\frac{\partial V}{\partial T}\right)_P \right] \right\} = \]
    \[ = \frac{1}{T} \left[ \frac{\partial^2 U}{\partial P \partial T} + \left(\frac{\partial V}{\partial T}\right)_P + P \frac{\partial^2 V}{\partial P \partial T} \right] \]

    Aplicant el Teorema de Schwarz podem igualar ambdues expressions: \[ -\frac{1}{T^2} \left[ \left(\frac{\partial U}{\partial P}\right)_T + P \left(\frac{\partial V}{\partial P}\right)_T \right] = \frac{1}{T} \left(\frac{\partial V}{\partial T}\right)_P \implies \left(\frac{\partial U}{\partial P}\right)_T + P \left(\frac{\partial V}{\partial P}\right)_T = -T \left(\frac{\partial V}{\partial T}\right)_P \]

    Substituint aquesta expressió a \eqref{eqn:6} obtenim finalment: \[ \left(\frac{\partial S}{\partial P}\right)_T = \frac{-T}{T} \left(\frac{\partial V}{\partial T}\right)_P = - \left(\frac{\partial V}{\partial T}\right)_P \]

  \textbf{Tasca 8. Investigueu pel vostre compte si $K_T \to 0$ en el límit $T \to 0$.}

    Utilitzarem el resultat \eqref{eqn:9} de la tasca 7.b) per demostrar que aquest límit és cert.

    \[ K_T = - \frac{1}{V} \left(\frac{\partial V}{\partial P}\right)_T = \frac{1}{V} \frac{\left( \frac{\partial V}{\partial T} \right)_P}{\left( \frac{\partial P}{\partial T} \right)_V} = - \frac{1}{V} \frac{\left( \frac{\partial S}{\partial T} \right)_P}{\left( \frac{\partial P}{\partial T} \right)_V} \]

    Ara calcularem la derivada parcial de l'entropia: \[ \left( \frac{\partial S}{\partial T} \right)_P = \frac{\partial}{\partial T} \left[ C_V \cdot \log \left(\frac{T}{T_0}\right) + nR \log \left(\frac{v - b}{v_0 - b}\right) + s_0 \right] = \frac{C_V}{T} \]

    Finalment, \[ K_T = - \frac{1}{VT \left( \frac{\partial P}{\partial T} \right)_V} \] que divergeix quan $T \to 0$.

  \textbf{Tasca 9.}

  \textbf{a) Calculeu l'equació d'estat a partir de $\frac{1}{T} = \left(\frac{\partial S}{\partial U}\right)_V$ i demostreu que és $U = \frac{V}{1 + e^\frac{1}{k_B T}}$}

  \[ S(U, V) = V K_B \left[ \log \left(\frac{1}{1 - f(U, V)}\right) + f(U, V) \log \left( \frac{1 - f(U, V)}{f(U, V)} \right) \right] \] on $f(U, V) := \frac{U}{V}$.

  \[ \frac{1}{T} = V K_B \left[ \frac{1}{1 - f(U, V)} \partial_U f(U, V) + \partial_U f(U, V) \log \left( \frac{1 - f(U, V)}{f(U, V)} \right) + \ldots \right. \]
  \[ \left. \ldots - f(U, V) \partial_U f(U, V) \frac{1}{1 - f(U, V)} - f(U, V) \partial_U f(U, V) \frac{1}{f(U, V)} \right] = \]
  \[ = K_B \left[ \frac{1}{1 - f(U, V)} + \log \left( \frac{1 - f(U, V)}{f(U, V)} \right) - f(U, V) \frac{1}{1 - f(U, V)} - f(U, V) \frac{1}{f(U, V)} \right] = \]
  \[ = K_B \left[ \frac{1}{1 - \frac{U}{V}} + \log \left( \frac{1 - \frac{U}{V}}{\frac{U}{V}} \right) - \frac{U}{V} \frac{1}{1 - \frac{U}{V}} - \frac{U}{V} \frac{1}{\frac{U}{V}} \right] = \]
  \[ = K_B \left[ \frac{V}{V - U} + \log \left( \frac{V}{U} - 1 \right) - \frac{U}{V - U} - 1 \right] = K_B \left[ \log \left( \frac{V}{U} - 1 \right) \right] \implies \]
  \[ \implies \frac{1}{K_B T} = \log \left( \frac{V}{U} - 1 \right) \implies \frac{V}{U} - 1 = e^\frac{1}{K_B T} \implies \]
  \[ \implies \frac{V}{U} = 1 + e^\frac{1}{K_B T} \implies U = \frac{V}{1 + e^\frac{1}{K_B T}} \]

  \textbf{b) Calculeu $P$ a partir de l'expressió $P = T \left(\frac{\partial S}{\partial V}\right)_U$}

  \[ S(U, V) = V K_B \left[ \log \left(\frac{1}{1 - f(U, V)}\right) + f(U, V) \log \left( \frac{1 - f(U, V)}{f(U, V)} \right) \right] \implies \]
  \[ \frac{P}{K_B T} = V \left[ \frac{1}{1 - f(U, V)} \partial_V f(U, V) + \partial_V f(U, V) \log \left( \frac{1 - f(U, V)}{f(U, V)} \right) + \ldots \right. \]
  \[ \left. \ldots - f(U, V) \partial_V f(U, V) \frac{1}{1 - f(U, V)} - f(U, V) \partial_V f(U, V) \frac{1}{f(U, V)} \right] + \ldots \]
  \[ \ldots + \log \left(\frac{1}{1 - f(U, V)}\right) + f(U, V) \log \left( \frac{1 - f(U, V)}{f(U, V)} \right) = \]
  \[ = V \left[ \frac{1}{1 - \frac{U}{V}} \left(- \frac{U}{V^2}\right) + \left(- \frac{U}{V^2}\right) \log \left( \frac{1 - \frac{U}{V}}{\frac{U}{V}} \right) - \frac{U}{V} \left(- \frac{U}{V^2}\right) \frac{1}{1 - \frac{U}{V}} - \frac{U}{V} \left(- \frac{U}{V^2}\right) \frac{1}{\frac{U}{V}} \right] + \ldots \]
  \[ \ldots + \log \left(\frac{1}{1 - \frac{U}{V}}\right) + \frac{U}{V} \log \left( \frac{1 - \frac{U}{V}}{\frac{U}{V}} \right) = \]
  \[ = -\frac{U}{V} \left[ \frac{1}{1 - \frac{U}{V}} + \log \left( \frac{1 - \frac{U}{V}}{\frac{U}{V}} \right) - \frac{U}{V} \frac{1}{1 - \frac{U}{V}} - \frac{U}{V} \frac{1}{\frac{U}{V}} \right] + \log \left(\frac{1}{1 - \frac{U}{V}}\right) + \frac{U}{V} \log \left( \frac{1 - \frac{U}{V}}{\frac{U}{V}} \right) = \]
  \[ = -\frac{U}{V} \left[ \frac{V}{V - U} + \log \left( \frac{\frac{V - U}{V}}{\frac{U}{V}} \right) - \frac{U}{V} \frac{V}{V - U} - 1 \right] + \log \left(\frac{V}{V - U}\right) + \frac{U}{V} \log \left( \frac{\frac{V - U}{V}}{\frac{U}{V}} \right) = \]
  \[ = -\frac{U}{V} \left[ \frac{V}{V - U} + \log \left( \frac{V}{U} - 1 \right) - \frac{U}{V - U} - 1 \right] + \log \left( \frac{V}{V - U} \right) + \frac{U}{V} \log \left( \frac{V}{U} - 1 \right) = \]
  \[ = -\frac{U}{V} \log \left( \frac{V}{U} - 1 \right) + \log \left( \frac{V}{V - U} \right) + \frac{U}{V} \log \left( \frac{V}{U} - 1 \right) = \log \left(\frac{V}{V - U} \right) \implies \]
  \[ \implies P = K_B T \log \left( \frac{V}{V - U} \right) \]

  \textbf{c) Calculeu $K_T$ a partir de l'expressió $K_T = -\frac{1}{V} \left(\frac{\partial V}{\partial P}\right)_T$}

  %De l'apartat a) tenim: \[ V = U \left( 1 + e^\frac{1}{K_B T} \right) \implies \left(\frac{\partial V}{\partial P}\right)_T = \left(\frac{\partial U}{\partial P}\right)_T \left( 1 + e^\frac{1}{K_B T} \right) \]

  %Podem calcular la derivada de $U$ a partir de l'expressió de l'apartat b): \[ \left(\frac{\partial U}{\partial P}\right)_T = \left(\frac{\partial V}{\partial P}\right)_T \left( 1 - e^{-\frac{P}{K_B}} \right) + \frac{V}{K_B} e^{-\frac{P}{K_B}} \implies \]
  %\[ \implies \left(\frac{\partial V}{\partial P}\right)_T = \left[ \left(\frac{\partial V}{\partial P}\right)_T \left( 1 - e^{-\frac{P}{K_B}} \right) + \frac{V}{K_B} e^{-\frac{P}{K_B}} \right] \left( 1 + e^\frac{1}{K_B T} \right) \implies \]
  %\[ \implies \left(\frac{\partial V}{\partial P}\right)_T \left[ 1 - \left( 1 - e^{-\frac{P}{K_B}} \right) \left( 1 + e^\frac{1}{K_B T} \right) \right] = \frac{V}{K_B} e^{-\frac{P}{K_B}} \left( 1 + e^\frac{1}{K_B T} \right) \implies \]
  %\[ \implies K_T = - \frac{1}{V} \left(\frac{\partial V}{\partial P}\right)_T = -\frac{\frac{1}{K_B} e^{-\frac{P}{K_B}} \left( 1 + e^\frac{1}{K_B T} \right)}{1 - \left( 1 - e^{-\frac{P}{K_B}} \right) \left( 1 + e^\frac{1}{K_B T} \right)} \]

  \textbf{d) Calculeu $\mu$ a partir de l'expressió $\mu = - \left(\frac{\partial T}{\partial V}\right)_U$}

  De l'apartat a), tenim: \[ T = \frac{1}{K_B} \frac{1}{\log\left( \frac{V}{U} - 1 \right)} \]

  D'on podem calcular el coeficient de Joule: \[ \mu = - \left(\frac{\partial T}{\partial V}\right)_U = \frac{1}{K_B \left( \log \left( \frac{V}{U} - 1 \right) \right)^2 (V - U)} \]

  \textbf{e) Calculeu $C_v$ a partir de l'expressió $C_v = \frac{dQ}{dT} = \left(\frac{\partial U}{\partial T}\right)_V$}

  Derivant el resultat final de l'apartat a) obtenim: \[ C_v = - \frac{V}{K_B T^2} \frac{e^\frac{1}{K_B T}}{\left(1 + e^\frac{1}{K_B T}\right)^2} \]

  \textbf{f) Calculeu $C_p$ a partir de l'expressió $C_p = \frac{dQ}{dT} = \left(\frac{\partial U}{\partial T}\right)_P + P \left( \frac{\partial V}{\partial T} \right)_P$}

  \textbf{g) Calculeu $C_p - C_v$ i comproveu que és major que 0.}

  \textbf{h) Demostreu que} \[ \lim_{T \to 0} S(U, V), C_v, C_p = 0 \] \textbf{és a dir, que es satisfà el tercer principi de la Termodinàmica.}

    \[ S(U, V) = K_B V \left[ \log\left( \frac{V}{V - U} \right) + \frac{U}{V} \log \left( \frac{V - U}{U} \right) \right] = \]
    \[ = K_B V \left[ \log\left( \frac{V}{V - \frac{V}{1 + e^\frac{1}{K_B T}}} \right) + \frac{1}{1 + e^\frac{1}{K_B T}} \log \left( \frac{U \left( 1 + e^\frac{1}{K_B T} \right) - U}{U} \right) \right] = \]
    \[ = K_B V \left[ \log\left( \frac{1}{1 - \frac{1}{1 + e^\frac{1}{K_B T}}} \right) + \frac{1}{1 + e^\frac{1}{K_B T}} \frac{1}{K_B T} \right] = \]
    \[ = V \left[ K_B \left( \log(1) - \log\left( 1 - \frac{1}{1 + e^\frac{1}{K_B T}} \right) \right) + \frac{T^{-1}}{1 + e^\frac{1}{K_B T}} \right] = \]
    \[ = V \left[ - K_B \log\left( \frac{1 + e^\frac{1}{K_B T} - 1}{1 + e^\frac{1}{K_B T}} \right) + \frac{T^{-1}}{1 + e^\frac{1}{K_B T}} \right] = \]
    \[ = V \left[ - K_B \log\left( \frac{e^\frac{1}{K_B T}}{1 + e^\frac{1}{K_B T}} \right) + \frac{T^{-1}}{1 + e^\frac{1}{K_B T}} \right] \]

    Definim ara el canvi de variables $\lambda := T^{-1}$ per treballar amb un límit tendint a l'infinit, que és més còmode de manipular que si tendeix a 0. Aleshores: \[ \lim_{T \to 0} S(T) = \lim_{\lambda \to \infty} S(\lambda) = \lim_{\lambda \to \infty} V \left[ - K_B \log\left( \frac{e^\frac{\lambda}{K_B}}{1 + e^\frac{\lambda}{K_B}} \right) + \frac{\lambda}{1 + e^\frac{\lambda}{K_B}} \right] \]

    Com que es compleix que el volum és un valor fitat en un entorn obert de $T = 0$, que l'exponencial és un infinit d'ordre superior que qualsevol polinomi i que l'exponencial sumada a una constant és un infinit del mateix ordre que l'exponencial, obtenim que el resultat del límit és: \[ \lim_{\lambda \to \infty} S(\lambda) = 0 \implies \lim_{T \to 0} S(T) = 0 \]

    En el cas de $C_V$ hem de fer el mateix canvi de variables, fet que ens fa obtenir la següent expressió: \[ C_V = - \frac{V \lambda^2}{K_B} \frac{e^\frac{\lambda}{K_B}}{\left( 1 + e^\frac{\lambda}{K_B} \right)^2} \]

    Aleshores, calculem el següent límit: \[ \lim_{\lambda \to \infty} \frac{\lambda^2}{e^\frac{\lambda}{K_B}} = 0 \] on hem usat de nou el fet que l'exponencial és un infinit d'ordre superior a un polinomi.

    Ara manipularem aquest límit usant de nou el fet que l'exponencial sumada a una constant és un infinit del mateix ordre que l'exponencial i que el volum està fitat en un entorn del 0, per veure que és el mateix límit que el que volíem calcular: \[ 0 = \lim_{\lambda \to \infty} \frac{\lambda^2}{e^\frac{\lambda}{K_B}} = \lim_{\lambda \to \infty} \frac{\lambda^2 e^\frac{\lambda}{K_B}}{\left( e^\frac{\lambda}{K_B} \right)^2} = \lim_{\lambda \to \infty} \frac{\lambda^2 e^\frac{\lambda}{K_B}}{\left( e^\frac{\lambda}{K_B} \right)^2} = \lim_{\lambda \to \infty} \frac{\lambda^2 e^\frac{\lambda}{K_B}}{\left( 1 + e^\frac{\lambda}{K_B} \right)^2} = \]
    \[ = \lim_{\lambda \to \infty} \frac{V \lambda^2 e^\frac{\lambda}{K_B}}{K_B \left( 1 + e^\frac{\lambda}{K_B} \right)^2} = \lim_{\lambda \to \infty} C_V = \lim_{T \to 0} C_V \]

  \newpage

  \textbf{Tasca 10. Evaleu l'expressió} \[ \frac{\partial G_{total}}{\partial x_s} = 0 \] \textbf{Si definim $g_s := u_s - T s_s + \frac{P}{\rho_s}$ (energia lliure de Gibbs específica) i $g_l := u_l - T s_l + \frac{P}{\rho_l}$, proveu que la condició d'equilibri és} \[ g_s = g_l \]

    Evaluem l'expressió: \[ 0 = \frac{\partial G_{total}}{\partial x_s} = M \partial_{x_s} \left[ x_s(u_s - Ts_s) + (1 - x_s) \cdot (u_l - T s_l) + P \left( \frac{x_s}{\rho_s} + \frac{1 - x_s}{\rho_l} \right) \right] = \]
    \[ = M \left[ u_s - T s_s - u_l + T s_l + P\left( \frac{1}{\rho_s} - \frac{1}{\rho_l} \right) \right] \iff \]
    \[ \iff u_s - T s_s + \frac{P}{\rho_s} = u_l - T s_l + \frac{P}{\rho_l} \underset{\text{(def)}}{\iff} g_s = g_l \]

\end{document}
