{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# LQ Approximation with `QuantEcon.jl` and `ContinuousDPs`"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"using QuantEcon\n",
"using ContinuousDPs\n",
"using Plots\n",
"import QuantEcon.ScalarOrArray"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We consider a dynamic maximization problem with\n",
"\n",
"* reward function $f(s, x)$,\n",
"* state transition function $g(s, x)$, and\n",
"* discount rate $\\delta$,\n",
"\n",
"where $s$ and $x$ are the state and the control variables, respectively\n",
"(we follow Miranda-Fackler in notation).\n",
"\n",
"Let $(s^*, x^*)$ denote the steady state state-control pair,\n",
"and write\n",
"$f^* = f(s^*, x^*)$, $f_i^* = f_i(s^*, x^*)$, $f_{ij}^* = f_{ij}(s^*, x^*)$,\n",
"$g^* = g(s^*, x^*)$, and $g_i^* = g_i(s^*, x^*)$ for $i, j = s, x$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First-order expansion of $g$ around $(s^*, x^*)$:\n",
"$$\n",
"\\begin{eqnarray*}\n",
"g\\left(s,x\\right) & \\approx & \\underbrace{g^{*}}_{n\\times1}+\\underbrace{g_{s}^{*}}_{n\\times n}\\left(s-s^{*}\\right)+\\underbrace{g_{x}^{*}}_{n\\times m}\\left(x-x^{*}\\right)\\\\\n",
"\\left[\\begin{array}{c}\n",
"1\\\\\n",
"g\\left(s,x\\right)\n",
"\\end{array}\\right] & \\approx & A\\left(\\begin{array}{c}\n",
"1\\\\\n",
"s\n",
"\\end{array}\\right)+Bx\n",
"\\end{eqnarray*}\n",
"$$\n",
"where\n",
"\n",
"\\begin{eqnarray*}\n",
"A & = & \\left[\\begin{array}{cc}\n",
"1 & 0\\\\\n",
"g^{*}-Dg^{*}z^{*} & g_{s}^{*}\n",
"\\end{array}\\right]\\\\\n",
"B & = & \\left[\\begin{array}{c}\n",
"0\\\\\n",
"g_{x}^{*}\n",
"\\end{array}\\right]\n",
"\\end{eqnarray*}\n",
"\n",
"with $z^* = (s^*, x^*)^{\\mathrm{T}}$ and $Dg^* = (g_s^*, g_x^*)$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Second-order expansion of $f$ around $(s^*, x^*)$:\n",
"\n",
"\\begin{eqnarray*}\n",
"f\\left(s,x,e\\right) & \\approx & \\underbrace{f^{*}}_{1\\times1}+\\underbrace{f_{s}^{*}}_{1\\times n}\\left(s-s^{*}\\right)+\\underbrace{f_{x}^{*}}_{1\\times m}\\left(x-x^{*}\\right)+0.5\\left(s-s^{*}\\right)'\\underbrace{f_{ss}^{*}}_{n\\times n}\\left(s-s^{*}\\right)\\\\\n",
" & & +\\left(s-s^{*}\\right)'\\underbrace{f_{sx}^{*}}_{n\\times m}\\left(x-x^{*}\\right)+0.5\\left(x-x^{*}\\right)'\\underbrace{f_{xx}^{*}}_{m\\times m}\\left(x-x^{*}\\right)\\\\\n",
" & = & -\\left(\\left(\\begin{array}{cc}\n",
"1 & s'\\end{array}\\right)R\\left(\\begin{array}{c}\n",
"1\\\\\n",
"s\n",
"\\end{array}\\right)+2x'N\\left(\\begin{array}{c}\n",
"1\\\\\n",
"s\n",
"\\end{array}\\right)+x'Qx\\right)\n",
"\\end{eqnarray*}\n",
"\n",
"where\n",
"\n",
"\\begin{eqnarray*}\n",
"R & = & -\\left[\\begin{array}{cc}\n",
"f^{*}-\\left(Df^{*}\\right)'z^{*}+0.5\\left(z^{*}\\right)'D^{2}f^{*}z^{*} & 0.5\\left(f_{s}^{*}-\\left(\\left(s^{*}\\right)'f_{ss}^{*}+\\left(f_{sx}^{*}x^{*}\\right)'\\right)\\right)\\\\\n",
"0.5\\left(\\left(f_{s}^{*}\\right)'-\\left(f_{ss}^{*}s^{*}+f_{sx}^{*}x^{*}\\right)\\right) & 0.5f_{ss}^{*}\n",
"\\end{array}\\right]\\\\\n",
"N & = & -0.5\\left[\\begin{array}{cc}\n",
"\\left(\\left(f_{x}^{*}\\right)'-\\left(\\left(f_{sx}^{*}\\right)'s^{*}+f_{xx}^{*}x^{*}\\right)\\right) & \\left(f_{sx}^{*}\\right)'\\end{array}\\right]\\\\\n",
"Q & = & -\\begin{array}{c}\n",
"\\left[0.5f_{xx}^{*}\\right]\\end{array}\n",
"\\end{eqnarray*}\n",
"\n",
"with $Df^{*}=\\left[\\begin{array}{cc}\n",
"f_{s}^{*} & f_{x}^{*}\\end{array}\\right]^\\mathrm{T}$ and $D^{2}f^{*}=\\left[\\begin{array}{cc}\n",
"f_{ss}^{*} & f_{sx}^{*}\\\\\n",
"f_{xs}^{*} & f_{xx}^{*}\n",
"\\end{array}\\right]$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Optimal Economic Growth"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We consider the following optimal growth model from Miranda and Fackler, Section 9.7.1:\n",
"\n",
"* $f(s, x) = \\dfrac{(s - x)^{1-\\alpha}}{1-\\alpha}$,\n",
"* $g(s, x) = \\gamma + x^{\\beta}$."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"alpha = 0.2\n",
"bet = 0.5\n",
"gamm = 0.9\n",
"discount = 0.9;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Function definitions:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"f(s, x) = (s - x)^(1 - alpha) / (1 - alpha)\n",
"f_s(s, x) = (s - x)^(-alpha)\n",
"f_x(s, x) = -f_s(s, x)\n",
"f_ss(s, x) = -alpha * (s - x)^(-alpha - 1)\n",
"f_sx(s, x) = -f_ss(s, x)\n",
"f_xx(s, x) = f_ss(s, x)\n",
"\n",
"g(s, x) = gamm * x + x^bet\n",
"g_s(s, x) = 0\n",
"g_x(s, x) = gamm + bet * x^(bet - 1);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Steady state:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(7.416897506925212, 5.6094182825484795)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_star = ((discount * bet) / (1 - discount * gamm))^(1 / (1 - bet))\n",
"s_star = gamm * x_star + x_star^bet\n",
"s_star, x_star"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`(s_star, x_star)` satisfies the Euler equations:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.1102230246251565e-16"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f_x(s_star, x_star) + discount * f_s(g(s_star, x_star), x_star) * g_x(s_star, x_star)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Construct $f^*$, $D f^*$, $D^2 f^*$, $g^*$, and $D g^*$:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"f_star = f(s_star, x_star)\n",
"Df_star = [f_s(s_star, x_star), f_x(s_star, x_star)]\n",
"DDf_star = [f_ss(s_star, x_star) f_sx(s_star, x_star);\n",
" f_sx(s_star, x_star) f_xx(s_star, x_star)]\n",
"g_star = g(s_star, x_star)\n",
"Dg_star = [g_s(s_star, x_star), g_x(s_star, x_star)];"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### LQ Approximation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Generate an LQ instance that approximates our dynamic optimization problem:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LQ([0.04914869864113181;;], [-0.24085180775732676 -0.5330115101939921; -0.5330115101939921 0.04914869864113181], [1.0 0.0; 1.1842105263157894 0.0], [0.0; 1.1111111111111112;;], [0.0; 0.0;;], [0.5330115101939921 -0.04914869864113181], 0.9, nothing, [NaN NaN; NaN NaN], [NaN NaN; NaN NaN], 0.0, [0.0 0.0])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lq = approx_lq(s_star, x_star, f_star, Df_star, DDf_star, g_star, Dg_star', discount)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Solution by `stationary_values(::LQ)`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Solve the LQ problem:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"([-13.211795608258779 -0.4806293445369966; -0.4806293445369966 0.004914869864113194], [1.0657894736842055 -0.8999999999999997], 0.0)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"P, F, d = stationary_values(lq)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The optimal value function (of the LQ minimization problem):"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"V (generic function with 1 method)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"V(s) = [1, s]' * P * [1, s] + d"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The value at $s^*$:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"-20.070983979777214"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"V(s_star)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-20.070983979777242"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"-f_star / (1 - lq.bet)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The optimal policy function:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"X (generic function with 1 method)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X(s) = - (F * [1, s])[1]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The optimal choice at $s^*$:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5.609418282548483"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X(s_star)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"5.6094182825484795"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_star"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"\n",
"\n"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s_min, s_max = 5, 10\n",
"ss = range(s_min, stop=s_max, length=50)\n",
"title = \"Optimal Investment Policy\"\n",
"xlabel = \"Wealth\"\n",
"ylabel = \"Investment (% of Wealth)\"\n",
"plot(ss, X.(ss)./ss, xlims=(s_min, s_max), ylims=(0.65, 0.9),\n",
" title=title, xlabel=xlabel, ylabel=ylabel, label=\"L-Q\")\n",
"plot!([s_star], [x_star/s_star], m=(7,:star8), label=\"\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true,
"jupyter": {
"outputs_hidden": true
}
},
"source": [
"## Renewable Resource Management"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Consider the renewable resource management model from Miranda and Fackler, Section 9.7.2:\n",
"\n",
"* $f(s, x) = \\dfrac{(s - x)^{1-\\gamma}}{1-\\gamma} - \\kappa (s - x)$,\n",
"* $g(s, x) = \\alpha x - 0.5 \\beta x^2$."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"alpha = 4.0\n",
"bet = 1.0\n",
"gamm = 0.5\n",
"kappa = 0.2\n",
"discount = 0.9;"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"f(s, x) = (s - x)^(1 - gamm) / (1 - gamm) - kappa * (s - x)\n",
"f_s(s, x) = (s - x)^(-gamm) - kappa\n",
"f_x(s, x) = -f_s(s, x)\n",
"f_ss(s, x) = -gamm * (s - x)^(-gamm - 1)\n",
"f_sx(s, x) = -f_ss(s, x)\n",
"f_xx(s, x) = f_ss(s, x)\n",
"\n",
"g(s, x) = alpha * x - 0.5 * bet * x^2\n",
"g_s(s, x) = 0\n",
"g_x(s, x) = alpha - bet * x;"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(7.382716049382716, 2.888888888888889)"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_star = (discount * alpha - 1) / (discount * bet)\n",
"s_star = (alpha^2 - 1/discount^2) / (2 * bet)\n",
"s_star, x_star"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5.551115123125783e-17"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f_x(s_star, x_star) + discount * f_s(g(s_star, x_star), x_star) * g_x(s_star, x_star)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"f_star = f(s_star, x_star)\n",
"Df_star = [f_s(s_star, x_star), f_x(s_star, x_star)]\n",
"DDf_star = [f_ss(s_star, x_star) f_sx(s_star, x_star);\n",
" f_sx(s_star, x_star) f_xx(s_star, x_star)]\n",
"g_star = g(s_star, x_star)\n",
"Dg_star = [g_s(s_star, x_star) g_x(s_star, x_star)];"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LQ([0.0262431197105178;;], [-1.5898986690282433 -0.2537961323936474; -0.2537961323936474 0.0262431197105178], [1.0 0.0; 4.172839506172839 0.0], [0.0; 1.1111111111111112;;], [0.0; 0.0;;], [0.2537961323936474 -0.0262431197105178], 0.9, nothing, [NaN NaN; NaN NaN], [NaN NaN; NaN NaN], 0.0, [0.0 0.0])"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lq = approx_lq(s_star, x_star, f_star, Df_star, DDf_star, g_star, Dg_star, discount)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"([-31.26051474783933 -0.15523863836970273; -0.15523863836970286 0.0026243119710518074], [3.755555555555553 -0.899999999999999], 0.0)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"P, F, d = stationary_values(lq)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"V (generic function with 1 method)"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"V(s) = [1, s]' * P * [1, s] + d"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-33.40964351976545"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"V(s_star)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-33.409643519765496"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"-f_star / (1 - lq.bet)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"X (generic function with 1 method)"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X(s) = - (F * [1, s])[1]"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.8888888888888844"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X(s_star)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.888888888888889"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_star"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"\n",
"\n"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s_min, s_max = 6, 9\n",
"ss = range(s_min, stop=s_max, length=50)\n",
"harvest = ss - X.(ss)\n",
"h_star = s_star - x_star\n",
"title = \"Optimal Harvest Policy\"\n",
"xlabel = \"Available Stock\"\n",
"ylabel = \"Harvest (% of Stock)\"\n",
"plot(ss, harvest./ss, xlims=(s_min, s_max), ylims=(0.5, 0.75),\n",
" title=title, xlabel=xlabel, ylabel=ylabel, label=\"L-Q\")\n",
"plot!([s_star], [h_star/s_star], m=(7,:star8), label=\"\")"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3deVxUVf8H8DPDDMi+r+IKuCsiLoSIu4hGVCqK+xqWT5aZmr+058nMXCqt1DK33Eoxl1wSZRE0QAVUAkVkl0X2bWBmmOXe3x9Xb+Owpg4D3s/7D18zhzP3fgd58eHcOedcHk3TBAAAgKv42i4AAABAmxCEoE0VFRXx8fExMTHp6ekSiUTtq9HR0UFBQRcvXtRoDUuXLv300081egoNiY6OXrRo0YULF7RdSNuSlpa2aNGiAwcOaLsQaDcQhKAdt27dGjlypIWFxZAhQ4YPH+7i4mJiYuLp6fnLL7+wfR48ePDzzz/fvn1bo5X8/PPPx48f1+gpmqCvr897SiAQWFlZeXl5/fDDD3K5vNnXPnz48MCBA3fv3m2FOgkh3t7eug3p1KlT6xSgJiUl5eeff67/9gsLCw8cOHDt2jWtVAXtkUDbBQAX/fXXX+PHj5dKpUOHDvXx8bGwsMjLy0tOTg4PD+/UqdP8+fO1XWBrGzlypFAoJIQ8fvw4JiYmOjr67Nmzly5d0tXVbeJV9vb2o0aN6tq1a+sUKZfL5XK5q6urubm5aruFhUXrFKDm2rVrS5cu3bRp08CBA1XbzczMRo0a1bt3b61UBe0RghC0YPXq1VKp9NNPP924caNqe2Fh4f3797VVlRb9/vvvVlZWzOOoqKhJkyZFRET88ssv77zzThOvmjhx4sSJE1ulwH98/fXX48aNa+WT/iv9+/e/evWqtquA9gRBCK1NLpffvHmTELJixQq1L9nZ2dnZ2TX4qrS0tIiICLFY3Ldv33HjxvH56lf109PT7969m5+fz+fze/fuzY6x1JSWll66dKm4uLhr166+vr4GBgYNnk6pVF6/fj0pKUmpVDo5OY0bN05fX5/9amZmZkVFRe/evdmXi8XilJQUQoibmxtbW3l5eVZWlr29vYODQ7PfFtbIkSPfeeedHTt2XLx4kQnC27dvCwSCAQMG1NbWhoSE5OTk9OvXb8KECWVlZdnZ2R07dlT7pikUitjY2KSkpLq6OgcHB09Pz/pXLzMzM69du1ZcXGxjYzN69OguXbq0vMIGiUSihw8fWllZqR0qOzu7rKysZ8+eRkZGTMvt27eFQmH//v1ra2v//PPPnJwcOzs7Hx8fa2vr+oeVSCRRUVFpaWk0TXfq1Mnb29vS0pIQkpqa+ujRI0JIQUFBQkIC09nJycnMzKympiY1NbV+JRKJJCwsLCMjQ0dHp1+/ft7e3jo6OqodkpOT6+rqBg0apFAoQkJC0tLSTE1Nx48f37lz5xf85kBbRwO0LplMxlzxKygoaLrnvn37CCEbNmxYs2YNj8djf2g9PT2rqqrYbhKJpGfPnmo/2N26dbt165baAU+cOGFsbMz2sbe3v3nzJo/H6969u2q35OTkPn36qB7N3t7+zz//ZDt89tlnhJCjR4+yLUeOHGF6xsfHs43MHJzffvutiffYoUMHQkhJSYlq408//UQIee2115inurq6Dg4OERERbFQEBATQNM3MB/niiy9UXxsZGens7KxaPI/H27x5M9uhuro6MDBQ9fupo6OzcuVKpVLZRJ00TXt4eBBCQkNDG/xqeHg4IWTJkiVq7QsWLCCEREVFsS06OjqdO3f+66+/VPPb2Nj48uXLaq89duyYjY2N6nsRCASnTp2iaXr48OH1f5udOXOGpmnm08F58+apHurSpUv29vaqnfv06ZOUlKTah/m+JSUl9ejRg+2mq6t78ODBpr8z0N5hsgy0NqFQ2K9fP0LIwoULMzIymu1/8ODBAwcO7N69Oy4u7sKFCwMGDIiJifnf//7HdlAoFLq6utu3b2eGDjExMR9++OGjR4/8/PyqqqrYbnFxcbNmzVIqlTt37szOzr5z586YMWPeeusttdMVFRWNHTv2/v3777777p07d1JSUr788svS0lJ/f/+4uDimz9ixYwkhYWFh7KsiIiKYgaBaI4/HGz169L/9FmVlZZFnP3sTiURTpkzx8/M7e/ZsdHT0woULG3xhbGzshAkTsrOzV69eHRcXl5qaGhoaumLFCoqimA5KpdLPz++3337z8fG5fPnygwcPLl68OGDAgG+++ebzzz//t3U+t6qqKn9/f39//7CwsBs3bixfvlwkEs2ePVt15vDRo0eZli1btvz999/3798/f/78nDlz6urqCCE7duz48MMPCSGLFi0KfarBdCSExMfH+/v7l5aWfvnll/fv37979+677757//79MWPGFBYWqnV+4403+vbte+nSpbi4uA0bNlAUtXTp0tzcXI19M6AN0HYSAxddvnyZGQkRQlxcXObOnbtv377CwkK1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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"\n",
"\n"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"shadow_price(s) = -2 * (P * [1, s])[2]\n",
"title = \"Shadow Price Function\"\n",
"ylabel = \"Price\"\n",
"plot(ss, shadow_price.(ss), xlims=(s_min, s_max), ylims=(0.2, 0.4),\n",
" title=title, xlabel=xlabel, ylabel=ylabel, label=\"L-Q\")\n",
"plot!([s_star], [shadow_price(s_star)], m=(7,:star8), label=\"\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.11.6",
"language": "julia",
"name": "julia-1.11"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}