{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Risultati:\n", "Il numero di imprese in equilibrio è 13\n", "Prezzo minimo uguale al costo medio minimo è 3.0\n", "La quantità offerta a quel prezzo è 39.0\n", "Il prezzo di equilibrio è 3.06122448979592\n", "La quantità scambiata è 39.7959183673469\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sympy import *\n", "#import math\n", "\n", "q,p,N=symbols('q p N')\n", "\n", "#parametri della funzione cotso quadratica aq^2+bq+c\n", "[a,b,c]=[1/2,0,9/2] \n", "#parametri della dimanda lienare alpha-beta*q\n", "[alpha,beta]=[15,.3]\n", "\n", "#costo quadratico aq^2+bq+c, parametri a, b, c\n", "def C(q):\n", " return a*q**2+b*q+c\n", "\n", "#costo medio\n", "def AC(q):\n", " return C(q)/q\n", "#minimizer di AC\n", "def dAC(q):\n", " return diff(AC(q),q)\n", "# list of zero of dAC\n", "qminac_list=solve(dAC(q),q)\n", "#positive solution is the minimizer\n", "qminac = [val for val in qminac_list if val > 0][0]\n", "#minimum AC = min feasible price \n", "ACmin=AC(qminac)\n", "\n", "#supply - not taking into account p too low\n", "def mc(q):\n", " return diff(C(q),q)\n", "def aux1(q,p):\n", " return p-mc(q)\n", "def qs(p,N):\n", " return solve(aux1(q,p),q)[0]*N\n", "#minimum quantity offered by N firms (at ACmin)\n", "def qsmin(N):\n", " return qs(ACmin,N)\n", "#supply price (invert above)\n", "def aux3(q,p,N):\n", " return q-qs(p,N)\n", "def S(q,N):\n", " return solve(aux3(q,p,N),p)[0]\n", "\n", "#print(S(q,N))\n", "#print(type((S(q,N))))\n", "\n", "#domanda lineare, parametri alpha, beta\n", "def D(q):\n", " return alpha-beta*q\n", "#invert\n", "def aux2(q,p):\n", " return p-(alpha-beta*q)\n", "# quantity demanded\n", "def qd(p):\n", " return solve(aux2(q,p),q)[0]\n", "\n", " \n", "#equilibrium number of firms Nbar is the minimum N for which qd(ACmin) \\ge qsmin\n", "Nbar=floor(solve(qd(ACmin)-qsmin(N),N)[0])\n", "\n", "#equilibrium price solves qd(p)=qs(p,Nbar)\n", "peq=solve(qd(p)-qs(p,Nbar),p)[0]\n", "#equilibrium quantity\n", "qeq=qd(peq)\n", "\n", "#equil con N fisso\n", "def pNeq(N):\n", " return solve(qd(p)-qs(p,N),p)[0]\n", "def qNeq(N):\n", " return qd(pNeq(N))\n", "\n", "#print this if you want\n", "#print(pNeq(Nbar-1),qNeq(Nbar-1)) \n", "\n", "\n", "#print results\n", "print('Risultati:')\n", "print('Il numero di imprese in equilibrio è',Nbar)\n", "print('Prezzo minimo uguale al costo medio minimo è',float(ACmin))\n", "print('La quantità offerta a quel prezzo è',float(qsmin(Nbar)))\n", "print('Il prezzo di equilibrio è',peq)\n", "print('La quantità scambiata è',qeq)\n", "\n", "#plot\n", "#denote by Q the quantity offered at minimum price\n", "Q=float(qsmin(Nbar))\n", "\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "#lambdfy to make S numpy-friendly\n", "Sl = lambdify((q, N), S(q,N), 'numpy')\n", "\n", "plt.figure(figsize=(15,4))\n", "plt.subplot(121)\n", "plt.title('Equilibrio', fontsize=20)\n", "t = np.linspace(0.1, 1.5*Q,400)\n", "#costo medio della singola impresa\n", "plt.plot(t, AC(t), color='r')\n", "#prezzo di domanda\n", "plt.plot(t, D(t), color='b')\n", "#prezzo minimo\n", "plt.axhline(ACmin, color='r',linestyle='--')\n", "# prezzo di offerta con Nbar imprese \n", "t = np.linspace(Q, 1.5*Q,400)\n", "#plt.plot(t, b+2*a*t/Nbar, color='g')\n", "plt.plot(t, Sl(t,Nbar), color='g')\n", "plt.xlim([0, 1.5*Q])\n", "plt.ylim([0, 15])\n", "matplotlib.rc('text', usetex=True)\n", "plt.text(23, 10, r'\\textit{AC}', {'color': 'r', 'fontsize': 16})\n", "plt.text(.9*Q, 1.6*ACmin, r'\\textit{D}', {'color': 'b', 'fontsize': 16})\n", "plt.text(1.2*Q, 1.35*ACmin, r'\\textit{S}', {'color': 'g', 'fontsize': 16})\n", "\n", "#second figure: zoom on equil\n", "plt.subplot(122)\n", "plt.title('Zoom sull\\'equilibrio', fontsize=20)\n", "t = np.linspace(0.1, 1.5*Q,400)\n", "plt.plot(t, D(t), color='b')\n", "\n", "#plot a few supply price functions\n", "for i in [Nbar-1,Nbar,Nbar+1]:\n", " Qi=float(qsmin(i))\n", " t = np.linspace(Qi, 1.2*Q,400)\n", " plt.plot(t, Sl(t,i), color='g')\n", "\n", "plt.axhline(ACmin, color='r',linestyle='--')\n", "plt.xlim([0.8*Q, 1.2*Q])\n", "plt.ylim([0.95*float(ACmin), 1.05*float(ACmin)])\n", "plt.subplots_adjust(left=None, bottom=None, right=None, top=None,wspace=.3, hspace=None)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }