Les bibliothèques numpy et matplotlib en Python

1. A propos du cours

  1. Auteur : Mathieu Mansuy (Professeur en ECG2 - Classes Préparatoires Commerciales)
  2. Type : Travaux Pratiques (TP) de CPGE commerciales / Document PDF d'exercices guidés sur les bibliothèques scientifiques
  3. Langue : Français
  4. Licence : Document pédagogique partagé sur le site personnel de l'enseignant pour ses étudiants (usage académique).

2. Prérequis

  1. Connaissances solides en programmation Python de base (variables, structures de contrôle, fonctions).
  2. Bases solides en algèbre linéaire (matrices, déterminants, systèmes linéaires, valeurs propres).
  3. Familiarité avec les concepts d'analyse mathématique (fonctions, dérivées, intégrales).
  4. Être étudiant en ECG2 (spécialité mathématiques approfondies) ou avoir un niveau équivalent.

3. Publique cible

Ce TP s'adresse spécifiquement aux étudiants de Classes Préparatoires Commerciales (ECG) en deuxième année, option mathématiques approfondies. Il convient également aux étudiants de licence de mathématiques ou d'écoles de commerce, ainsi qu'à tout enseignant ou autodidacte cherchant un support structuré et progressif pour appliquer des concepts mathématiques avancés (algèbre linéaire, optimisation) à l'aide des outils computationnels modernes de Python.

4. Outils matériels et logiciels

4.1 Outils matériels

  1. Un ordinateur avec un environnement Python installé.

4.2 Outils logiciels

  1. Une distribution de Python 3 avec les bibliothèques scientifiques installées.
  2. Les bibliothècules NumPy, Matplotlib (et probablement SciPy).
  3. Un environnement de développement adapté au calcul scientifique, comme Jupyter Notebook ou Spyder.

5. Champs d'applications

  1. Mathématiques Appliquées à l'Économie et à la Gestion : Modélisation de problèmes d'optimisation, calcul de portefeuilles efficients, analyse de données financières.
  2. Ingénierie Financière : Résolution de systèmes linéaires issus de modèles économétriques, calcul de risques.
  3. Recherche Opérationnelle : Implémentation et résolution numérique de problèmes linéaires et non-linéaires.
  4. Enseignement des Mathématiques : Illustration concrète et vérification expérimentale de théorèmes d'algèbre linéaire.
  5. Préparation aux Épreuves des Grandes Écoles de Commerce : Acquisition d'une compétence technique valorisante en mathématiques appliquées.

6. Courte description

Ce TP avancé guide les étudiants dans l'utilisation conjointe de trois piliers du Python scientifique : NumPy pour le calcul numérique, son module numpy.linalg pour l'algèbre linéaire, et Matplotlib pour la visualisation. À travers une série d'exercices progressifs, il applique ces outils à des problèmes de mathématiques pures et appliquées (calcul matriciel, résolution de systèmes, optimisation, tracés de fonctions) rencontrés dans le programme d'ECG2.

7. Longue description du cours

Conçu par Mathieu Mansuy pour ses étudiants d'ECG2, ce TP a une vocation double : pédagogique (renforcer la compréhension des mathématiques par l'expérimentation) et pratique (doter les étudiants de compétences computationnelles utiles pour leurs études et leur future carrière en gestion ou en économie). Il ne s'agit pas d'un cours théorique sur les bibliothèques, mais d'un feuille de route d'application immédiate.

Objectif : Faire le Pont entre la Théorie Mathématique et le Calcul Numérique

Le TP part du principe que la programmation est un outil d'investigation et de validation. Il montre comment traduire un énoncé mathématique abstrait en un programme Python exécutable, permettant de tester des conjectures, visualiser des résultats et résoudre des problèmes numériquement.

Partie 1 : Prise en Main de NumPy et des Tableaux Numériques

La première partie assure une maîtrise opérationnelle de NumPy, nécessaire pour la suite :

  • Création de tableaux (ndarray) : Rappel ou apprentissage des fonctions essentielles : np.array(), np.arange(), np.linspace(), np.zeros(), np.ones(), np.eye() (matrice identité).
  • Caractéristiques des tableaux : Manipulation des dimensions (.shape, .reshape()).
  • Opérations vectorisées : Insistance sur le paradigme du calcul élément par élément, qui évite les boucles Python lentes. Opérations arithmétiques de base, fonctions mathématiques universelles (np.sin(), np.exp(), etc.).
  • Indexation et slicing avancé : Techniques pour extraire et manipuler efficacement des sous-parties des tableaux.

Partie 2 : Algèbre Linéaire Numérique avec numpy.linalg

C'est le cœur mathématique du TP, directement lié au programme d'ECG2. Le TP propose des exercices pour chaque fonction majeure :

  • Opérations matricielles de base : Produit matriciel avec np.dot() ou l'opérateur @, transposition (.T).
  • Déterminant et inverse :
    • Calcul du déterminant avec np.linalg.det(). Applications : test de l'inversibilité d'une matrice, calcul d'aires/volumes en géométrie.
    • Calcul de l'inverse avec np.linalg.inv(). Mise en garde sur l'instabilité numérique et la préférence pour la résolution directe de systèmes.
  • Résolution de systèmes d'équations linéaires : Utilisation de np.linalg.solve(A, B) pour résoudre AX = B. Exercices typiques : résolution de systèmes carrés, application à des problèmes de concordance ou d'équilibre économique.
  • Valeurs propres et vecteurs propres :
    • Calcul avec np.linalg.eig() pour les matrices diagonalisables.
    • Applications en ECG : analyse de stabilité de systèmes dynamiques discrets, réduction d'endomorphismes, calcul de puissances de matrices (important pour les chaînes de Markov).
  • Autres fonctions : Calcul de la norme d'une matrice ou d'un vecteur (np.linalg.norm()), rang, conditionnement.

Partie 3 : Visualisation Scientifique avec Matplotlib

Cette partie apprend à créer des graphiques pour interpréter et communiquer les résultats numériques :

  • Courbes 2D : Tracé de fonctions mathématiques avec plt.plot(). Les étudiants apprennent à générer un domaine x avec np.linspace(), calculer les images y via des opérations vectorisées NumPy, et tracer.
  • Personnalisation des graphiques : Ajout de titres, légendes, labels des axes, grille, modification des couleurs et des styles de ligne.
  • Superposition de plusieurs courbes : Pour comparer des fonctions ou visualiser des familles de solutions.
  • Visualisation de données discrètes : Nuages de points (plt.scatter()), histogrammes.
  • Applications intégrées : Tracer la courbe représentative d'une fonction dont on cherche un extremum, visualiser les itérations d'une suite récurrente linéaire d'ordre 2 (liée aux valeurs propres), représenter des données simulées.

Partie 4 : Applications Synthèses et Problèmes Concrets

Le TP atteint son apogée avec des exercices de synthèse qui combinent les trois bibliothèques pour résoudre des problèmes plus complexes, potentiellement tirés d'annales ou inspirés du programme ECG :

  • Optimisation sans contrainte : Recherche d'extremums locaux d'une fonction à plusieurs variables. Cela peut impliquer le calcul du gradient (via des dérivées partielles approchées ou symboliques si SymPy est introduit) et l'utilisation de méthodes numériques.
  • Suites récurrentes linéaires : Étude de suites du type U_{n+1} = A * U_n. Calcul explicite de U_n via la diagonalisation de A (puissance de matrice), visualisation de la convergence/divergence.
  • Résolution approchée d'équations : Méthode de Newton en dimension 1, illustrée graphiquement avec Matplotlib.
  • Modélisation économique simple : Par exemple, résolution d'un système d'offre et de demande linéaire, calcul d'un équilibre de marché, et visualisation des courbes.
  • Calculs de probabilités et statistiques : Simulation de lois discrètes ou calculs d'espérances/variances avec NumPy, visualisation des distributions.

Approche Pédagogique et Méthodologie de Travail

Le TP est conçu pour un travail en autonomie ou en binôme :

  1. Énoncé mathématique clair : Chaque exercice part d'un problème ou d'une question précise.
  2. Guide de programmation : Indications sur les fonctions à utiliser, la structure du code à écrire.
  3. Vérification et interprétation : Les étudiants sont invités à comparer leurs résultats numériques avec des solutions analytiques lorsqu'elles existent, et à interpréter les sorties (graphiques ou numériques) dans le langage des mathématiques.
  4. Production de compte-rendu : Incitation à commenter le code et à présenter les résultats de manière lisible (sorties numériques formattées, graphiques annotés).

En conclusion, ce TP est un outil de formation remarquablement intégré. Il dépasse l'aspect technique pour enseigner une démarche scientifique computationnelle. Il prépare les étudiants d'ECG2 non seulement à utiliser Python, mais à penser les problèmes mathématiques avec un nouvel outil puissant, une compétence de plus en plus cruciale dans les métiers de l'économie, de la data et de la finance où le traitement quantitatif de l'information est central.

8. Aperçu du document

Leave a Reply

Your email address will not be published. Required fields are marked *