diff --git a/lectures/_toc.yml b/lectures/_toc.yml
index a8a5b619..248a6b62 100644
--- a/lectures/_toc.yml
+++ b/lectures/_toc.yml
@@ -26,6 +26,7 @@ parts:
- caption: Tools and Techniques
numbered: true
chapters:
+ - file: tools_and_techniques/geom_series
- file: tools_and_techniques/linear_algebra
- file: tools_and_techniques/orth_proj
- file: tools_and_techniques/lln_clt
diff --git a/lectures/tools_and_techniques/geom_series.md b/lectures/tools_and_techniques/geom_series.md
new file mode 100644
index 00000000..70d98b14
--- /dev/null
+++ b/lectures/tools_and_techniques/geom_series.md
@@ -0,0 +1,924 @@
+---
+jupytext:
+ text_representation:
+ extension: .md
+ format_name: myst
+kernelspec:
+ display_name: Julia
+ language: julia
+ name: julia-1.6
+---
+
+(mc)=
+```{raw} html
+
+```
+
+# {index}`Geometric Series for Elementary Economics `
+
+```{contents} Contents
+:depth: 2
+```
+
+## Overview
+
+The lecture describes important ideas in economics that use the mathematics of geometric series.
+
+Among these are
+
+- the Keynesian **multiplier**
+- the money **multiplier** that prevails in fractional reserve banking
+ systems
+- interest rates and present values of streams of payouts from assets
+
+(As we shall see below, the term **multiplier** comes down to meaning **sum of a convergent geometric series**)
+
+These and other applications prove the truth of the wise crack that
+
+```{epigraph}
+"in economics, a little knowledge of geometric series goes a long way "
+```
+
+Below we'll use the following packages:
+
+```{code-cell} julia
+using LinearAlgebra, Statistics
+using Distributions, Plots, Random, Symbolics
+```
+
+## Key Formulas
+
+To start, let $c$ be a real number that lies strictly between
+$-1$ and $1$.
+
+- We often write this as $c \in (-1,1)$.
+- Here $(-1,1)$ denotes the collection of all real numbers that
+ are strictly less than $1$ and strictly greater than $-1$.
+- The symbol $\in$ means *in* or *belongs to the set after the symbol*.
+
+We want to evaluate geometric series of two types -- infinite and finite.
+
+### Infinite Geometric Series
+
+The first type of geometric that interests us is the infinite series
+
+$$
+1 + c + c^2 + c^3 + \cdots
+$$
+
+Where $\cdots$ means that the series continues without end.
+
+The key formula is
+
+```{math}
+:label: infinite
+
+1 + c + c^2 + c^3 + \cdots = \frac{1}{1 -c }
+```
+
+To prove key formula {eq}`infinite`, multiply both sides by $(1-c)$ and verify
+that if $c \in (-1,1)$, then the outcome is the
+equation $1 = 1$.
+
+### Finite Geometric Series
+
+The second series that interests us is the finite geometric series
+
+$$
+1 + c + c^2 + c^3 + \cdots + c^T
+$$
+
+where $T$ is a positive integer.
+
+The key formula here is
+
+$$
+1 + c + c^2 + c^3 + \cdots + c^T = \frac{1 - c^{T+1}}{1-c}
+$$
+
+**Remark:** The above formula works for any value of the scalar
+$c$. We don't have to restrict $c$ to be in the
+set $(-1,1)$.
+
+We now move on to describe some famous economic applications of
+geometric series.
+
+## Example: The Money Multiplier in Fractional Reserve Banking
+
+In a fractional reserve banking system, banks hold only a fraction
+$r \in (0,1)$ of cash behind each **deposit receipt** that they
+issue
+
+* In recent times
+ - cash consists of pieces of paper issued by the government and
+ called dollars or pounds or $\ldots$
+ - a *deposit* is a balance in a checking or savings account that
+ entitles the owner to ask the bank for immediate payment in cash
+* When the UK and France and the US were on either a gold or silver
+ standard (before 1914, for example)
+ - cash was a gold or silver coin
+ - a *deposit receipt* was a *bank note* that the bank promised to
+ convert into gold or silver on demand; (sometimes it was also a
+ checking or savings account balance)
+
+Economists and financiers often define the **supply of money** as an
+economy-wide sum of **cash** plus **deposits**.
+
+In a **fractional reserve banking system** (one in which the reserve
+ratio $r$ satisfies $0 < r < 1$), **banks create money** by issuing deposits *backed* by fractional reserves plus loans that they make to their customers.
+
+A geometric series is a key tool for understanding how banks create
+money (i.e., deposits) in a fractional reserve system.
+
+The geometric series formula {eq}`infinite` is at the heart of the classic model of the money creation process -- one that leads us to the celebrated
+**money multiplier**.
+
+### A Simple Model
+
+There is a set of banks named $i = 0, 1, 2, \ldots$.
+
+Bank $i$'s loans $L_i$, deposits $D_i$, and
+reserves $R_i$ must satisfy the balance sheet equation (because
+**balance sheets balance**):
+
+```{math}
+:label: balance
+
+L_i + R_i = D_i
+```
+
+The left side of the above equation is the sum of the bank's **assets**,
+namely, the loans $L_i$ it has outstanding plus its reserves of
+cash $R_i$.
+
+The right side records bank $i$'s liabilities,
+namely, the deposits $D_i$ held by its depositors; these are
+IOU's from the bank to its depositors in the form of either checking
+accounts or savings accounts (or before 1914, bank notes issued by a
+bank stating promises to redeem note for gold or silver on demand).
+
+Each bank $i$ sets its reserves to satisfy the equation
+
+```{math}
+:label: reserves
+
+R_i = r D_i
+```
+
+where $r \in (0,1)$ is its **reserve-deposit ratio** or **reserve
+ratio** for short
+
+- the reserve ratio is either set by a government or chosen by banks
+ for precautionary reasons
+
+Next we add a theory stating that bank $i+1$'s deposits depend
+entirely on loans made by bank $i$, namely
+
+```{math}
+:label: deposits
+
+D_{i+1} = L_i
+```
+
+Thus, we can think of the banks as being arranged along a line with
+loans from bank $i$ being immediately deposited in $i+1$
+
+- in this way, the debtors to bank $i$ become creditors of
+ bank $i+1$
+
+Finally, we add an *initial condition* about an exogenous level of bank
+$0$'s deposits
+
+$$
+D_0 \ \text{ is given exogenously}
+$$
+
+We can think of $D_0$ as being the amount of cash that a first
+depositor put into the first bank in the system, bank number $i=0$.
+
+Now we do a little algebra.
+
+Combining equations {eq}`balance` and {eq}`reserves` tells us that
+
+```{math}
+:label: fraction
+
+L_i = (1-r) D_i
+```
+
+This states that bank $i$ loans a fraction $(1-r)$ of its
+deposits and keeps a fraction $r$ as cash reserves.
+
+Combining equation {eq}`fraction` with equation {eq}`deposits` tells us that
+
+$$
+D_{i+1} = (1-r) D_i \ \text{ for } i \geq 0
+$$
+
+which implies that
+
+```{math}
+:label: geomseries
+
+D_i = (1 - r)^i D_0 \ \text{ for } i \geq 0
+```
+
+Equation {eq}`geomseries` expresses $D_i$ as the $i$ th term in the
+product of $D_0$ and the geometric series
+
+$$
+1, (1-r), (1-r)^2, \cdots
+$$
+
+Therefore, the sum of all deposits in our banking system
+$i=0, 1, 2, \ldots$ is
+
+```{math}
+:label: sumdeposits
+
+\sum_{i=0}^\infty (1-r)^i D_0 = \frac{D_0}{1 - (1-r)} = \frac{D_0}{r}
+```
+
+### Money Multiplier
+
+The **money multiplier** is a number that tells the multiplicative
+factor by which an exogenous injection of cash into bank $0$ leads
+to an increase in the total deposits in the banking system.
+
+Equation {eq}`sumdeposits` asserts that the **money multiplier** is
+$\frac{1}{r}$
+
+- An initial deposit of cash of $D_0$ in bank $0$ leads
+ the banking system to create total deposits of $\frac{D_0}{r}$.
+- The initial deposit $D_0$ is held as reserves, distributed
+ throughout the banking system according to $D_0 = \sum_{i=0}^\infty R_i$.
+
+## Example: The Keynesian Multiplier
+
+The famous economist John Maynard Keynes and his followers created a
+simple model intended to determine national income $y$ in
+circumstances in which
+
+- there are substantial unemployed resources, in particular **excess
+ supply** of labor and capital
+- prices and interest rates fail to adjust to make aggregate **supply
+ equal demand** (e.g., prices and interest rates are frozen)
+- national income is entirely determined by aggregate demand
+
+### Static Version
+
+An elementary Keynesian model of national income determination consists
+of three equations that describe aggregate demand for $y$ and its
+components.
+
+The first equation is a national income identity asserting that
+consumption $c$ plus investment $i$ equals national income
+$y$:
+
+$$
+c+ i = y
+$$
+
+The second equation is a Keynesian consumption function asserting that
+people consume a fraction $b \in (0,1)$ of their income:
+
+$$
+c = b y
+$$
+
+The fraction $b \in (0,1)$ is called the **marginal propensity to
+consume**.
+
+The fraction $1-b \in (0,1)$ is called the **marginal propensity
+to save**.
+
+The third equation simply states that investment is exogenous at level
+$i$.
+
+- *exogenous* means *determined outside this model*.
+
+Substituting the second equation into the first gives $(1-b) y = i$.
+
+Solving this equation for $y$ gives
+
+$$
+y = \frac{1}{1-b} i
+$$
+
+The quantity $\frac{1}{1-b}$ is called the **investment
+multiplier** or simply the **multiplier**.
+
+Applying the formula for the sum of an infinite geometric series, we can
+write the above equation as
+
+$$
+y = i \sum_{t=0}^\infty b^t
+$$
+
+where $t$ is a nonnegative integer.
+
+So we arrive at the following equivalent expressions for the multiplier:
+
+$$
+\frac{1}{1-b} = \sum_{t=0}^\infty b^t
+$$
+
+The expression $\sum_{t=0}^\infty b^t$ motivates an interpretation
+of the multiplier as the outcome of a dynamic process that we describe
+next.
+
+### Dynamic Version
+
+We arrive at a dynamic version by interpreting the nonnegative integer
+$t$ as indexing time and changing our specification of the
+consumption function to take time into account
+
+- we add a one-period lag in how income affects consumption
+
+We let $c_t$ be consumption at time $t$ and $i_t$ be
+investment at time $t$.
+
+We modify our consumption function to assume the form
+
+$$
+c_t = b y_{t-1}
+$$
+
+so that $b$ is the marginal propensity to consume (now) out of
+last period's income.
+
+We begin with an initial condition stating that
+
+$$
+y_{-1} = 0
+$$
+
+We also assume that
+
+$$
+i_t = i \ \ \textrm {for all } t \geq 0
+$$
+
+so that investment is constant over time.
+
+It follows that
+
+$$
+y_0 = i + c_0 = i + b y_{-1} = i
+$$
+
+and
+
+$$
+y_1 = c_1 + i = b y_0 + i = (1 + b) i
+$$
+
+and
+
+$$
+y_2 = c_2 + i = b y_1 + i = (1 + b + b^2) i
+$$
+
+and more generally
+
+$$
+y_t = b y_{t-1} + i = (1+ b + b^2 + \cdots + b^t) i
+$$
+
+or
+
+$$
+y_t = \frac{1-b^{t+1}}{1 -b } i
+$$
+
+Evidently, as $t \rightarrow + \infty$,
+
+$$
+y_t \rightarrow \frac{1}{1-b} i
+$$
+
+**Remark 1:** The above formula is often applied to assert that an
+exogenous increase in investment of $\Delta i$ at time $0$
+ignites a dynamic process of increases in national income by successive amounts
+
+$$
+\Delta i, (1 + b )\Delta i, (1+b + b^2) \Delta i , \cdots
+$$
+
+at times $0, 1, 2, \ldots$.
+
+**Remark 2** Let $g_t$ be an exogenous sequence of government
+expenditures.
+
+If we generalize the model so that the national income identity
+becomes
+
+$$
+c_t + i_t + g_t = y_t
+$$
+
+then a version of the preceding argument shows that the **government
+expenditures multiplier** is also $\frac{1}{1-b}$, so that a
+permanent increase in government expenditures ultimately leads to an
+increase in national income equal to the multiplier times the increase
+in government expenditures.
+
+## Example: Interest Rates and Present Values
+
+We can apply our formula for geometric series to study how interest
+rates affect values of streams of dollar payments that extend over time.
+
+We work in discrete time and assume that $t = 0, 1, 2, \ldots$
+indexes time.
+
+We let $r \in (0,1)$ be a one-period **net nominal interest rate**
+
+- if the nominal interest rate is $5$ percent,
+ then $r= .05$
+
+A one-period **gross nominal interest rate** $R$ is defined as
+
+$$
+R = 1 + r \in (1, 2)
+$$
+
+- if $r=.05$, then $R = 1.05$
+
+**Remark:** The gross nominal interest rate $R$ is an **exchange
+rate** or **relative price** of dollars at between times $t$ and
+$t+1$. The units of $R$ are dollars at time $t+1$ per
+dollar at time $t$.
+
+When people borrow and lend, they trade dollars now for dollars later or
+dollars later for dollars now.
+
+The price at which these exchanges occur is the gross nominal interest
+rate.
+
+- If I sell $x$ dollars to you today, you pay me $R x$
+ dollars tomorrow.
+- This means that you borrowed $x$ dollars for me at a gross
+ interest rate $R$ and a net interest rate $r$.
+
+We assume that the net nominal interest rate $r$ is fixed over
+time, so that $R$ is the gross nominal interest rate at times
+$t=0, 1, 2, \ldots$.
+
+Two important geometric sequences are
+
+```{math}
+:label: geom1
+
+1, R, R^2, \cdots
+```
+
+and
+
+```{math}
+:label: geom2
+
+1, R^{-1}, R^{-2}, \cdots
+```
+
+Sequence {eq}`geom1` tells us how dollar values of an investment **accumulate**
+through time.
+
+Sequence {eq}`geom2` tells us how to **discount** future dollars to get their
+values in terms of today's dollars.
+
+### Accumulation
+
+Geometric sequence {eq}`geom1` tells us how one dollar invested and re-invested
+in a project with gross one period nominal rate of return accumulates
+
+- here we assume that net interest payments are reinvested in the
+ project
+- thus, $1$ dollar invested at time $0$ pays interest
+ $r$ dollars after one period, so we have $r+1 = R$
+ dollars at time$1$
+- at time $1$ we reinvest $1+r =R$ dollars and receive interest
+ of $r R$ dollars at time $2$ plus the *principal*
+ $R$ dollars, so we receive $r R + R = (1+r)R = R^2$
+ dollars at the end of period $2$
+- and so on
+
+Evidently, if we invest $x$ dollars at time $0$ and
+reinvest the proceeds, then the sequence
+
+$$
+x , xR , x R^2, \cdots
+$$
+
+tells how our account accumulates at dates $t=0, 1, 2, \ldots$.
+
+### Discounting
+
+Geometric sequence {eq}`geom2` tells us how much future dollars are worth in terms of today's dollars.
+
+Remember that the units of $R$ are dollars at $t+1$ per
+dollar at $t$.
+
+It follows that
+
+- the units of $R^{-1}$ are dollars at $t$ per dollar at $t+1$
+- the units of $R^{-2}$ are dollars at $t$ per dollar at $t+2$
+- and so on; the units of $R^{-j}$ are dollars at $t$ per
+ dollar at $t+j$
+
+So if someone has a claim on $x$ dollars at time $t+j$, it
+is worth $x R^{-j}$ dollars at time $t$ (e.g., today).
+
+### Application to Asset Pricing
+
+A **lease** requires a payments stream of $x_t$ dollars at
+times $t = 0, 1, 2, \ldots$ where
+
+$$
+x_t = G^t x_0
+$$
+
+where $G = (1+g)$ and $g \in (0,1)$.
+
+Thus, lease payments increase at $g$ percent per period.
+
+For a reason soon to be revealed, we assume that $G < R$.
+
+The **present value** of the lease is
+
+$$
+\begin{aligned} p_0 & = x_0 + x_1/R + x_2/(R^2) + \ddots \\
+ & = x_0 (1 + G R^{-1} + G^2 R^{-2} + \cdots ) \\
+ & = x_0 \frac{1}{1 - G R^{-1}} \end{aligned}
+$$
+
+where the last line uses the formula for an infinite geometric series.
+
+Recall that $R = 1+r$ and $G = 1+g$ and that $R > G$
+and $r > g$ and that $r$ and $g$ are typically small
+numbers, e.g., .05 or .03.
+
+Use the Taylor series of $\frac{1}{1+r}$ about $r=0$,
+namely,
+
+$$
+\frac{1}{1+r} = 1 - r + r^2 - r^3 + \cdots
+$$
+
+and the fact that $r$ is small to approximate
+$\frac{1}{1+r} \approx 1 - r$.
+
+Use this approximation to write $p_0$ as
+
+$$
+\begin{aligned}
+ p_0 &= x_0 \frac{1}{1 - G R^{-1}} \\
+ &= x_0 \frac{1}{1 - (1+g) (1-r) } \\
+ &= x_0 \frac{1}{1 - (1+g - r - rg)} \\
+ & \approx x_0 \frac{1}{r -g }
+\end{aligned}
+$$
+
+where the last step uses the approximation $r g \approx 0$.
+
+The approximation
+
+$$
+p_0 = \frac{x_0 }{r -g }
+$$
+
+is known as the **Gordon formula** for the present value or current
+price of an infinite payment stream $x_0 G^t$ when the nominal
+one-period interest rate is $r$ and when $r > g$.
+
+We can also extend the asset pricing formula so that it applies to finite leases.
+
+Let the payment stream on the lease now be $x_t$ for $t= 1,2, \dots,T$, where again
+
+$$
+x_t = G^t x_0
+$$
+
+The present value of this lease is:
+
+$$
+\begin{aligned} \begin{split}p_0&=x_0 + x_1/R + \dots +x_T/R^T \\ &= x_0(1+GR^{-1}+\dots +G^{T}R^{-T}) \\ &= \frac{x_0(1-G^{T+1}R^{-(T+1)})}{1-GR^{-1}} \end{split}\end{aligned}
+$$
+
+Applying the Taylor series to $R^{-(T+1)}$ about $r=0$ we get:
+
+$$
+\frac{1}{(1+r)^{T+1}}= 1-r(T+1)+\frac{1}{2}r^2(T+1)(T+2)+\dots \approx 1-r(T+1)
+$$
+
+Similarly, applying the Taylor series to $G^{T+1}$ about $g=0$:
+
+$$
+(1+g)^{T+1} = 1+(T+1)g(1+g)^T+(T+1)Tg^2(1+g)^{T-1}+\dots \approx 1+ (T+1)g
+$$
+
+Thus, we get the following approximation:
+
+$$
+p_0 =\frac{x_0(1-(1+(T+1)g)(1-r(T+1)))}{1-(1-r)(1+g) }
+$$
+
+Expanding:
+
+$$
+\begin{aligned} p_0 &=\frac{x_0(1-1+(T+1)^2 rg -r(T+1)+g(T+1))}{1-1+r-g+rg} \\&=\frac{x_0(T+1)((T+1)rg+r-g)}{r-g+rg} \\ &\approx \frac{x_0(T+1)(r-g)}{r-g}+\frac{x_0rg(T+1)}{r-g}\\ &= x_0(T+1) + \frac{x_0rg(T+1)}{r-g} \end{aligned}
+$$
+
+We could have also approximated by removing the second term
+$rgx_0(T+1)$ when $T$ is relatively small compared to
+$1/(rg)$ to get $x_0(T+1)$ as in the finite stream
+approximation.
+
+We will plot the true finite stream present-value and the two
+approximations, under different values of $T$, and $g$ and $r$ in Julia.
+
+First we plot the true finite stream present-value after computing it
+below
+
+```{code-cell} julia
+---
+tags: [remove-cell]
+---
+using Test
+```
+
+```{code-cell} julia
+# True present value of a finite lease
+function finite_lease_pv_true(T, g, r, x_0)
+ G = (1 .+ g)
+ R = (1 .+ r)
+ return (x_0 .* (1 .- G .^ (T .+ 1) .* R .^ (-T .- 1))) / (1 .- G .* R .^ (-1))
+end
+
+# First approximation for our finite lease
+function finite_lease_pv_approx(T, g, r, x_0)
+ p = x_0 .* (T .+ 1) .+ x_0 .* r .* g .* (T .+ 1) / (r .- g)
+ return p
+end
+
+# Second approximation for our finite lease
+function finite_lease_pv_approx_2(T, g, r, x_0)
+ return (x_0 .* (T .+ 1))
+end
+
+# Infinite lease
+function infinite_lease(g, r, x_0)
+ G = (1 .+ g)
+ R = (1 .+ r)
+ return x_0 ./ (1 .- G .* R .^ (-1))
+end
+```
+
+Now that we have defined our functions, we can plot some outcomes.
+
+First we study the quality of our approximations
+
+
+```{code-cell} julia
+
+T_max = 50
+
+T = 0:T_max
+g = 0.02
+r = 0.03
+x_0 = 1
+
+plt = plot(xlim=(-2.5, 52.5), ylim= (-1.653, 56.713), title= "Finite Lease Present Value T Periods Ahead", xlabel = "T Periods Ahead", ylabel = "Present Value, p0")
+
+y_1 = finite_lease_pv_true(T, g, r, x_0)
+y_2 = finite_lease_pv_approx(T, g, r, x_0)
+y_3 = finite_lease_pv_approx_2(T, g, r, x_0)
+
+plot!(plt, T, y_1, label="True T-period Lease PV")
+plot!(plt, T, y_2, label="T-period Lease First-order Approx.")
+plot!(plt, T, y_3, label="T-period Lease First-order Approx. adj.")
+plot!(plt, legend = :topleft)
+```
+
+Evidently our approximations perform well for small values of $T$.
+
+However, holding $g$ and r fixed, our approximations deteriorate as $T$ increases.
+
+Next we compare the infinite and finite duration lease present values
+over different lease lengths $T$.
+
+```{code-cell} julia
+# Convergence of infinite and finite
+T_max = 1000
+T = 0:T_max
+
+plt = plot(xlim=(-50, 1050),ylim= (-4.1, 108.1), title= "Infinite and Finite Lease Present Value T Periods Ahead", xlabel = "T Periods Ahead", ylabel = "Present Value, p0")
+
+y_1 = finite_lease_pv_true(T, g, r, x_0)
+y_2 = ones(T_max + 1) .* infinite_lease(g, r, x_0)
+
+plot!(plt, T, y_1, label="T-period lease PV")
+plot!(plt, T, y_2, linestyle = :dash, label="Infinite lease PV")
+plot!(plt, legend = :bottomright)
+```
+
+The graph above shows how as duration $T \rightarrow +\infty$,
+the value of a lease of duration $T$ approaches the value of a
+perpetual lease.
+
+Now we consider two different views of what happens as $r$ and
+$g$ covary
+
+```{code-cell} julia
+# First view
+# Changing r and g
+plt = plot(xlim=(-0.5, 10.5),ylim= (-0.26, 16.7), title= "Value of lease of length T", xlabel = "T periods ahead", ylabel = "Present Value, p0")
+
+T_max = 10
+T=0:T_max
+
+# r >> g, much bigger than g
+r = 0.9
+g = 0.4
+plot!(plt, finite_lease_pv_true(T, g, r, x_0), label="r(=0.9) >> g(=0.4)")
+
+# r > g
+r = 0.5
+g = 0.4
+plot!(plt, finite_lease_pv_true(T, g, r, x_0), label="r(=0.5) > g(=0.4)", color="green")
+
+# r ~ g, not defined when r = g, but approximately goes to straight
+# line with slope 1
+r = 0.4001
+g = 0.4
+plot!(plt, finite_lease_pv_true(T, g, r, x_0), label="r(=0.4001) ~ g(=0.4)", color="orange")
+
+# r < g
+r = 0.4
+g = 0.5
+plot!(plt, finite_lease_pv_true(T, g, r, x_0), label="r(=0.4) < g(=0.5)", color="red")
+plot!(plt, legend = :topleft)
+```
+
+This graph gives a big hint for why the condition $r > g$ is
+necessary if a lease of length $T = +\infty$ is to have finite
+value.
+
+For fans of 3-d graphs the same point comes through in the following
+graph.
+
+If you aren't enamored of 3-d graphs, feel free to skip the next
+visualization!
+
+```{code-cell} julia
+# Second view
+plt = plot(xlim = (-0.04, 1.1),ylim = (-0.04, 1.1), zlim = (0,15), title= "Three Period Lease PV with Varying g and r", xlabel = "r", ylabel = "g", zlabel = "Present Value, p0")
+
+T = 3
+r = 0.01:0.005:0.985
+g = 0.011:0.005:0.986
+
+# Construct meshgrid, similar to Numpy.meshgrid in Python
+function meshgrid(r, g)
+ rr = [i for i in r, j in 1:length(g)]
+ gg = [j for i in 1:length(r), j in g]
+ return rr, gg
+end
+
+rr, gg = meshgrid(r, g)
+z = finite_lease_pv_true(T, gg, rr, x_0)
+
+# Removes points where undefined
+z[rr .== gg] .= NaN
+
+plot!(r, g, z, st = :surface, colour = :balance, camera=(20,50))
+```
+
+We can use a little calculus to study how the present value $p_0$
+of a lease varies with $r$ and $g$.
+
+We will use a new package called [Symbolics.jl](https://github.com/JuliaSymbolics/Symbolics.jl).
+
+`Symbolics.jl` enables us to do symbolic math calculations including
+computing derivatives of algebraic equations.
+
+We will illustrate how it works by creating a symbolic expression that
+represents our present value formula for an infinite lease.
+
+After that, we'll use `Symbolics.jl` to compute derivatives
+
+```{code-cell} julia
+# Creates algebraic symbols that can be used in an algebraic expression
+@variables g, r, x0
+G = (1 + g)
+R = (1 + r)
+p0 = x0 / (1 - G * R ^ (-1))
+print("Our formula is: $p0")
+```
+
+```{code-cell} julia
+# Partial derivative with respect to g
+dg = Differential(g)
+dp_dg = expand_derivatives(dg(p0))
+print("dp0 / dg is: ", dp_dg)
+```
+
+```{code-cell} julia
+# Partial derivative with respect to r
+dr = Differential(r)
+dp_dr = expand_derivatives(dr(p0))
+print("dp0 / dr is: ", dp_dr)
+```
+
+We can see that for $\frac{\partial p_0}{\partial r}<0$ as long as
+$r>g$, $r>0$ and $g>0$ and $x_0$ is positive,
+so $\frac{\partial p_0}{\partial r}$ will always be negative.
+
+Similarly, $\frac{\partial p_0}{\partial g}>0$ as long as $r>g$, $r>0$ and $g>0$ and $x_0$ is positive, so $\frac{\partial p_0}{\partial g}$
+will always be positive.
+
+## Back to the Keynesian Multiplier
+
+We will now go back to the case of the Keynesian multiplier and plot the
+time path of $y_t$, given that consumption is a constant fraction
+of national income, and investment is fixed.
+
+```{code-cell} julia
+# Function that calculates a path of y
+function calculate_y(i, b, g, T, y_init)
+
+ y = zeros(T+1)
+ y[1] = i + b * y_init + g
+ for t = 2:(T+1)
+ y[t] = b * y[t-1] + i + g
+ end
+ return y
+end
+
+# Initial values
+i_0 = 0.3
+g_0 = 0.3
+# 2/3 of income goes towards consumption
+b = 2/3
+y_init = 0
+T = 100
+
+plt = plot(xlim=(-6, 107),ylim= (0.5, 1.9), title= "Path of Aggregate Output Over Time", xlabel = "t", ylabel = "yt")
+plot!(plt, 0:T, calculate_y(i_0, b, g_0, T, y_init))
+# Output predicted by geometric series
+hline!([i_0 / (1 - b) + g_0 / (1 - b)], linestyle=:dash, seriestype="hline", legend = false)
+```
+
+In this model, income grows over time, until it gradually converges to
+the infinite geometric series sum of income.
+
+We now examine what will
+happen if we vary the so-called **marginal propensity to consume**,
+i.e., the fraction of income that is consumed
+
+```{code-cell} julia
+# Changing fraction of consumption
+bs = [1/3, 2/3, 5/6, 0.9]
+
+plt = plot(xlim=(-6, 107),ylim= (0.25, 6.5), title= "Changing Consumption as a Fraction of Income", xlabel = "t", ylabel = "yt")
+for b in bs
+ b = round(b, digits = 2)
+ plot!(plt, 0:T, calculate_y(i_0, b, g_0, T, y_init), label="b = $b")
+end
+plot!(plt, legend = :topleft)
+```
+
+Increasing the marginal propensity to consume $b$ increases the
+path of output over time.
+
+Now we will compare the effects on output of increases in investment and government spending.
+
+```{code-cell} julia
+x = 0:T
+y_0 = calculate_y(i_0, b, g_0, T, y_init)
+l = @layout [a ; b]
+
+# Changing initial investment:
+i_1 = 0.4
+y_1 = calculate_y(i_1, b, g_0, T, y_init)
+plt_1 = plot(x,y_0, label = "i=0.3", linestyle= :dash, title= "An Increase in Investment on Output", xlabel = "t", ylabel = "y_t")
+plot!(plt_1, x, y_1, label = "i=0.4")
+plot!(plt_1, legend = :bottomright)
+
+# Changing government spending
+g_1 = 0.4
+y_1 = calculate_y(i_0, b, g_1, T, y_init)
+plt_2 = plot(x,y_0, label = "g=0.3", linestyle= :dash, title= "An Increase in Government Spending on Output", xlabel = "t", ylabel = "y_t")
+plot!(plt_2, x, y_1, label="g=0.4")
+plot!(plt_2, legend = :bottomright)
+
+plot(plt_1, plt_2, layout = l)
+```
+
+Notice here, whether government spending increases from 0.3 to 0.4 or
+investment increases from 0.3 to 0.4, the shifts in the graphs are
+identical.
+