TD Introduction à la macroéconomie
2025-03-11
\[\max_{c_1,c_2} \; u(c_1) + \beta u(c_2)\]
Contrainte: \[c_2 = y_2 + (1+r)\left(y_1 - c_1\right)\]
\[\max_{c,l} \; u(c,l) = \log(c) + \alpha \log(l)\]
Contrainte: \[c \leq w(1-l)\]
#| '!! shinylive warning !!': |
#| shinylive does not work in self-contained HTML documents.
#| Please set `embed-resources: false` in your metadata.
#| standalone: true
#| viewerHeight: 550
from shiny import App, ui, render
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# Définition de la fonction d'utilité avec un sigma plus petit
def utility(c1, c2, sigma=1.8):
return ((c1**(1-sigma) / (1-sigma)) + 0.5*(c2**(1-sigma) / (1-sigma))) + 1
# Définition de la contrainte budgétaire
def budget_constraint(c1, y1=7, a0=0, r=0.03, tau1=1, tau2=1, y2=4):
a = a0 + y1 - tau1 - c1
c2 = y2 - tau2 + (1 + r) * a
return np.where(c2 > 0, c2, np.nan)
app_ui = ui.page_sidebar(
ui.sidebar(
ui.h3("Contrôles de vue"),
ui.input_slider("elevation", "Élévation de la vue", min=0, max=90, value=20),
ui.input_slider("azimuth", "Azimut de la vue", min=0, max=360, value=269),
),
ui.h2("Modèle à deux périodes: Représentation 3D de l'utilité et de la contrainte budgétaire"),
ui.output_plot("plot3d", height="500px"),
)
def server(input, output, session):
@output
@render.plot
def plot3d():
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')
# Grille de points
c1 = np.linspace(2, 8, 50)
c2 = np.linspace(2, 8, 50)
C1, C2 = np.meshgrid(c1, c2)
U = utility(C1, C2)
# Contrainte budgétaire
C2_budget = budget_constraint(c1)
U_budget = utility(c1, C2_budget)
# Surface d'utilité
surf = ax.plot_surface(C1, C2, U, cmap='viridis', alpha=0.6)
# Courbes de niveau
ax.contour(C1, C2, U, 20, cmap='viridis', offset=0, linestyles='solid')
# Plan de la contrainte budgétaire
# Créer une grille de points Z pour le plan vertical
Z = np.linspace(np.min(U), np.max(U), 50)
X, Z = np.meshgrid(c1, Z)
Y = np.zeros_like(X)
for i in range(len(c1)):
Y[:,i] = budget_constraint(c1[i])
# Tracer le plan vertical rouge transparent
ax.plot_surface(X, Y, Z, color='red', alpha=0.1)
# Intersection contrainte-utilité
ax.plot(c1, C2_budget, U_budget, color='red', linewidth=2, label='Intersection')
# Projection de la contrainte
ax.plot(c1, C2_budget, np.zeros_like(c1), color='black', linestyle='dashed', linewidth=2, label='Projection')
# Maximum d'utilité
max_idx = np.nanargmax(U_budget)
ax.scatter([c1[max_idx]], [C2_budget[max_idx]], [U_budget[max_idx]],
color='red', s=100, label='Maximum')
# Gradient
grad_c1, grad_c2 = np.gradient(U, axis=(0, 1))
ax.quiver(C1, C2, U, grad_c1, grad_c2, 0, color='gray', alpha=0.5, linewidth=1)
# Labels et légende
ax.set_xlabel('Consommation C1')
ax.set_ylabel('Consommation C2')
ax.set_zlabel('Utilité')
ax.legend()
# Vue
ax.view_init(elev=input.elevation(), azim=input.azimuth())
return fig
app = App(app_ui, server)Supposez qu’un ménage résout un cas particulier du problème de l’exercice 1, avec \[ a_0=\tau_1=\tau_2=0 \quad \text{et} \quad y_2=m\,y_1, \] où \(m\) est un nombre réel.
Supposez qu’un ménage résolve la variante suivante du problème de l’exercice 1 :
\[ \max_{c_1,\, c_2,\, a} \; u(c_1)+\beta\, u(c_2) \]
subject to \[ a = y_1-\tau_1-c_1 \] \[c_2=y_2-\tau_2+(1+r)a \] \[a\geq -b \]
Supposez que les préférences des ménages soient données par : \(u(c, l) = c + \theta \log(l)\) où \(c\) est la consommation, \(l\) la fraction de temps consacrée au loisir et \(\theta\) un paramètre. Les ménages disposent d’un total d’une unité de temps et peuvent fournir du travail sur un marché du travail concurrentiel à un salaire \(w\).
Supposons que les préférences en matière de consommation et de loisirs soient : \(u(c, l) = \log(c) + \alpha \log(l)\) et que les ménages résolvent :
\[\max_{c,l} \log(c) + \alpha \log(l)\]
s.c. \(c=w(1-l)(1-\tau)+T\)
Supposez maintenant qu’en Europe et aux États-Unis nous ayons : - \(\alpha=1,54\) ; \(w=1\) - mais qu’aux États-Unis, \(\tau=0,34\) ; \(T=0.102\) - et qu’en Europe, \(\tau=0,53\) ; \(T=0.124\)
Dans tout calcul de ce type, un paramètre important est l’élasticité de l’offre de travail. Une définition de l’élasticité souvent étudiée par les économistes du travail est connue sous le nom d’élasticité de Frisch. Elle est basée sur la réponse à la question suivante : supposons que nous augmentions les salaires mais que nous ajustions le revenu du ménage de manière à ce que la consommation reste constante : comment l’offre de travail évoluerait-elle ?
Calculons l’élasticité de Frisch dans le modèle de Prescott.
Considérons une économie correctement décrite par le modèle de croissance de Solow. La fonction de production est :
\[ Y=K^\alpha\,L^{1-\alpha} \]
La population est constante et égale à 1 et il n’y a pas de progrès technologique. Le taux d’épargne est \(s\) et le taux d’amortissement est \(\delta\).
Pour le reste des questions, supposez \[ s=0.4,\quad \alpha=0.35,\quad \delta=0.1, \] et que l’économie se trouve initialement à l’état stationnaire.
\[ u(c_1,c_2)= u(c_1)+ \beta\, u(c_2) \]
Les Friedman peuvent emprunter ou prêter au taux d’intérêt du marché. Comme ce sont les seuls à agir de cette façon et qu’ils sont petits par rapport à l’économie, nous allons supposer que l’économie globale (quantités globales, prix, etc.) reste inchangée. La consommation des Friedman sera-t-elle élevée au début puis faible à la fin, ou sera-t-elle faible au début puis élevée à la fin, ou restera-t-elle constante ?
