<!-- dom:TITLE: FFM232, Klassisk fysik och vektorfält - Föreläsningsanteckningar -->
# FFM232, Klassisk fysik och vektorfält - Föreläsningsanteckningar
<!-- dom:AUTHOR: [Christian Forssén](http://fy.chalmers.se/subatom/tsp/), Institutionen för fysik, Chalmers, Göteborg, Sverige -->
<!-- Author: --> **[Christian Forssén](http://fy.chalmers.se/subatom/tsp/), Institutionen för fysik, Chalmers, Göteborg, Sverige**

Date: **Sep 9, 2016**

# 4. Integralsatser

Minnesregel för strukturen på alla integralsatser

$$
\begin{equation}
  \int_{V_D} (\mathrm{derivata~av~fält}) = \int_{(\partial V)_{D-1}} (\mathrm{fält})
\end{equation}
$$

Enkelt exempel: integration av funktion av en variabel:

$$
\begin{equation}
\int_a^b \frac{\mbox{d}f}{\mbox{d}x} \mbox{d}x = \left[ f(x) \right]_a^b = f(b)-f(a)
\end{equation}
$$

Randen av den endimensionella volymen $[a,b]$ är de två punkterna $a$ och $b$, så tolkningen av högerledet i det schematiska uttrycket ovan blir en summa över dessa två punkter.

## Gauss sats

Man kan alltid beräkna integraler enligt metoderna på förra föreläsningen, men i vissa fall kan man tillämpa integralsatser som förenklar beräkningarna.

Ett viktigt exempel på en sådan sats är Gauss sats.

*Sats:*  Antag att $\vec{F}$ är ett kontinuerligt deriverbart vektorfält definierat i en volym $V$. $\partial V = S$ är den slutna ytan som bildar randen till $V$ och $\mbox{d}\vec{S} = \hat{n} \mbox{d}S$ där $\hat{n}$ är den utåtriktade enhetsnormalen. Då gäller att

$$
\begin{equation}
  \int_V \nabla \cdot \vec{F} \mbox{d}V = \oint_{\partial V} \vec{F} \cdot \mbox{d} \vec{S}.
\end{equation}
$$

Kvantiteten

$$
\begin{equation}
\nabla  \cdot \vec{F} = \frac{\partial F_x}{\partial x} +
\frac{\partial F_y}{\partial y} + \frac{\partial F_z}{\partial z}
\end{equation}
$$

kallar vi för divergensen av $\vec{F}$. Om man tänker sig att $\vec{F}$ är hastigheten för en vätska, så kan man se divergensen av $\vec{F}$ i en punkt som ett mått på hur mycket vätska som strömmar ut från den punkten.

Lägg märke till att volymen $V$ i Gauss sats måste vara sammanhängande, men att det inte är nödvändigt att $S$ är sammanhängande.  $S$ kan mycket väl bestå av ett ändligt antal var för sig glatta ytsegment, så länge som de bara tillsammans bildar en sluten yta. Vidare kommer vi tills vidare att begränsa oss till "hyfsat snälla" fält. Mer om detta längre fram i kursen.

En fysikalisk tolkning av Gauss sats är att högerledet representerar flödet ut genom en yta $S$ och att vänsterledet representerar närvaror av källor till detta flöde innanför ytan. Integranden $\nabla \cdot \vec{F}$ kallas också för källtäthet.

---------------------------------------------

### Exempel: Gauss sats (tentamen 2011-08-25, variant)

---------------------

Beräkna normalytintegralen

$$
\begin{equation}
\int_S \vec{F} \cdot \mbox{d}\vec{S},
\end{equation}
$$

där $\vec{F} = -F_0 z \hat{z} / a$ och $S$ är ytan $x^2 + y^2 = (z-4a)^2$ och $0\le z \le 4a$ med normalen snett uppåt (alltså positiv z-komponent).

*Lösning:*
* Bestäm utseendet på ytan $S$ och rita en tydlig figur.

* Undersök fältet $\vec{F}$. Singulariteter? Beräkna $\nabla \cdot \vec{F}$.

* Slut ytan $S$. Undvik singulariteter inuti den inneslutna volymen.

* Teckna Gauss sats och beräkna integralen.

* Har normalen rätt riktning?

Vår ytan är en kon med spetsen i $z=4a$ och en öppning nedåt. Den är alltså inte sluten! Fältet är utan singulariteter och divergensen är $\nabla \cdot \vec{F} = -F_0 / a$.

Vi kan sluta ytan genom att lägga till en bottenplatta, $S_{z=0}$, i $xy$-planet. Detta blir en cirkelskiva med $z=0$ och radie $4a$. Normalvektorn blir $-\hat{z}$ för at peka ut från den inneslutna volymen. På den slutna ytan $S+S_{z=0}$ kan vi sedan tillämpa Gauss sats

$$
\begin{equation}
  \oint_{S+S_{z=0}} \vec{F} \cdot \mbox{d}\vec{S} = \int_V \nabla \cdot \vec{F}
\mbox{d}V = -\frac{F_0}{a}\int_V\mbox{d}V = -\frac{F_0}{a} \frac{1}{3} \pi (4a)^2 4a.
\end{equation}
$$

Vi kan nu separat beräkna

$$
\begin{equation}
  \int_{S_{z=0}} \vec{F} \cdot \mbox{d}\vec{S} = 0,
\end{equation}
$$

eftersom $\vec{F}=0$ då $z=0$.  Slutligen har vi alltså

$$
\begin{equation}
  \int_S \vec{F} \cdot \mbox{d}\vec{S} = -\frac{64\pi}{3} F_0 a^2.
\end{equation}
$$

---------------------------------------------

## Kontinuitetsekvationen

Tänk oss ett fall med en strömmande fluid där vi antar att den totala massan är bevarad.
* Densitetsfält $\rho(\vec{r},t)$

* Hastighetsfält $\vec{v}(\vec{r},t)$

* Massflödestäthet $\vec{j}(\vec{r},t) = \rho(\vec{r},t) \vec{v}(\vec{r},t)$

Definiera en yta $\mbox{d}\vec{S}$ med normalriktning $\hat{n}$. Då blir $\vec{j} \cdot \hat{n} = \mathrm{massa}/\mathrm{tidsenhet} \cdot \mathrm{areaenhet}$ genom ytan.

Inne i en volym $V$ finns massan $m_V = \int_V \rho \mbox{d}V$. Vi kan räkna ut $\frac{\mbox{d}m_V}{\mbox{d}t}$ på två sätt:
* Från integralen ovan: $\frac{\mbox{d}m_V}{\mbox{d}t} = \int_V \frac{\partial \rho}{\partial t} \mbox{d}V$.

* Hur mycket massa flödar in i volymen per tidsenhet

$$
\begin{equation}
\frac{\mbox{d}m_V}{\mbox{d}t} =
-\left\{ \mathrm{det~som~flödar~ut} \right\}
= -\int_{\partial V} \vec{j} \cdot \mbox{d}\vec{S} \nonumber
\end{equation}
$$

$$
\begin{equation}
= \left\{ \mathrm{Gauss~sats} \right\} = -\int_V \nabla \cdot \vec{j} \mbox{d} V
\end{equation}
$$

Sammantaget så innebär det att $\int_V \left( \frac{\partial \rho}{\partial t} + \nabla \cdot \vec{j} \right) \mbox{d}V = 0$ för alla volymer $V$. Därför får vi kontinuitetsekvationen (som uttrycker en storhets bevarande)

$$
\begin{equation}
\frac{\partial \rho}{\partial t} + \nabla \cdot \vec{j} = 0.
\end{equation}
$$

## Stokes sats

Först given på skrivningen för Smith's priset i februari 1854 i Cambridge.  (Bästa student J. C. Maxwell).

*Sats:*  Den slutna kurvan $C$ är randen till ytan $S$. Då gäller för ett kontinuerligt deriverbart vektorfält $\vec{F}$ på $S$ att

$$
\begin{equation}
  \int_S \left( \nabla \times \vec{F}\right) \cdot \mbox{d}\vec{S} = \oint_{\partial S} \vec{F}\cdot
\mbox{d}\vec{r},
\end{equation}
$$

där $\partial S = C$ är randen till $S$ och $\mbox{d}\vec{S} = \hat{n} \mbox{d} S$. Normalriktningen ($\hat{n}$) och randens riktning ($C$) är orienterade enligt högerhandsregeln.

En viktig observation är att man kan välja olika ytor $S$ som alla
har samma rand. Integralen i vänsterledet är alltså oberoende
av vilken man väljer. Tag två ytor $S_1$ och $S_2$ med samma
rand. Genom att sätta samman dem, och vända riktning på
normalen till den ena får vi en sluten yta $S$ med
$\partial S=\emptyset$. Vi har alltså

$$
\begin{equation}
\oint_S(\nabla\times\vec{F})\cdot \mbox{d}\vec{S} = \left(\int_{S_1}-\int_{S_2}\right)(\nabla\times\vec{F})\cdot
\mbox{d}\vec{S}=0.
\end{equation}
$$

Eftersom ytan är sluten kan vi använda Gauss sats, som säger att detta skall vara lika med
$\int_V\nabla\cdot(\nabla\times\vec{F})\mbox{d}V$ där $\partial V=S$. Integranden här är identiskt noll. Så vänsterledets i Stokes sats oberoende av vilken yta man väljer kan via Gauss sats ses som en konsekvens av identiteten

$$
\begin{equation}
\nabla\cdot(\nabla\times\vec F)=0.
\end{equation}
$$

## Inifinitesimala volymer och ytor: uttryck för divergens och rotation

Vi kan använda Gauss och Stokes satser på inifinitesimala volymer och ytor för att finna koordinatoberoende definition av divergens och rotation på ett fält.

### Divergens i kroklinjiga koordinater

Med hjälp av ytintegralen kan vi konstruera en koordinatoberoende definition av divergensen i punkten $P$ ($u_1u_2u_3$). Betrakta en volym $\delta V$ runt $P$, som är så liten att $\nabla \cdot \vec{F}$ kan betraktas som konstant, och använd Gauss sats

$$
\begin{equation}
  \nabla \cdot \vec{F} =\lim_{\delta V \to 0} \frac{1}{\delta V} \int_{\delta V} \nabla \cdot \vec{F} \mbox{d} V \quad \Rightarrow \nonumber
\end{equation}
$$

$$
\begin{equation}
  = \lim_{\delta V \to 0} \frac{1}{\delta V} \oint_{\partial (\delta
V)} \vec{F} \cdot \mbox{d}\vec{S},
\end{equation}
$$

* $\partial (\delta V)$ är den infinitesimala volymens begränsningsyta.

* Dessa  begränsningsytor väljs som koordinatytor för $u_1,u_2,u_3$

* Vi skriver $\vec{F} = F_1 \hat{e}_1 + F_2 \hat{e}_2 + F_3 \hat{e}_3$.

Betrakta först integralen över $u_1$-ytorna. Storleken på ytelementet blir $h_2 h_3 \mbox{d}u_2 \mbox{d}u_3$ och riktningen blir $+\hat{e}_1$ och $-\hat{e}_1$ på de två sidorna. Produkten $\vec{F} \cdot \mbox{d} \vec{S}$ kommer därmed ha storleken $(F_1 h_2 h_3) \mbox{d}u_2 \mbox{d}u_3$ och vi får inte glömma att storheterna inom parantesen kan ha ett $u_1$-beroende

$$
\begin{equation}
\int_{u_1-\mathrm{ytorna}} \vec{F} \cdot \mbox{d} \vec{S} = \Big( (F_1 h_2 h_3)_{u_1 + \mathrm{d} u_1/2} - (F_1 h_2 h_3)_{u_1-\mathrm{d} u_1/2} \Big)  \mbox{d}u_2 \mbox{d}u_3 \nonumber
\end{equation}
$$

$$
\begin{equation}
= \frac{\partial (F_1 h_2 h_3)}{\partial u_1} \mbox{d}u_1 \mbox{d}u_2 \mbox{d}u_3.
\end{equation}
$$

Eftersom volymen $\delta V = h_1 h_2 h_3 \mbox{d}u_1 \mbox{d}u_2 \mbox{d}u_3$ blir det totalt

$$
\begin{equation}
\nabla \cdot \vec{F} = \lim_{\delta V \to 0}  \frac{\mbox{d}u_1 \mbox{d}u_2 \mbox{d}u_3}{h_1 h_2 h_3 \mbox{d}u_1 \mbox{d}u_2 \mbox{d}u_3} \left( \frac{\partial}{\partial u_1} (F_1 h_2 h_3) + \frac{\partial}{\partial u_2} (F_2 h_1 h_3) + \frac{\partial}{\partial u_3} (F_3 h_1 h_2) \right) \nonumber
\end{equation}
$$

$$
\begin{equation}
= \frac{1}{h_1 h_2 h_3} \sum_{i=1}^3 \frac{\partial}{\partial u_i} \left[ \frac{h_1 h_2 h_3}{h_i} F_i \right].
\end{equation}
$$

### Exempel: sfäriska koordinater

* skalfaktorer $h_r=1$, $h_\theta=r$, $h_\varphi = r \sin\theta$

* Ett vektorfält $\vec{F} = F_r \hat{e}_r + F_\theta \hat{e}_\theta + F_\varphi \hat{e}_\varphi$

Divergensen blir

$$
\begin{equation}
\nabla \cdot \vec{F} = \frac{1}{r^2 \sin\theta} \left( \frac{\partial}{\partial r} \left( r^2 \sin\theta F_r \right) + \frac{\partial}{\partial \theta} \left( r \sin\theta F_\theta \right) + \frac{\partial}{\partial \varphi} \left( r F_\varphi \right) \right) \nonumber
\end{equation}
$$

$$
\begin{equation}
= \frac{1}{r^2} \frac{\partial}{\partial r} \left( r^2 F_r \right) + \frac{1}{r \sin\theta} \frac{\partial}{\partial \theta} \left( \sin\theta F_\theta \right) + \frac{1}{r \sin\theta} \frac{\partial F_\varphi}{\partial \varphi}.
\end{equation}
$$

### Rotation i kroklinjiga koordinater

Med hjälp av en kurvintegral kan vi konstruera en koordinatoberoende definition av rotationen. För ett infinitesimalt litet ytelement $d\vec{S} = \hat{n} dS$ har vi

$$
\begin{equation}
  \hat{n} \cdot \left( \nabla \times \vec{F} \right) =  \lim_{\delta S \to 0} \frac{1}{\delta S} \int_{\delta S} \nabla \times \vec{F} \cdot \mbox{d} \vec{S} \quad \Rightarrow \nonumber
\end{equation}
$$

$$
\begin{equation}
  = \lim_{\delta S \to 0}
\frac{1}{\delta S} \oint_{\partial (\delta S)} \vec{F} \cdot \mbox{d}\vec{r},
\end{equation}
$$

där $\delta S$ är ett litet ytelement med normalen $\hat{n}$ och uttrycket ovan alltså ger komponenten av $\nabla \times \vec{F}$ längs enhetsvektorn $\hat{n}$.
* Vi får (exempelvis) $u_1$-komponenten av $\nabla \times \vec{F}$ genom att låta $\delta S$ vara en $u_1$-yta.

* Randen $\partial(\delta S)$ utgörs då av koordinatlinjerna för $u_2$ och $u_3$.

* Lägg ihop de fyra bidragen och dela med $\delta S = h_2 h_3 \mbox{d}u_2 \mbox{d}u_3$.

* Upprepa detta för $u_2$ och $u_3$ komponenterna.

Slutresultatet blir

$$
\begin{equation}
\nabla \times \vec{F} = = \frac{1}{h_1 h_2 h_3} \left|
\begin{matrix}
h_1 \hat{e}_1 & h_2\hat{e}_2 & h_3\hat{e}_3\cr
\frac{\partial }{\partial u_1} & \frac{\partial }{\partial u_2} & \frac{\partial }{\partial u_3}\cr
h_1F_1 & h_2F_2 & h_3F_3 \cr
\end{matrix} \right| .
\end{equation}
$$

### Laplaceoperatorn i kroklinjiga koordinater

Slutligen kan kan man använda uttrycken för gradient och divergens för att få  Laplaceoperatorn på en skalär i kroklinjiga koordinater:

$$
\begin{equation}
\Delta\phi=\nabla \cdot (\nabla\phi)
=\frac{1}{h_1h_2h_3}\sum_{i=1}^3
\frac{\partial}{\partial u_i} \left( \frac{h_1h_2h_3}{h_i^2} \frac{\partial\phi}{\partial u_i} \right).
\end{equation}
$$

### Exempel (Gauss sats): Tentamen 2003-08-18

-----------------------

Beräkna integralen

$$
\begin{equation}
  \int_S \vec{F}\cdot \mbox{d}\vec{S},
\end{equation}
$$

där $S$ är ytan

$$
\begin{equation}
  x^2 + y^2 + z^2 = a^2,  \quad z> 0,
\end{equation}
$$

och fältet $\vec{F}$ ges av

$$
\begin{equation}
  \vec{F} = \frac{F_0}{a^2} \left(ax, ay, x^2+y^2\right).
\end{equation}
$$

$a$ och $F_0$ är konstanter.

*Lösning:*
Vi konstaterar först att ytan

$$
\begin{equation}
  x^2 + y^2 + z^2 = a^2, \quad z>0
\end{equation}
$$

är en halvsfär med radien $a$.

Fältet $\vec{F}$ är reguljärt överallt, och det har divergensen

$$
\begin{equation}
  \nabla \cdot \vec{F} = \frac{F_0}{a^2}\left(\frac{\partial}{\partial x}
\left(ax\right) + \frac{\partial}{\partial y} \left(ay\right) +
\frac{\partial}{\partial z} \left(x^2 + y^2\right)\right) = \frac{F_0}{a^2}
\left(a+a\right) = 2 \frac{F_0}{a}.
\end{equation}
$$

Allt vi behöver göra för att kunna tillämpa Gauss sats är därför att sluta ytan genom att lägga till en bottenyta $S_1$ med normalen $-\hat{z}$, samtidigt som vi sätter normalen till $S$ till $\hat{e}_r$.  Gauss sats ger oss nu att

$$
\begin{equation}
  \oint_{S+S_1} \vec{F}\cdot \mbox{d}\vec{S} = \int_S \vec{F}\cdot \mbox{d}\vec{S} +
\int_{S_1} \vec{F}\cdot \mbox{d}\vec{S} = \int_V \nabla \cdot \vec{F} \mbox{d}V =
\int_V 2 \frac{F_0}{a} \mbox{d}V \nonumber
\end{equation}
$$

$$
\begin{equation}
 = 2\frac{F_0}{a} \frac{2\pi a^3}{3} =
\frac{4\pi F_0 a^2}{3}.
\end{equation}
$$

Vi övergår nu till att beräkna integralen över $S_1$:

$$
\begin{equation}
  \int_{S_1} \vec{F}\cdot \mbox{d}\vec{S} = \int_{S_1} \vec{F} \cdot \left(-
\hat{z} \right) \mbox{d}S = \int_{S_1} - \frac{F_0}{a^2} \left(x^2 + y^2
\right) \mbox{d}S.
\end{equation}
$$

Det är nu praktiskt att skriva om integralen på cylinderkoordinater

$$
\begin{equation}
  \int_{S_1} \vec{F}\cdot \mbox{d}\vec{S} = - \frac{F_0}{a^2} \int_0^a
\int_0^{2\pi} \rho^2 \rho \mbox{d}\varphi \mbox{d}\rho = -2\pi
\frac{F_0}{a^2} \left[\frac{\rho^4}{4}\right]_0^a = - \frac{\pi F_0 a^2}{2}.
\end{equation}
$$

Vi kan nu få fram ett värde på vår sökta integral

$$
\begin{equation}
  \int_S \vec{F}\cdot \mbox{d}\vec{S} = \oint_{S+S_1} \vec{F}\cdot \mbox{d}\vec{S}
-\int_{S_1} \vec{F}\cdot \mbox{d}\vec{S} = \frac{4\pi F_0 a^2}{3} +
\frac{\pi F_0 a^2}{2} = \frac{11\pi F_0 a^2}{6}.
\end{equation}
$$

---------------------------------------------

### Exempel (Stokes sats): Tentamen 2003-08-18

-----------------------

Beräkna integralen

$$
\begin{equation}
  \oint_C \vec{F}\cdot \mbox{d}\vec{r},
\end{equation}
$$

där kurvan $C$ ges av skärningen mellan ytorna

$$
\begin{equation}
  r^2\sin^2 \theta \left(4 \cos^2 \varphi + \sin^2 \varphi\right) = 4 a^2,
\end{equation}
$$

och

$$
\begin{equation}
  z = 0.
\end{equation}
$$

Kurvan omsluts i moturs riktning sett ovanifrån (dvs högerorienterad relativt $z$-axeln).
Vidare ges fältet $\vec{F}$ av

$$
\begin{equation}
  \vec{F} = F_0 \left[\left(\frac{a}{r} + \frac{r}{2a}\sin^2 \theta \sin 2\varphi
\right) \hat{r} + \left(\frac{a}{r} \cot \theta + \frac{r}{4a}
\sin 2 \theta \sin 2 \varphi\right) \hat{e}_\theta -
\frac{r}{a} \sin \theta \sin^2 \varphi \hat{e}_\varphi \right].
\end{equation}
$$

$F_0$ och $a$ är konstanter.

*Lösning*:
Strategi:
* Bestäm kurvan $C$ och rita en tydlig figur

* Undersök fältet $\vec{F}$, singulariteter? Räkna ut $\nabla \times \vec{F}$, singulariteter?

* Slut kurvan $C$ och bestäm ytan $S$ (ofta flera möjligheter). Undvik singulariteter på ytan.

* Teckna Stokes sats och beräkna de integraler som uppträder

* Kontrollera en gång till att delkurvorna och ytan $S$ har konsistenta riktningar.

Vi följer lösningsstrategin
* Bestäm kurvan $C$ och rita en tydlig figur

Formen på denna kurva tolkas kanske enklast i kartesiska koordinater

$$
\begin{equation}
\left\{
\begin{array}{ll}
x = r \sin\theta \cos\varphi & \\
y = r \sin\theta \sin\varphi & \\
z = r\cos\theta
\end{array}
\right.
\end{equation}
$$

Vi börjar alltså med att skriva om

$$
\begin{equation}
  r^2 \sin^2 \theta \left(4 \cos^2 \varphi + \sin^2 \varphi\right) = 4 a^2
\end{equation}
i kartesiska koordinater
\begin{equation}
  4x^2 + y^2 = 4a^2,
\end{equation}
$$

vilket är mantelytan till en elliptisk cylinder med halvaxlarna $a$ och $2a$. Skärningen med $z=0$ planet blir då en ellips i $xy$-planet med mittpunkt i origo och med halvaxlarna $a$ och $2a$.
* Undersök fältet $\vec{F}$, singulariteter? Räkna ut $\nabla \times \vec{F}$, singulariteter?

Vi skriver om fältet genom att gruppera termerna enligt gemensam pre-faktor. Sedan noterar vi att de två termerna blir väldigt enkla om de uttrycks i varsitt koordinatsystem

$$
\begin{equation}
  \vec{F} = F_0 \left[\left(\frac{a}{r} + \frac{r}{2a} \sin^2 \theta
\sin 2\varphi\right) \hat{e}_r + \left(\frac{a}{r} \cot \theta +
\frac{r}{4a} \sin 2\theta \sin 2\varphi\right) \hat{e}_\theta -
\frac{r}{a} \sin \theta \sin^2 \varphi \hat{e}_\varphi \right]
\nonumber
\end{equation}
$$

$$
\begin{equation}
= F_0 \left[\frac{a}{r\sin \theta} \left(\sin \theta \hat{e}_r +
\cos \theta \hat{e}_\theta \right) + \frac{r}{a} \sin \theta \sin \varphi
\left( \sin \theta \cos \varphi \hat{e}_r + \cos \theta \cos \varphi
\hat{e}_\theta - \sin \varphi \hat{e}_\varphi \right) \right]
\nonumber
\end{equation}
$$

$$
\begin{equation}
= F_0 \left(\frac{a}{\rho} \hat{e}_\rho + \frac{y}{a} \hat{x} \right).
\end{equation}
$$

Där vi alltså har använt att projektionen i $xy$-planet är $\rho = r \sin\theta$ och att $\hat{e}_\rho = \sin\theta \hat{e}_r + \cos\theta \hat{e}_\theta$ och $\hat{x} = \cos\varphi \hat{e}_\rho - \sin\varphi \hat{e}_\varphi$.

Notera att vi har skrivit $\vec{F} = \vec{F}_1 + \vec{F}_2$ där vi uttryckt de två termerna i olika koordinatsystem. Den första termen är uttryckt i ett cylindriskt koordinatsystem och den andra i ett kartesiskt.

Vi konstaterar nu att $\vec{F}$ är singulär för $\rho = 0$ (genom $\vec{F}_1$-termen).

Sedan beräknar vi rotationen. Det är inget problem att vi har skrivit vektorn som summan av två termer eftersom $\nabla \times (\vec{F}_1 + \vec{F}_2) = \nabla \times \vec{F}_1 + \nabla \times \vec{F}_2$. Kom bara ihåg att använda rätt uttryck för rotationsoperatorn fär de olika koordinatsystemen.

$$
\begin{equation}
  \nabla \times \vec{F} = \nabla \times \left( F_\rho \hat{e}_\rho + F_x \hat{x} \right) = 0 + \nabla \times F_x \hat{x} = - \frac{\partial}{\partial y}\left(F_0\frac{y}{a}\right)
\hat{z} = - \frac{F_0}{a} \hat{z}.
\end{equation}
$$

Vi noterar att denna ej beror på $\rho$ och ej är singulär. Faktum är att det var ganska uppenbart att den första termen skulle ha noll rotation (skissa gärna fältlinjerna).

* Slut kurvan $C$ och bestäm ytan $S$ (ofta flera möjligheter). Undvik singulariteter på ytan.

Kurvan $C$ omsluter redan en yta, men singulariteten gör det svårt att applicera Stokes sats. Notera att det faktum att singulariteten sitter längs hela $z$-axeln (en sk linjesingularitet) gör det omöjligt att konstruera en yta utan singularitet med bara $C$ som rand.

Istället inför vi en inre rand för att kunna använda Stokes sats. Omge $z$-axeln med en liten cirkel, $C_\epsilon$ med radien $\epsilon$. Lägg märke till att medan vi följer $C$ i moturs riktning, så måste  vi följa $C_\epsilon$ i medurs riktning.
[Comment 1: Högerhandsregeln. Stå på ytan med tummen upp i normalens riktning och titta på randen. Fingrarna ger riktningen.]
* Teckna Stokes sats och beräkna de integraler som uppträder

Stokes sats ger oss att

$$
\begin{equation}
  \oint_C \vec{F}\cdot \mbox{d}\vec{r} + \oint_{C_\epsilon} \vec{F}\cdot \mbox{d}\vec{r}
= \int_{S_\epsilon} \nabla \times \vec{F} \cdot \mbox{d}\vec{S},
\end{equation}
$$

där $S_\epsilon$ är en yta som har $C$ och $C_\epsilon$ till rand.  Denna yta har
normalvektorn $\hat{z}$. I gränsen $\epsilon \to 0$ kommer $S_\epsilon \to S$.

Ytintegralen, i gränsen $\epsilon \to 0$, blir då

$$
\begin{equation}
  \lim_{\epsilon \to 0} \int_{S_\epsilon} \nabla \times \vec{F} \cdot \mbox{d}\vec{S} = -\frac{F_0}{a} \int_S \mbox{d}S
= - \frac{F_0}{a} \pi (a) (2a) = -2\pi F_0 a.
\end{equation}
$$

För att räkna ut integralen över $C_\epsilon$ parametriserar vi kurvan med vinkeln $\varphi$. Eftersom vi skall gå moturs längs en cirkel med radien $\epsilon$ inser vi att $\mbox{d}\vec{r} = - \epsilon \hat{e}_\varphi \mbox{d}\varphi$ så att integralen blir

$$
\begin{equation}
  \int_{C_\epsilon} \vec{F}\cdot \mbox{d}\vec{r} = \int_0^{2\pi} F_0
\left(\frac{a}{\rho} \hat{e}_\rho + \frac{y}{a} \hat{x} \right) \cdot
\left(-\hat{e}_\varphi \right) \epsilon \mbox{d}\varphi \nonumber
\end{equation}
$$

$$
\begin{equation}
= F_0 \int_0^{2\pi} \frac{\epsilon \sin \varphi}{a} \sin
\varphi \mbox{d} \varphi \to 0 \quad \mbox{då} \quad \epsilon \to 0.
\end{equation}
$$

Alltså följer det att

$$
\begin{equation}
\int_C \vec{F} \cdot \mbox{d}\vec{r} = \int_{C+C_\epsilon} \vec{F}\cdot \mbox{d}\vec{r} =
-2\pi F_0 a.
\end{equation}
$$

* Kontrollera en gång till att delkurvorna och ytan $S$ har konsistenta riktningar. Det är även en god idé att kontrollera enheten som skall vara enheten på $F_0$ gånger längd (eftersom vi utfört en kurvintegral).

---------------------------------------------

## Ytterligare räkneproblem

### Exempel: Ytintegral med öppning

---------------------------------------------

Beräkna integralen

$$
\begin{equation}
\int_S \vec{F} \cdot \mbox{d}\vec{S},
\end{equation}
$$

där $\vec{F} = F_0/a \left( x\hat{x} + y\hat{y} \right)$ och $S$ är ytan $2a -\sqrt{x^2 - y^2} = z$ och $0\le z \le 2a$ med normalen snett uppåt (alltså positiv z-komponent).

Vi kan då börja med att beräkna $\nabla \cdot \vec{F} = 2F_0/a$. Eftersom divergensen har ett så enkelt uttryck är det lockande att  använda Gauss sats, men ytan $S$ är en kon med spetsen i $z = 2a$ och öppningen nedåt; den är alltså inte en sluten yta.  Vi kan dock sluta den genom att lägga till en cirkelskiva, $S_\epsilon$ i $xy$-planet med radien $2a$ och normalvektorn $-\hat{z}$. På den slutna ytan $S+S_\epsilon$ kan vi sedan tillämpa Gauss sats

$$
\begin{equation}
  \oint_{S+S_\epsilon} \vec{F} \cdot \mbox{d}\vec{S} = \int_V \nabla \cdot \vec{F}
\mbox{d}V = \frac{2F_0}{a}\int_V\mbox{d}V.
\end{equation}
$$

Volymen av konen är

$$
\begin{equation}
  \int_V\mbox{d}V = \frac{1}{3} \pi \left(2a\right)^2 2a = \frac{8\pi a^3}{3},
\end{equation}
$$

och alltså blir integralen

$$
\begin{equation}
  \oint_{S+S_\epsilon} \vec{F} \cdot \mbox{d}\vec{S} = \frac{2F_0}{a}
\frac{8\pi a^3}{3} = \frac{16\pi F_0 a^2}{3}.
\end{equation}
$$

Vi kan nu separat beräkna

$$
\begin{equation}
  \int_{S_\epsilon} \vec{F} \cdot \mbox{d}\vec{S},
\end{equation}
$$

men här lägger vi märke till att $\vec{F}$ saknar en $z$-komponent,  så $\vec{F} \cdot \hat{z} = 0$, och integralen över $S_\epsilon$ blir också noll.  Slutligen har vi alltså

$$
\begin{equation}
  \int_S \vec{F} \cdot \mbox{d}\vec{S} = \frac{16\pi F_0 a^2}{3}.
\end{equation}
$$

---------------------------------------------

### Exempel: kurvintegral längs komplicerad ellips

-----------------------------

[Comment 2: PLK Kap. 2.5 Uppg. 3:]  Beräkna integralen

$$
\begin{equation}
  \oint_\Gamma \vec{F} \cdot \mbox{d}\vec{r},
\end{equation}
$$

där

$$
\begin{equation}
  \vec{F} = \left[x^2-a\left(y+z\right)\right]\hat{x} + \left(y^2-az\right)
\hat{y} + \left[z^2-a\left(x+y\right)\right] \hat{z},
\end{equation}
$$

och $\Gamma$ är den kurva som utgör skärningen mellan cylindern

$$
\begin{equation}
 \left(x-a\right)^2 +y^2 = a^2,\quad z \ge 0,
\end{equation}
$$

och sfären

$$
\begin{equation}
  x^2 + y^2 + z^2 = R^2, \quad R> 2a,
\end{equation}
$$

där $a$ är en konstant med dimensionen längd.

*Lösning:*  Vi kan först konstatera att skärningen mellan cylinder och sfär är en ellips vars exakta form är något komplicerad att fastställa.  Eftersom kurvan $\Gamma$ är en sluten kurva är det lockande att använda Stokes sats, så vi beräknar rotationen

$$
\begin{equation}
  \nabla \times \vec{F} = \left|\begin{array}{ccc}
\hat{x}  \hat{y}  \hat{z}
\end{equation}
$$

$$
\begin{equation}
\frac{\partial}{\partial x}  \frac{\partial}{\partial y}
\frac{\partial}{\partial z}
\end{equation}
$$

$$
\begin{equation}
x^2-a\left(y+z\right)  y^2-az  z^2-a\left(x+y\right)
\end{equation}
$$

$$
\begin{equation}
\end{array}\right| \nonumber
\end{equation}
$$

$$
\begin{equation}
= \left(-a+a\right) \hat{x} + \left(-a+a\right) \hat{y} + a\hat{z}
= a\hat{z}.
\end{equation}
$$

Alltså är rotationen av $\vec{F}$ en rent vertikal vektor.

Vi kan nu använda Stokes sats

$$
\begin{equation}
  \oint_\Gamma \vec{F} \cdot \mbox{d}\vec{r} = \int_S \nabla \times \vec{F} \cdot
\mbox{d}\vec{S}.
\end{equation}
$$

Lägg märke till att ytan skall orienteras så att den följer högerhandsregeln.  Detta betyder att om vi följer kurvan $\Gamma$ moturs så skall normalen $\hat{n}$ till $S$ peka uppåt.

$$
\begin{equation}
  \int_S \nabla \times \vec{F} \cdot \mbox{d}\vec{S} = \int_S a \hat{z} \cdot
\hat{n} \mbox{d}S = a \int_S \hat{z} \cdot \hat{n} \mbox{d}S.
\end{equation}
$$

Skalärprodukten i den sista integralen betyder att vi projicerar ner arean $S$ på ett plan vinkelrät mot $\hat{z}$, det vill säga på $xy$-planet.  I detta planet är skärningen cylinderns tvärsnittsyta, en cirkel med radien $a$, och integralen blir cirkelarean $\pi a^2$. Alltså blir integralen till slut

$$
\begin{equation}
  \oint_\Gamma \vec{F} \cdot \mbox{d}\vec{r} = a \pi a^2 = \pi a^3.
\end{equation}
$$

---------------------------------------------

### Exempel: kurvintegral för ett kraftfält

------------------------------------

[Comment 3: PLK Kap. 2.5, Uppg. 2:]  En partikel påverkas av kraftfältet

$$
\begin{equation}
  \vec{F} = F_0 \left[\left(\frac{\pi y}{a} + \sin \frac{\pi z}{a}\right)
\hat{x} + \frac{x}{a} \hat{y} + \frac{\pi x}{a} \cos \frac{\pi z}{a}
\hat{z}\right].
\end{equation}
$$

Vilket arbete uträttar fältet då partikeln rör sig i positiv riktning kring den cirkel som ges av skärningen mellan

$$
\begin{equation}
  x^2 + y^2 + z^2 = a^2
\end{equation}
$$

och

$$
\begin{equation}
  x = z?
\end{equation}
$$

*Lösning:*
För att få ut arbetet behöver vi beräkna integralen

$$
\begin{equation}
  \oint_C \vec{F} \cdot \mbox{d}\vec{S}.
\end{equation}
$$

Vi börjar med att bestämma skärningskurvan $C$.  $x^2 + y^2 + z^2 = a^2$ är en sfär med radien $a$ och centrum i origo, medan $x = z$ är ett plan med normalvektorn

$$
\begin{equation}
  \hat{n} = \frac{1}{\sqrt{2}} \left(-1,0,1\right).
\end{equation}
$$

Skärningen mellan de båda ytorna blir en cirkel med radien $a$.  Den motsvarande cirkelskivan har också normalvektorn $\hat{n}$.  Med det val som vi har gjort av normalvektorn, så gäller Stokes sats om partikeln rör sig moturs längs cirkeln.

Vi beräknar nu rotationen

$$
\begin{equation}
  \nabla \times \vec{F} = F_0 \left|\begin{array}{ccc}
\hat{x}  \hat{y}  \hat{z}
\end{equation}
$$

$$
\begin{equation}
\frac{\partial}{\partial x}  \frac{\partial}{\partial y}
\frac{\partial}{\partial z}
\end{equation}
$$

$$
\begin{equation}
\frac{\pi y}{a} + \sin \frac{\pi z}{a}  \frac{x}{a}  \frac{\pi x}{a}
\cos \frac{\pi z}{a}
\end{equation}
$$

$$
\begin{equation}
\end{array}
\right|  \nonumber
\end{equation}
$$

$$
\begin{equation}
= 0 \hat{x} + F_0 \left(\frac{\pi}{a} \cos\frac{\pi z}{a} - \frac{\pi}{a}
\cos\frac{\pi z}{a}\right) \hat{y} + F_0\left(\frac{1}{a} - \frac{\pi}{a}
\right) \hat{z} = F_0 \frac{1 - \pi}{a} \hat{z}.
\end{equation}
$$

Stokes sats ger oss sedan

$$
\begin{equation}
  \oint_C \vec{F} \cdot \mbox{d}\vec{r} = \int_S \nabla \times \vec{F} \cdot \mbox{d}
\vec{S} = \int_S F_0 \frac{1 - \pi}{a} \hat{z} \cdot \frac{1}{\sqrt{2}}
\left(-1,0,1\right) \mbox{d}S = \frac{1 - \pi}{\sqrt{2}a} F_0
\int_S \mbox{d}S \nonumber
\end{equation}
$$

$$
\begin{equation}
= \frac{1 - \pi}{\sqrt{2}a} \pi a^2 F_0 =  \frac{\pi \left(1-\pi\right)a}{\sqrt{2}} F_0,
\end{equation}
$$

vilket är svaret.

---------------------------------------------

### Exempel: Ytintegral halvcylinder

---------------------------------------------

[Comment 4: PLK Kap. 2.4, Uppg. 7:]  Låt $S$ vara ytan $y^2 + z^2 = 1, -1 \le x \le 1, z \ge 0$ med normalvektor riktad uppåt.  Beräkna

$$
\begin{equation}
  \int_S \vec{F} \cdot \mbox{d}\vec{S},
\end{equation}
$$

där $\vec{F} = \left( x, x^2yz^2, x^2 y^2 z\right)$.

*Lösning:*
Ytan $S$ är en den övre halvan av en cylinder med $x$-axeln som symmetriaxel.  För att tillämpa Gauss sats behöver vi sluta denna yta, vilket vi kan göra genom att lägga till  två halvcirklar, $S_1$ och $S_3$ vid $x = 1$ och $x = -1$, samt en bottenyta, $S_2$.  Normalvektorn till dessa ytor skall väljas som en kontinuerlig fortsättning av normalvektorn på $S$.  Detta innebär att $S_1$ och $S_3$ får normalvektorerna $\hat{x}$ och $-\hat{x}$, samt att normalvektorn till $S_2$ blir $-\hat{z}$.  Vi ser nu att  normalvektorn överallt pekar ut från den volym som innesluts av $S$, $S_1$, $S_2$ och $S_3$, vilket är vad som krävs för att vi skall kunna använda Gauss sats.

Vi kan nu beräkna divergensen

$$
\begin{equation}
  \nabla \cdot \vec{F} = \frac{\partial x}{\partial x} +
\frac{\partial}{\partial y}\left(x^2yz^2\right) + \frac{\partial}{\partial z}
\left(x^2y^2z\right) = 1 + x^2z^2 + x^2 y^2 = 1 + x^2\rho^2,
\end{equation}
$$

där vi har infört $\rho^2 = y^2 + z^2$.  Vi inför alltså en form av cylindriska koordinater som utgår från $x$-axeln istället för som vanligt från $z$-axeln.  Vi kan nu beräkna volymsintegralen

$$
\begin{equation}
  \int_V \nabla \cdot \vec{F} \mbox{d}V = \int_V \mbox{d}V +
\int_{-1}^1\int_0^1\int_0^\pi x^2 \rho^2 \mbox{d}\varphi \rho \mbox{d}\rho
\mbox{d}x.
\end{equation}
$$

Tänk här på att vi bara integrerar över en halvcylinder, så att integrationsintervallet för $\varphi$ går från 0 till $\pi$.  Den första integralen är bara halvcylindersn volym, så nu får vi

$$
\begin{equation}
  \int_V \nabla \cdot \vec{F} \mbox{d}V = \frac{1}{2} 2 \pi + \pi  \left[\frac{x^3}{3}\right]_{-1}^1 \left[\frac{\rho^4}{4}\right]_0^1 =
\pi + \pi\left(\frac{1}{3} + \frac{1}{3}\right) \frac{1}{4} = \frac{7\pi}{6}.
\end{equation}
$$

Vi får nu ta hand om de enskilda begränsningsytorna.

$$
\begin{equation}
\int_{S_1} \vec{F} \cdot \mbox{d}\vec{S} = \int_{S_1} x\mbox{d}S =
\int_{S_1} \mbox{d}S =
\frac{\pi}{2},
\end{equation}
$$

eftersom $x = 1$ på $S_1$.  På samma sätt får vi på $S_3$

$$
\begin{equation}
  \int_{S_3} \vec{F} \cdot \mbox{d}\vec{S} = \int_{S_3} -x \mbox{d}S = \frac{\pi}{2},
\end{equation}
$$

då $x = -1$ på $S_3$. Slutligen så finner vi att på $S_2$ så är

$$
\begin{equation}
  \int_{S_2} \vec{F} \cdot \mbox{d}\vec{S} = \int_{S_2} -x^2y^2z \mbox{d}S = 0,
\end{equation}
$$

ty $z = 0$ på $S_2$.

Om vi ställer samman dessa uträkningar har vi

$$
\begin{equation}
  \int_S \vec{F} \cdot \mbox{d}\vec{S} + \int_{S_1} \vec{F} \cdot \mbox{d}\vec{S} +
\int_{S_2} \vec{F} \cdot \mbox{d}\vec{S} + \int_{S_3} \vec{F} \cdot \mbox{d}\vec{S} =
\int_V \nabla \cdot \vec{F} \mbox{d}V,
\end{equation}
$$

och om vi här löser ut integralen över $S$ samt sätter in värdena för de enskilda integralerna får vi

$$
\begin{equation}
  \int_S \vec{F} \cdot \mbox{d}\vec{S} = \frac{7\pi}{6} - \frac{\pi}{2} -
\frac{\pi}{2} = \frac{\pi}{6}.
\end{equation}
$$

*Kommentar:*
För att ytintegralen skall vara definierad måste en yta vara orienterbar, det vill säga de skall gå att kontinuerligt transportera normalvektorn från en del av ytan till en annan.  Det finns exempel på ytor som inte är orienterbara, till exempel Möbius-band, och för sådana ytor kan man inte definiera en ytintegral.

---------------------------------------------

### Exempel: Ytintegral med koordinatbyte

---------------------------------

Beräkna ytintegralen

$$
\begin{equation}
  \oint_S \left(a^2\hat{x} +ay\hat{y} + z^2\hat{z}\right)
\cdot \mbox{d}\vec{S}
\end{equation}
$$

över den slutna ytan $S:\quad x^2 + y^2 + z^2 = 2az$.

*Lösning:*
Vi börjar med att studera ytan $S$. Den kan skrivas om som

$$
\begin{equation}
  x^2 + y^2 + z^2 - 2az = 0.
\end{equation}
$$

Efter kvadratkomplettering har vi

$$
\begin{equation}
  x^2 + y^2 + \left(z -a\right)^2 = a^2.
\end{equation}
$$

Detta är en sfär med radien $a$ och centrum i $(0,0,a)$.  Lägg märke till att eftersom ytan redan är sluten, så råder det inte någon tvekan om hur normalvektorn är riktad.  Konventionen säger oss att normalvektorn för en sluten yta alltid pekar ut från den inneslutna volymen.

I och med att vi redan har en sluten yta, så är det lockande att använda Gauss sats, och därför beräknar vi divergensen

$$
\begin{equation}
  \nabla \cdot \left(a^2 \hat{x} + ay \hat{y} + z^2 \hat{z}
\right) = a + 2z.
\end{equation}
$$

Innan vi tar itu med volymsintegralen byter vi $z$-koordinaten till $z' = z -a$, så att sfären i de nya koordinaterna får sitt centrum i origo.  I dessa koordinater blir divergensen $3a +2z'$.  Enligt Gauss sats blir vår ytintegral nu

$$
\begin{equation}
  \oint_S \left(a^2\hat{x} + ay \hat{y} + z^2 \hat{z}\right)
\cdot \mbox{d}\vec{S} = \int_{V'} \left(3a + 2z'\right) \mbox{d}V.
\end{equation}
$$

Vi byter nu till sfäriska koordinater

$$
\begin{equation}
  \int_0^{2\pi} \int_0^\pi \int_0^a \left(3a + 2r\cos \theta\right) r^2
\sin \theta \mbox{d}r \mbox{d}\theta \mbox{d}\varphi = 2\pi \int_0^a
\left[-3ar^2 \cos \theta + r^3 \sin^2 \theta \right]_0^\pi \mbox{d}r
\nonumber
\end{equation}
$$

$$
\begin{equation}
= 2\pi \int_0^a 6ar^2 \mbox{d}r = 2 \pi \left[2ar^3\right]_0^a = 4\pi a^4,
\end{equation}
$$

vilket är värdet på vår ursprungliga ytintegral.


# Technique Guide

Package pyndynpd is able to estimate dynamic panel models that take a form as follows:

$$y_{it}=\sum_{j=1}^{p}\alpha_{j}y_{i,t-j}+\sum_{k=1}^{m}\sum_{j=0}^{q_{k}}\beta_{jk}r_{i,t-j}^{(k)}+\boldsymbol{\delta}\boldsymbol{d_{i,t}}+\boldsymbol{\gamma}\boldsymbol{s_{i,t}}+u_{i}+\epsilon_{it} $$

In the model above, $y_{i,t-j}$ ($j=1,2,\ldots,p$) denotes a group of $p$ lagged dependent variables. $r_{i,t-j}^{(k)}$ represents a group of $m$ endogeneous variables other than lagged $y$. $\boldsymbol{d_{it}}$ is a vector of predetermined variables which may potentially correlate with past errors, $\boldsymbol{s_{it}}$ is a vector of exogenous variables, and $u_{i}$ represents fixed effect. For illustration purpose, let's consider a basic form of dynamic panel model:

$$
\begin{align}
y_{it}=\alpha_{1}y_{i,t-1}+\delta d_{i,t}+u_{i}+\epsilon_{it} \label{basic}\tag{1}
\end{align}
$$

As lagged dependent variable $y_{i,t-1}$ is included as regressor, the popular techniques in static panel models, such as fixed-effect and first-difference estimators, no longer produce consistent results. Researchers have developed many methods to estimate dynamic panel model. Essentially there are two types of GMM estimates, difference GMM and system GMM.

## Difference GMM

The first step in the process is to eliminate the fixed-effect term $u_{i}$. First differencing Eq ($\ref{basic}$) yields:

$$
\begin{align}
\Delta y_{it}=\alpha_{1}\Delta y_{i,t-1}+\delta\Delta d_{i,t}+\Delta\epsilon_{it}\label{fd}\tag{2}
\end{align}$$

In the model above, $\Delta y_{i,t-1}$ correlates with $\Delta\epsilon_{i,t}$ because $\Delta y_{i,t-1}=y_{i,t-1}-y_{i,t-2}$, $\Delta\epsilon_{i,t}=\epsilon_{i,t}-\epsilon_{i,t-1}$, and $y_{i,t-1}$ is affected by $\epsilon_{i,t-1}$. As a result, estimating Eq ($\ref{fd}$) directly produces inconsistent result. Instrumental variables are used to solve the issue. [@arellano1991some]suggest to use all lagged $y$ dated $t-2$ and earlier (i.e., $y_{i,1}$, $y_{i,2}$,\..., $y_{i,t-2}$) as instruments for $\Delta y_{i,t-1}$. Similarly, the instruments for predetermined variable $\Delta d_{it}$ include $d_{i,1}$, $d_{i,2}$,\..., $d_{i,t-1}$. Let $z_{i}$ be the instrument variable matrix for individual i:

$$
z_{i}=\left[\begin{array}{ccccccccccccccccccc}
y_{i1} & 0 & 0 & \ldots & \ldots & 0 & \ldots & 0 & d_{i1} & d_{i2} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0\\
0 & y_{i1} & y_{i2} & 0 & 0 & 0 & \ldots & 0 & 0 & 0 & d_{i1} & d_{i2} & d_{i3} & 0 & 0 & 0 & 0 & \ldots & 0\\
\vdots & 0 & 0 & \vdots &  &  & \ldots &  &  &  &  &  &  & \vdots &  &  &  & \ldots & 0\\
0 & 0 & 0 & 0 & 0 & 0 & \ldots & y_{i,T-2} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & d_{i,T-1}
\end{array}\right]$$

Difference GMM is based on the moment condition $E(z_{i}^{\prime}\Delta\epsilon_{i})=0$ where $\Delta \epsilon_{i}=(\Delta \epsilon_{i2}, \Delta\epsilon_{i3}\textrm{, }...,\Delta\epsilon_{iT})^{\prime}$ and $z_{i}$ is the instrument variable matrix. Applying this moment condition to sample data, we have $(1/N)\sum_{i=1}^{N}z{}_{i}^{\prime}(\Delta y_{i}-\theta\Delta x_{i})=0$ where $\theta=(\alpha_{1},\delta)'$ and $\Delta x_{i}=(\Delta y_{i,t-1},\Delta d_{it})$ for t=3, \... T. When the number of instruments is greater than the number of independent variables, the moment condition is overidentified and in general there is no $\theta$ available to satisfy the moment condition. Instead, we look for a $\theta$ to minimize moment condition. That is:

$$\hat{\theta}_{gmm}=\arg\min_{\theta}\left(\frac{1}{N}\sum_{i=1}^{N}(\Delta y_{i}-\theta\Delta x_{i})^{\prime}z_{i}\right)W\left(\frac{1}{N}\sum_{i=1}^{N}z^{\prime}{}_{i}(\Delta y_{i}-\theta\Delta x_{i})\right)$$

where W is the weighting matrix of the moments. There are two popularly used weighting matrixes. In a one-step GMM estimate, the weighting matrix is

$$W_{1}=\left(\frac{1}{N}Z^{\prime}H_{1}Z\right)^{-1}$$

where matrix H has twos in the main diagnols, minus ones in the first subdiagnols, and zeros elsewhere:

$$H_{1}=\left[\begin{array}{cccccc}
2 & -1 & 0 & 0 & \ldots & 0\\
-1 & 2 & -1 & 0 & \ldots & 0\\
0 & \ddots & \ddots & \ddots & \ddots & \vdots\\
\vdots & \ddots & -1 & 2 & -1 & 0\\
0 & \ddots & 0 & -1 & 2 & -1\\
0 & \ldots & 0 & 0 & -1 & 2
\end{array}\right]$$

On the other hand, in a two-step GMM estimate, the weighting matrix is

$$W_{2}=\left(\frac{1}{N}Z^{\prime}H_{2}Z\right)^{-1}$$

where $H_{2}=\Delta\hat{\epsilon}\Delta\hat{\epsilon}^{\prime}$ and $\Delta\hat{\epsilon}$ is the residual from one-step GMM.

## System GMM

Compared with difference GMM, sytem GMM adds additional moment conditions, resulting in more instruments:

$$
\begin{align}
z_{i}=\left[\begin{array}{cccccccccccccccc|cccccccc}
y_{i1} & 0 & 0 & 0 & 0 & 0 & \ldots & 0 & d_{i1} & d_{i2} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & 0 & 0 & 0 & 0 & \ldots & 0\\
0 & y_{i1} & y_{i2} & 0 & 0 & 0 & \ldots & 0 & 0 & 0 & d_{i1} & d_{i2} & d_{i3} & 0 & 0 & 0 & 0 & \ldots & 0 & 0 & 0 & 0 & \ldots & 0\\
 &  &  & \vdots &  &  & \ldots &  & \vdots &  &  &  &  & \vdots & \ldots & \vdots &  & \ldots & 0 &  &  &  & \ddots & 0\\
0 & 0 & 0 & 0 & 0 & 0 & \ldots & y_{i,T-2} & 0 & 0 & 0 & 0 & 0 & 0 & \ldots & d_{i,T-1} & 0 & \ldots & 0 & 0 & 0 & 0 & 0 & 0\\
\hline 0 & \ldots & 0 &  &  &  &  &  &  &  &  &  &  &  & 0 & 0 & \Delta y_{i2} & \ldots & 0 & 0 & \Delta d_{i3} &  & 0\\
\vdots &  &  &  &  &  &  &  &  &  &  &  &  &  &  & 0 & 0 & \Delta y_{i3} & \ldots & 0 & 0 & \Delta d_{i4} &  & 0\\
\vdots &  &  &  &  &  &  &  &  &  &  &  &  &  &  & \vdots & \vdots & \vdots & \ddots & \vdots & \vdots &  & \ddots\\
0 & \ldots &  &  &  &  &  &  &  &  &  &  &  &  & \ldots & 0 & 0 & 0 & \ldots & \Delta y_{i,T-1} & 0 & 0 & \ldots & \Delta y_{i,T}
\end{array}\right] \label{z_sys}\tag{3}
\end{align}$$

$$\hat{\theta}_{gmm}=\arg\min_{\theta}\left(\frac{1}{N}\sum_{i=1}^{N}(\widetilde{y}_{i}-\theta\widetilde{x_{i}})^{\prime}z_{i}\right)W\left(\frac{1}{N}\sum_{i=1}^{N}z^{\prime}{}_{i}(\widetilde{y}-\theta\widetilde{x_{i}})\right)$$

where $$\widetilde{y}=\left(\begin{array}{c}
\Delta y_{i}\\
\hline y_{i}
\end{array}\right)\textrm{ and }\widetilde{x_{i}}=\left(\begin{array}{c|c}
\Delta x_{i} & 0\\
\hline x_{i} & 1
\end{array}\right)$$

## Robust estimation of coefficients' covariance

pydynpd reports robust standard errors for one-step and two-step estimators. For detail, please refer to [Windmeijer 2005](https://doi.org/10.1016/j.jeconom.2004.02.005).

## Specification Test

### Error serial correlation test

Second-order serial correlation test: if $\epsilon_{it}$ in Eq ($\ref{basic}$) is serially correlated, GMM estimates are no longer consistent. In a first-differenced model （e.g., Eq ($\ref{fd}$)), to test whether $\epsilon_{i,t-1}$ is correlated with $\epsilon_{i,t-2}$, the second-order autocovariance of the residuals, $\textrm{AR(2)}$, is calculated as:

$$AR(2)=\frac{b_{0}}{\sqrt{b_{1}+b_{2}+b_{3}}}\textrm{ where}$$

$$b_{0}=\sum_{i=1}^{N}\Delta\hat{\hat{\epsilon}}_{i}^{\prime}L_{\Delta\hat{\hat{\epsilon}}}^{2}$$

$$b_{1}=\sum_{i=1}^{N}L_{\Delta\hat{\hat{\epsilon}}_{i}^{\prime}}^{2}H_{2}L_{\Delta\hat{\hat{\epsilon}}_{i}}^{2}$$

$$b_{2}=\textrm{-}2\left(\sum_{i=1}^{N}L_{\Delta\hat{\hat{\epsilon}}_{i}^{\prime}}^{2}x_{i}\right)\left[\left(\sum_{i=1}^{N}x_{i}^{\prime}z_{i}\right)W_{2}\left(\sum_{i=1}^{N}z_{i}^{\prime}x_{i}\right)\right]^{-1}\left(\sum_{i=1}^{N}x_{i}^{\prime}z_{i}\right)W_{2}\left(\sum_{i=1}^{N}z_{i}^{\prime}H_{2}L_{\Delta\hat{\hat{\epsilon}}_{i}}^{2}\right)$$

$$b_{3}=\left(\sum_{i=1}^{N}L_{\Delta\hat{\hat{\epsilon}}_{i}^{\prime}}^{2}x_{i}\right)\hat{V}_{\hat{\hat{\theta}}}\left(\sum_{i=1}^{N}x_{i}^{\prime}L_{\Delta\hat{\hat{\epsilon}}_{i}}^{2}\right)$$

### Hansen overidentification test

Hansen overidentification test is used to check if instruments are exogeneous. Under the null hypothesis that instruments are valid, test statistic, $S$, should be close to zero:

$$S=\left(\sum_{i=1}^{N}\Delta\hat{\hat{\epsilon}}_{i}^{\prime}z_{i}\right)W_{2}\left(\sum_{i=1}^{N}z_{i}^{\prime}\Delta\hat{\hat{\epsilon}}_{i}\right)$$

# Handling instrument proliferation issue

Difference GMM and system GMM may generate too many instruments, which causes several problems (citation). Package pydynpd allows users to reduce the number of instruments in two ways. First, users can control the number of instruments in command string. For example, $\textrm{gmm(w, 2:3)}$ states that only $n_{t-2}$ and $n_{t-3}$ are used as instruments, rather than all lagged $n$ dated $t-2$ and earlier. Second, users can choose to collapse the instrumental variable matrix. For example, if collapsed, matrix as in Eq ($\ref{z_sys}$) is changed to:

$$z_{i}=\left[\begin{array}{cccccccccc|cc}
y_{i1} & 0 & 0 & \ldots & 0 & d_{i1} & d_{i2} & 0 & \ldots & 0\\
y_{i1} & y_{i2} & 0 & \ldots & 0 & d_{i1} & d_{i2} & d_{i3} & \ldots & 0\\
\vdots & \vdots & \ddots & \ldots & \vdots &  &  &  & \ddots & \vdots\\
y_{i1} & y_{i2} & y_{i3} & \ldots & y_{i,T-2} & d_{i1} & d_{i2} & d_{id} & \ldots & d_{i,T-1}\\
\hline 0 &  &  & \ldots & 0 & 0 & 0 & 0 & \ldots & 0 & \Delta y_{i2} & \Delta d_{i3}\\
0 & 0 &  &  & 0 & 0 & 0 & 0 & \ldots & 0 & \Delta y_{i3} & \Delta d_{i4}\\
\vdots &  & \ddots &  & \vdots &  &  & \vdots &  & \vdots & \vdots & \vdots\\
0 & 0 & 0 & \ldots & 0 & 0 &  & 0 & \ldots & 0 & \Delta y_{i,T-1} & \Delta d_{iT}
\end{array}\right]$$

This change dramatically reduces the number of instruments. Intuitively, the number of instruments is positively associated with the width of the matrix above.

```python

```

```python

```

```python

```


# Computación I - UNIDAD I
+ Autor: Ulises Olivares
+ uolivares@unam.mx
+ 23 de septiembre de 2020

#Optimización en una dimensión
+ El método de newton
+ El método de la sección aurea
+ Métodos adicionales

## Búsqueda ingenua (Exhaustiva)

+ Se deberá realizar una búsqueda exhaustiva en un intervalo cerrado [-1000, 1000]

+ Se deberá evaluar la función y decidir cual es el punto máximo y mínimo de la función.

¿Por donde iniciar?

### Ayudas
    + Definición de una expresión (Función)
    + Evaluación de una funciíon
    + Graficación de una función

```
# Importar librerías
import numpy as np
from sympy import *
from sympy.abc import x, y
import matplotlib.pyplot as plt

# Habilitar impresión avanzada con LaTeX
init_printing(use_latex='mathjax')

# Definir una expresión simple
func = x**2 + 2
print(func)
display(func)

# Sustituciones por un valor numérico
display("Substitución x = 0",func.subs(x, 1))

```

#### Graficación de una función 2D usando matplotlib

```

# Habilitar impresión avanzada con LaTeX
init_printing(use_latex='mathjax')

# Genera un número de elementos de la Variable independiente x
x_a = np.arange(-10000, 10001)

# Definir una lista para la variable independiente
y_a = np.zeros(len(x_a))

for i in x_a:
    y = func.subs(x,i)

plt.plot(x,y)

plt.show()

```


```python
# autoreload nangs
%reload_ext autoreload
%autoreload 2
%matplotlib inline
```

    Bad key "text.kerning_factor" on line 4 in
    C:\Users\sensio\miniconda3\lib\site-packages\matplotlib\mpl-data\stylelib\_classic_test_patch.mplstyle.
    You probably need to get an updated matplotlibrc file from
    https://github.com/matplotlib/matplotlib/blob/v3.1.3/matplotlibrc.template
    or from the matplotlib source distribution

## Smith-Hutton Problem

We want to solve the following PDE:

\begin{equation}
    u \frac{\partial \phi}{\partial x} + v \frac{\partial \phi}{\partial y} = \Gamma (\phi_{xx} + \phi_{yy})
\end{equation}

The independen variables, $x$ and $y$, and the diffusive constant, $\Gamma$, are used as input values for the NN, and the solution (i.e. $\phi(x,y)$) is the output. In order to find the solution, at each step the NN outputs are derived w.r.t the inputs to obtain the first order derivatives. The same is done for the gradients to obtain the second order derivatives. Then, a loss function that matches the PDE is built and the weights are updated accordingly. A loss function that matches the PDE is then used for optimization. If the loss function goes to zero, we can assume that our NN is indeed the solution to our PDE. We will try to find a general solution for different values of $\Gamma$, so we can then obtain a solution for different diffusivities without requiring new computations. The geometry of the problem is as follows:

```python
#imports

import numpy as np
import matplotlib.pyplot as plt
import torch
import nangs

device = "cuda" if torch.cuda.is_available() else "cpu"

nangs.__version__, torch.__version__
```

    ('0.1.2', '1.5.0')

```python
from nangs import PDE

# velocity field
vel = lambda x, y: (2*y*(1-x**2), -2*x*(1-y**2))

class SH(PDE):
    def computePDELoss(self, inputs, outputs):

        # compute first-order derivatives
        grads = self.computeGrads(outputs, inputs)
        dpdx, dpdy = grads[:, 0], grads[:, 1]

        # compute second-order derivatives
        grads2 = self.computeGrads(dpdx, inputs)
        dp2dx2 = grads2[:, 0]

        grads2 = self.computeGrads(dpdy, inputs)
        dp2dy2 = grads2[:, 1]

        # compute loss
        x, y, g = inputs[:, 0], inputs[:, 1],inputs[:, 2]
        u, v = vel(x, y)
        return {'pde': u*dpdx + v*dpdy - g*(dp2dx2 + dp2dy2)}

# instanciate pde
pde = SH(inputs=('x', 'y', 'g'), outputs='p')
```

```python
# define the mesh

from nangs import Mesh

x = np.linspace(-1, 1, 80)
y = np.linspace(0, 1, 40)
g = np.array([1e-6, 1e-3, 1e-1])

mesh = Mesh({'x': x, 'y': y, 'g': g}, device=device)
pde.set_mesh(mesh)
```

```python
# boundary conditions

from nangs import Dirichlet

ALPHA = 10

# left and rigth b.c

x1 = np.array([-1, 1])
p = np.full(2*len(y)*len(g), 1. - np.tanh(ALPHA))
boco = Dirichlet({'x': x1, 'y': y, 'g': g}, {'p': p}, name='left_rigth', device=device)
pde.add_boco(boco)
```

```python
# top b.c

p = np.full(len(x)*len(g), 1. - np.tanh(ALPHA))
boco = Dirichlet({'x': x, 'y': y[-1:], 'g': g}, {'p': p}, device=device, name='top')
pde.add_boco(boco)
```

```python
# bottom b.c

x1, x2 = x[x<0], x[x>=0]
p1 = np.repeat(1. + np.tanh(ALPHA*(2*x1+1)), len(g))

# bottom left b.c

boco = Dirichlet({'x': x1, 'y': y[:1], 'g': g}, {'p': p1}, name='bottom_left', device=device)
pde.add_boco(boco)
```

```python
plt.plot(x1,1. + np.tanh(ALPHA*(2*x1+1)))
plt.xlabel('x')
plt.ylabel('p      ', rotation=np.pi/2)
plt.title('Solution at y=0')
plt.grid()
plt.show()
```

```python
# bottom right b.c

from nangs import Neumann

class MyNeumann(Neumann):
    def computeBocoLoss(self, inputs, outputs):
        dpdy = self.computeGrads(outputs, inputs)[:, 1]
        return {'gradY': dpdy}

boco = MyNeumann({'x': x2, 'y': y[:1], 'g': g}, name='bottom_right', device=device)
pde.add_boco(boco)
```

```python
from nangs import MLP

BATCH_SIZE = 1024
LR = 5e-3
EPOCHS = 100
NUM_LAYERS = 5
NUM_HIDDEN = 256

mlp = MLP(len(pde.inputs), len(pde.outputs), NUM_LAYERS, NUM_HIDDEN).to(device)
optimizer = torch.optim.Adam(mlp.parameters())
scheduler = torch.optim.lr_scheduler.OneCycleLR(optimizer, max_lr=LR, pct_start=0.1, total_steps=EPOCHS)

pde.compile(mlp, optimizer, scheduler)
%time hist = pde.solve(EPOCHS, BATCH_SIZE)
```

```python
# evaluate the solution
#pde.load_state_dict('best.pth')

x = np.linspace(-1,1,100)
y = np.linspace(0,1,50)
g = np.array([0.1, 0.001, 0.000001])

eval_mesh = Mesh({'x': x, 'y': y, 'g': g}, device=device)
p = pde.eval(eval_mesh).cpu().view(len(x),len(y),len(g)).numpy()

fig, axs = plt.subplots(1, len(g), figsize=(20,20*len(g)))
for i, ax in enumerate(axs):
    _p = p[...,i].reshape((len(y),len(x)))
    axs[i].imshow(_p, vmin=_p.min(), vmax=_p.max(), origin='lower',
               extent=[x.min(), x.max(), y.min(), y.max()])
    axs[i].set_title(f"$\\Gamma$ = {g[i]}")

plt.show()
```

```python
# experimental results

exp = {
    'x': [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],
    'g_0.1': [1.989,1.402,1.146,0.946,0.775,0.621,0.480,0.349,0.227,0.111,0.0],
    'g_0.001': [2.0000,1.9990,1.9997,1.985,1.841,0.951,0.154,0.001,0.0,0.0,0.0],
    'g_0.000001': [2.0000,2.0,2.0,1.999,1.964,1.0,0.036,0.001,0.0,0.0,0.0]
}

x = np.linspace(-1,1,200)
y = np.array([0])
#g = np.array([0.1, 0.001, 0.000001])
eval_mesh = Mesh({'x': x, 'y': y, 'g': g}, device=device)
p = pde.eval(eval_mesh).cpu().numpy().reshape(len(x), len(g))

for i in range(len(g)):
    plt.plot(x, p[:,i], label=f"$\\Gamma$ = {g[i]}")

p1 = 1. + np.tanh(ALPHA*(2*x[x<0]+1))
plt.plot(x[x<0], p1)

plt.plot(exp['x'], exp['g_0.1'], '.k')
plt.plot(exp['x'], exp['g_0.001'], '.k')
plt.plot(exp['x'], exp['g_0.000001'], '.k', label="experimental")
plt.grid()
plt.xlabel('x (y = 0)')
plt.ylabel('$\\phi$       ', rotation=np.pi/2)
plt.legend()
plt.show()
```


# New Keynesian (NK) model with wage stickiness

This introductory notebook demonstrates the basics of the New-Keynesian (NK) model used in economics

The materials and equations are from Chapter 4 of following book:
- Costa, C. (2018). Understanding DSGE models: Theory and Applications. Vernon Press.
    - [Amazon link for book](https://www.amazon.com/gp/product/B01LXPPOA6?pf_rd_r=ZHR3A69BS93PKMTAXK0P&pf_rd_p=edaba0ee-c2fe-4124-9f5d-b31d6b1bfbee)

This book is brilliant and I highly recommend to anyone interested in studying the DSGE modeling regime used in macroeconomics.

# Table of contents

- [1. Theoretical review](#1.-Theoretical-review)
- [2. Dynamic structure of consumption savings](#2.-Dynamic-structure-of-consumption-savings)
- [3. The RBC model](#3.-The-RBC-model)
- [4. Solve steady state](#4.-Solve-steady-state)
- [5. Log-linearization](#5.-Log-linearization)

```python
#Import libraries
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings("ignore")
plt.style.use('seaborn-darkgrid')
```

# 1. Theoretical review

- NK researchers developed an explanation of wage stickiness that is consistent with economic rationality
- This model adds wage stickiness to the NK_Basic_Costa2018 which only included price stickiness

#### NK with wage stickiness model structure

- Households provide differentiated labor
- Different firms in perfect competition aggregate this labor into a single kind of labor
    - Used to produce intermediate goods

- Aggregation of labor allows workers to have a degree of monopoly power to define their wages
    - Based on consumption-leisure marginal rate of substitution
    - Calvo's rule to define wages
        - In each period $1-\theta_W$ workers are chosen randomly to define their wages

## 1.1 Wage stickiness

- It is costly for workers and firms to always re-negotiate contracts so wages are not always flexible and able to respond to a short or medium-term shock to the economy.
- In models with wage stickiness, the amount of labor is determined by the amount of labor the representative firms wants to hire

### 1.1.1 Why are wage rigid in the short-term?
- Discourage absences from work, reduce employee turnover, increase productivity

Worker productivity index
$$\varepsilon = \varepsilon\Big(\frac{W}{P}\Big)$$

Resulting production function
$$Y=f(\bar{K}, \varepsilon L)$$

Assuming that capital is fixed, productivity increases when:
- $Labor \uparrow$
- $\varepsilon \uparrow$
- $\frac{\frac{W_t}{P_t}}{\varepsilon}\cdot\frac{\partial \varepsilon}{\partial\frac{W_t}{P_t}}$=1
    - Firms increase real wages so index of efficiency in relation to real wages = 1

# 2. The NK Model with wage stickiness

- The NK Basic model assumes wages equal to the consumption-leisure marginal rate of substitution.

- In this model (with Calvo wage stickiness), the optimal wage for households able to bargain for their wages assumes there will be a wage markup
    - The markup is a function of the elasticity of substitution of differentiated labor on future discounted consumption-leisure MRS multiplied by the price level.

## 2.1 Model assumptions from RBC
- Assumption 2.2.1. The economy is closed, with no government or financial sector.
- Assumption 2.2.2. This economy does not have a currency (Barter economy)
- Assumption 2.2.3. Adjustment costs are not present

## 2.2 Households

### 2.2.1 Households assumptions
- Assumption 2.2.4. The model is made up of a unitary set of households indexed by $j \in[0,1]$ whose goal is to maximize intertemporal welfare function.
    - A utility function is used, additively separable into consumption (C) and labor (L).
- Assumption 2.2.5. Consumption is intertemporally additively separable (no habit formation).
- Assumption 2.2.6. Population growth is ignored

- Assumption 2.2.7.The labor market is of perfect competition (no wage rigidity).
    - No longer holds in this model!

### 2.2.2 Equations from the [RBC model](https://github.com/corybaird/DSGE_models/blob/master/RBC_Basic_Costa2018.ipynb)
- Format: (RBC equation #/NK equation #/ NK wage stickiness equation #)

#### Capital accumulation over time:
$$K_{j,t+1} = (1-\delta)K_{j,t}+I_{j,t}\tag{4.1}$$

#### Euler equation
$$\Big(\frac{E_t C_{j,t+1}}{C_{j,t}}\Big)^\sigma = \beta\Big[(1-\delta)+ E_t\frac{R_{t+1}}{P_{t+1}}\Big]
\tag{3.3}$$

### 2.2.3 Equations from NK wage stickiness model
- Assumption 4.2.1. Households supply differentiated labor in a market of monopolistic competition. Their labor is sold to a representative firm that aggregates all labor $(L_j)$ into a single labor input $(L).$

Labor aggregating firm uses the following technology to satisfy 4.2.1

$$L_t = \Bigg(\int^1_0 L_{j,t}^{\frac{\psi W^{-1}}{\psi W}}df\Bigg)^{\frac{\psi W}{\psi W^{-1}}}$$

INTERMEDIATE STEPS FOUND Costa(2018)

#### Aggregate wage level
$$W_t = \Big(\int_0^1W^{1-\psi W}_{j,t}dj\Big)^{\frac{1}{1-\psi W}}\tag{4.7}$$

- In each period:
    - $1-\theta_w$ choses to optimally define their wages
    - The remaing $\theta_w$ follow a wage stickiness rule

Three posabilities for the wage stickiness rule:
1. Keep the same wage previous periods price
$$W_{j,t}= W_{j,t-1}$$

2. Update wages with steady state gross inflation rate
$$W_{j,t}=\pi_{ss}W_{j,t-1}$$

3. Update the price using previous period's gross inflation rate
$$W_{j,t}=\pi_{t-1}W_{j,t-1}$$

#### Optimal wage level
Assumption 4.2.2. Assume the first rule of wage stickiness $W_{j,t}= W_{j,t-1}$

INTERMEDIATE STEPS FOUND Costa(2018)

#### Optimal wage equation
$$W^*_{j,t} = \Bigg(\frac{\psi W}{\psi W-1}\Bigg)E_t \sum^{\infty}_{i=0}(\beta\theta_W)^iC^\sigma_{j,t+i}L^\varphi_{j,t+i}P_{t+i}\tag{4.10}$$

#### Aggregate nominal wage
$$W_t=\Big[\theta_W W_{t-1}^{1-\psi W} + (1-\theta_W)W_t^{*1-\psi W}\Big]^{\frac{1}{1-\psi W}}\tag{4.11}$$

## 2.3 Firms
### 2.3.1 Firm assumptions
- Assumption 2.2.9. Productivity growth is ignored.
     - Identical to RBC and NK_Basic models

- Assumption 3.2.1. It is assumed that the market structure is one of monopolistic competition.
    - Identitcal to NK_basic model

- Assumption 3.2.2. Aggregate good sold by one retail firm within a structure of perfect competition. Assume all retailers are identical
    - Identitcal to NK_basic model

- Assumption 3.2.3. Monopolistic competition
    - Wholesale firms with differentiated prodcuts have a degree of market power and can thus set prices.

- Assumption 3.2.4. Fixed production costs do not exist.
    - Identical to RBC and NK_Basic models
    - VC=ATC.

- Assumption 3.2.5. Per unit production cost of a wholesale product is always the same regardless of the scale of production.
    - Identical to RBC and NK_Basic models
    - CRS

- Assumption 3.2.6.  Rule to determine price stickiness: $P_{j,t} = P_{j,t−1}$

$$Y_{j,t}=A_tK_{j,t}^\alpha L_{j,t}^{1-\alpha}\tag{3.10}$$

With the law of motion of productivity
$$logA_t =(1-\rho_a)logA_{ss}+\rho_A logA_{t-1}+\varepsilon_t \tag{3.11}$$

$$L_{j,t}= (1-\alpha)MC_{j,t}\frac{Y_{j,t}}{W_t}\tag{3.15}$$

$$K_{j,t}= \alpha MC_{j,t}\frac{Y_{j,t}}{R_t}\tag{3.16}$$

#### Production technology is the same as RBC
$$
MC_{j,t} = \frac{1}{A_t}\Big(\frac{W_t}{1-\alpha}\Big)^{1-\alpha}\Big(\frac{R_t}{\alpha}\Big)^\alpha\tag{3.17}
$$

#### 2.3.3.4 Calvo pricing
- Whole sale firms decide the price of its good
- The firms deides how much to produce in each period according to the Calvo rule

The following stickiness rules exist:
1. Maintain the previous periods price
$$P_{j,t}=P_{j,t-1}$$

2. Update price using steady state gross inflation
$$P_{j,t}=\pi_{ss}P_{j,t-1}$$

3. Update the price using previous period's gross inflation rate
$$P_{j,t}=\pi_{t-1}P_{j,t-1}$$

- Assumption 3.2.6.  Rule to determine price stickiness: $P_{j,t} = P_{j,t−1}$

- Wholesale firm has a $\theta$ probability of price of its good fixed in next period

Whole sale firm capable of adjusting price of its goods:

$$\max_{P^*_{j,t}}E_t \sum_{i=0}^{\infty} (\beta \theta)^i (P^*_{j,t}Y_{j,t+1}-TC_{j,t+i})\tag{3.18}$$

$3.7\rightarrow3.18$

Take problem's F.O.C

Rearrange

#### Optimal price level
$$P^*_{j,t}=\Big(\frac{\psi}{\psi-1}\Big) E_t \sum_{i=0}^\infty (\beta \theta)^i MC_{j,t+i}\tag{3.20}$$

In periods $P^*_{j,t}$ is the same price for all 1-$\theta$ firms$ which set their prices

Combine 3.8 pricing rule with reality that firms within certain groups of firms define their prices w.r.t stickiness of prices

#### General (aggregate) price level:

$$P_t = \Big[\theta P_{t-1}^{1-\psi}+(1-\theta)P_t^{*1-\psi}\Big]^{\frac{1}{1-\psi}}\tag{3.21}$$

# 3. Equilibrium conditions

### 3.4.1 Structure of the model

$$
\begin{align}
C_t^\sigma L_t^\varphi & = \frac{W_t}{P_t} & \text{Labor supply, 2.8} \\
\Big(\frac{E_t C_{j,t+1}}{C_{j,t}}\Big)^\sigma &= \beta\Big[(1-\delta)+ E_t\frac{R_{t+1}}{P_{t+1}}\Big]& \text{Euler, 2.9} \\
K_{t+1} & = (1-\delta)K_t + I_t& \text{Law of motion of capital, 2.3}\\
y_t & = A_t K_t^\alpha L_t^{1 - \alpha} & \text{Production function, 2.10} \\
K_t & =\alpha MC_t \frac{Y_t}{R_t} & \text{Demand for capital, 3.16} \\
L_t & =(1-\alpha)\frac{Y_t}{\frac{W_t}{P_t}} & \text{Demand for labor, 3.15} \\
P^*_{j,t} & =\Big(\frac{\psi}{\psi-1}\Big) E_t \sum_{i=0}^\infty (\beta \theta)^i MC_{j,t+i} & \text{Optimal price level, 3.20 }\\
P_t & = \Big[\theta P_{t-1}^{1-\psi}+(1-\theta)P_t^{*1-\psi}\Big]^{\frac{1}{1-\psi}}& \text{General price level, 3.21 }\\
\pi_t & =\frac{P_t}{P_{t-1}}& \text{Gross inflation rate}\\
Y_t & =C_t+I_t & \text{Equilibrium condition}\\
logA_t & =(1-\rho_a)logA_{ss}+\rho_A logA_{t-1}+\varepsilon_t& \text{Productivity shock, 2.16}
\end{align}
$$

## 3.4.2 Steady state

$$
A_{ss} = 1 \\
P_{ss} = 1 \\
R_{ss} = P_{ss}\Big[\frac{1}{\beta}-(1-\delta)\Big]\\
MC_{ss}= \Big(\frac{\psi}{\psi-1}\Big) (1-\beta\theta)P_{ss} \ \ \leftarrow 3.21 \\
W_{ss} = (1-\delta)MC_{ss}^{\frac{1}{1-\alpha}}\Big(\frac{\alpha}{R_{ss}}\Big)^{\frac{\alpha}{1-\alpha}}\\
Y_{ss} = \Big(\frac{R_{ss}}{R_{ss}-\delta\alpha MC_{ss}}\Big)^{\frac{\sigma}{\sigma+\varphi}}+\Bigg[\frac{W_{ss}}{P_{ss}}\Big(\frac{W_{ss}}{(1-\alpha) MC_{ss}}\Big)^{\varphi}\Bigg]^{\frac{1}{\sigma+\varphi}}\\
I_{ss}=\Big(\frac{\delta\alpha MC_{ss}}{R_{ss}}\Big)Y_{ss}\\
C_{ss}= \frac{1}{Y_{ss}^{\frac{\varphi}{\sigma}}}\Big[\frac{W_{ss}}{P_{ss}}\Big(\frac{W_{ss}}{(1-\alpha)MC_{ss}}\Big)^{\varphi}\Big]^{1/\sigma}\\
L_{ss}=(1-\alpha)MC_{ss}\frac{Y_{ss}}{W_{ss}}\\
K_{ss}=\alpha MC_{ss}\frac{Y_{ss}}{R_{ss}}\\
$$

# 4. Solve steady state

## 4.1 Set parameters names and values

```python
parameter_names = [
    'relative risk',
    'marginal disutility of labor',
    'elasticity of production w.r.t K',
    'discount factor',
    'depreciation rate',
    'price',
    'price stickiness',
    'elasticity of substitution between intermediate goods'
]
# Setup fixed parameters
parameters = pd.DataFrame({
    'name': parameter_names,
    'value': [2, 1.5, 0.35, 0.985, 0.025,1, .75,8]
})
parameters.T
```

      0
      1
      2
      3
      4
      5
      6
      7

      name
      relative risk
      marginal disutility of labor
      elasticity of production w.r.t K
      discount factor
      depreciation rate
      price
      price stickiness
      elasticity of substitution between intermediat...

      value
      2
      1.5
      0.35
      0.985
      0.025
      1
      0.75
      8

## 4.2 Solve model

### 4.2.1 Create model function

```python
class New_Keynes(object):
    def __init__(self, params=None):
        # Model dimensions
        self.k_params = 8

        # Initialize parameters
        if params is not None:
            self.update(params)

    def update(self, params):
        self.risk = params[0]
        self.disutility_labor = params[1]
        self.elasticity_capital = params[2]
        self.discount_factor = params[3]
        self.depreciation = params[4]
        self.price = params[5]
        self.sticky = params[6]
        self.intermediate_sub = params[7]

    def steady_state(self):
        #Rates: Idential to RBC
        rates = self.price*((1/self.discount_factor)-(1-self.depreciation))

        # Marginal cost: New to NK model
        marginal = ((self.intermediate_sub-1)/(self.intermediate_sub))*(1-self.discount_factor*self.sticky)*self.price

        # Wages: New to NK model
        wages = (1-self.elasticity_capital)*marginal**(1/(1-self.elasticity_capital))*(self.elasticity_capital/rates)**(self.elasticity_capital/(1-self.elasticity_capital))

        #Output: New to NK model
        output_1 = ((rates)/(rates-(self.depreciation*self.elasticity_capital*marginal)))**((self.risk)/(self.risk+self.disutility_labor))
        output_2 = ((wages/self.price)*((wages)/(((1-self.elasticity_capital)*marginal)))**(self.disutility_labor))**((1/(self.risk+self.disutility_labor)))
        output = output_1*output_2

        #Investment: New to NK model
        investment = ((self.depreciation*self.elasticity_capital*marginal)/rates)*output #self.depreciation*self.elasticity_capital*MARGINAL

        #Consumption: New to NK model
        cons_1 = (1/(output**(self.disutility_labor/self.risk)))
        cons_2 = ((wages/self.price)*((wages)/((1-self.elasticity_capital)*marginal))**(self.disutility_labor))**(1/self.risk)
        consumption = cons_1*cons_2

        #Capital: New to NK model
        labor = (1-self.elasticity_capital)*marginal*(output/wages)

        #Labor: New to NK model
        capital = (self.elasticity_capital*marginal)*((output)/(rates))

        return (rates, marginal, wages, output, investment, consumption, labor,capital)
```

### 4.2.2 Steady state solution

```python
NK_solution = New_Keynes(parameters['value'])
Steady_state_solution = NK_solution.steady_state()
```

### 4.2.3 Print results
- Solution matches table 2.3 Costa pg. 47

```python
variable_names = [
    'Interest rates','Marginal cost', 'Wages', 'Output',
    'Investment', 'Consumption', 'Labor','Capital'
]
steady_state = pd.DataFrame({
    'Solution': Steady_state_solution,
}, index=variable_names)

round(steady_state.T,3)
```

      Interest rates
      Marginal cost
      Wages
      Output
      Investment
      Consumption
      Labor
      Capital

      Solution
      0.04
      0.229
      0.215
      0.778
      0.039
      0.739
      0.537
      1.547

# 5. Log-linearization
$$\sigma \tilde{C_t}+\varphi\tilde{L_t} = \tilde{W_t}-\tilde{P_t}\tag{2.39}$$
$$\frac{\sigma}{\beta}(E_t \tilde{C_{t+1}}-\tilde{C_t}) = \frac{R_{ss}}{P_{ss}} E_t(\tilde{R_{t+1}}-\tilde{P_{t+1}})\tag{2.40}$$
$$\tilde{R_t}-\tilde{P_t}= \tilde{Y_t}-\tilde{K_t}\tag{2.41}$$
$$\tilde{W_t}-\tilde{P_t}= \tilde{Y_t}-\tilde{L_t}\tag{2.42}$$
$$\tilde{Y_t}= \tilde{A_t}+\alpha\tilde{K_t}+(1-\alpha)\tilde{L_t}\tag{2.43}$$
$$\tilde{K_{t+1}}=(1-\delta)\tilde{K_t}+\delta\tilde{I_t}\tag{2.44}$$
$$Y_{tt}\tilde{Y_{t}}=C_{ss}\tilde{C_t}+I_{ss}\tilde{I_t}\tag{2.45}$$
$$Y_{tt}\tilde{Y=A_{t}}= \rho_A \tilde{A_{t-1}}+\varepsilon_t\tag{2.46}$$
$$\tilde{MC_t} = (1-\alpha) \tilde{W_t}+\alpha \tilde{R_t}-\tilde{A_t}\tag{3.46}$$

## 5.1 Determining the NK Phillips curve

$$\tilde{\pi_t} = \beta E_t\tilde{\pi_{t+1}}+\Big[\frac{(1-\theta)(1-\beta\theta)}{\theta}\Big](\tilde{MC_t}-\tilde{P_t})\tag{3.50}$$