Contenus
Objectif du Cours
La grande majorité des modèles économiques réels ne peuvent pas être résolus analytiquement et n'admettent pas de solution sous forme fermée. ECON 254 jette un pont entre la théorie économique et la mise en œuvre computationnelle. Ce cours dote les étudiants de licence avancés des compétences nécessaires pour résoudre des modèles économiques statiques et dynamiques à l'aide de méthodes numériques fondamentales et du langage de programmation Python.
Le contenu progresse des techniques numériques de base (algèbre linéaire, interpolation, recherche de racines) vers l'optimisation avancée (solveurs NLP directs, approches indirectes de Lagrange/KKT), puis vers la programmation dynamique et les méthodes stochastiques (induction à rebours, itération sur la fonction de valeur, processus de Markov). Tout au long du cours, les concepts théoriques sont ancrés dans des cadres économiques fondamentaux ; les étudiants apprennent non seulement à coder des algorithmes, mais aussi à comprendre les mécanismes économiques sous-jacents, à réaliser des analyses de convergence et d'erreur, et à construire des flux de travail analytiques reproductibles. Les deux dernières semaines sont consacrées aux présentations de projets de groupe, dans lesquelles les équipes d'étudiants formulent, résolvent et défendent numériquement un problème d'optimisation économique choisi.
Contenu du Cours
Le cours commence par la mise en place de l'écosystème Python de calcul scientifique (NumPy, SciPy, Matplotlib) et des opérations vectorisées, puis aborde l'interpolation et l'approximation de fonctions. Il couvre ensuite les systèmes d'équations linéaires ($Ax=b$) et les techniques de décomposition matricielle, appliqués à des réseaux économiques multisectoriels tels que l'analyse input-output de Leontief. L'itération à point fixe, les méthodes de recherche de racines (dichotomie, Newton-Raphson) et les systèmes d'équations non linéaires (Newton-Raphson multivarié, jacobienne) sont utilisés pour résoudre les prix d'équilibre du marché et l'optimisation du consommateur multi-biens. Dans la seconde moitié du cours, l'optimisation sans contrainte (gradient, hessienne, BFGS), l'optimisation sous contrainte (solveurs NLP directs et approche indirecte de Lagrange/KKT), les problèmes dynamiques à horizon fini (Cake-eating, cycle de vie) ainsi que l'itération stochastique sur la fonction de valeur (VFI) et le problème de fluctuation du revenu sont traités. Les deux dernières semaines sont réservées aux présentations de projets dans lesquelles les groupes d'étudiants présentent un problème d'optimisation choisi.
Acquis d'Apprentissage du Cours
Au terme de ce cours, l’étudiant sera capable de :
1. Configurer la pile Python de calcul scientifique (NumPy, SciPy, Matplotlib) pour formuler numériquement des modèles économiques ; organiser les analyses dans un format Jupyter Notebook reproductible intégrant code, modèle et interprétation.
2. Appliquer les systèmes d’équations linéaires (Ax = b) et la décomposition matricielle à l’analyse input-output de Leontief ; calculer les prix d’équilibre du marché par des méthodes de recherche de racines (dichotomie, Newton-Raphson) ; utiliser des systèmes d’équations non linéaires (Newton-Raphson multivarié, jacobienne) pour l’optimisation multi-biens du consommateur et la minimisation des coûts.
3. Intégrer des algorithmes d’optimisation sans contrainte (gradient, hessienne, BFGS) dans la maximisation du profit de la firme et la dérivation des demandes de facteurs ; résoudre les problèmes d’optimisation sous contrainte par des méthodes directes (pénalité, barrière, SQP) et par l’approche
indirecte (lagrangien, KKT).
4. Résoudre numériquement des problèmes dynamiques à horizon fini (Cake-eating, cycle de vie) par induction à rebours et le principe de Bellman ; formuler des modèles de cycle de vie avec des flux de revenus déterministes variables dans le temps et coder des applications de planification de la retraite et de l’épargne.
5. Formuler de zéro un problème d’optimisation ou d’équilibre économique, sélectionner une méthode numérique appropriée et la mettre en oeuvre en Python ; expliquer et défendre l’approche, le code, les résultats et les limites à travers un rapport écrit et une présentation orale.
Méthodes d'Enseignement
• Enseignement appliqué assisté par ordinateur : codage en direct, développement d’algorithmes, analyse d’erreur et visualisation avec Jupyter Notebook/Lab.
• Discussion conceptuelle et apprentissage intuitif : combinaison de la théorie économique avec des méthodes numériques basées sur Python.
• Application sur des modèles économiques réels : IS-LM, Leontief, optimisation du consommateur/de la firme, cycle de vie, VFI.
• Activités d’apprentissage courtes et orientées vers l’application, avec retour immédiat ; les étudiants peuvent recourir à l’IA durant le codage, mais doivent pouvoir expliquer et défendre chaque étape utilisée.
• Production de recherche reproductible : préparation de rapports dynamiques et de projets de fin de semestre avec l’intégration de Jupyter et Markdown.
Ressources
1. QuantEcon : https://quantecon.org/ (Plateforme principale pour l’enseignement de l’économie avec Python)
2. Iskhakov, F. Foundations of Computational Economics.
https://fedor.iskh.me/compecon
3. Ressources et outils supplémentaires que vous pouvez utiliser :
• Documentation SciPy :
https://docs.scipy.org/doc/scipy/
• Documentation Matplotlib :
https://matplotlib.org/stable/
• Jupyter :
https://jupyter.org/
Intitulés des Sujets
Système d'évalution
Evalution de la Compétence
Tableau de la Charge de Travail