---
title: "Syllabus du cours DSSC-6 : Schémas numériques pour les problèmes de Cauchy"
---
## Introduction : le parcours DSSC
Depuis septembre 2024, l'université de Toulon propose, dans sa licence de Mathématiques, un parcours nommé *Data Science and Scientific Computing*.
Il se situe au croisement des mathématiques et de l'informatique.
L'objectif principal est d'apprendre à formuler des questions de manière à ce que le calcul informatique puisse fournir des réponses (exactes ou approchées) satisfaisantes.
Ce parcours sur trois ans fournit une base de connaissances et de compétences pratiques en analyse de données et en calcul scientifique, en utilisant principalement **Python** et les **Notebook Jupyter**. On y apprend à manipuler, analyser et visualiser les données, ainsi qu'à résoudre des problèmes scientifiques et mathématiques complexes en utilisant les outils et bibliothèques appropriés :
- [**DSSC-1**](https://moodle.univ-tln.fr/course/view.php?id=4968) *Introduction à la programmation scientifique avec Python*: apprentissage des bases de la programmation en Python, notamment les structures de contrôle, les fonctions et les types de données, ainsi que l'utilisation de Matplotlib pour créer des visualisations.
- [**DSSC-2**](https://moodle.univ-tln.fr/course/view.php?id=4671) *Approximations et simulations*: étude des bases de l’analyse numérique, avec des comparaisons aux résultats issus de la bibliothèque SciPy, pour résoudre des problèmes scientifiques et d’ingénierie: interpolations, intégrations numériques, zéros d'une fonction. On apprendra également à utiliser des Notebook Jupyter pour expliquer et documenter les calculs.
- [**DSSC-3**](https://moodle.univ-tln.fr/course/view.php?id=8894) *Calcul formel avec SymPy*: familiarisation avec SymPy pour réaliser des calculs mathématiques symboliques comme la manipulation d'expressions et la résolution d'équations et sytèmes. Application en analyse mathématique (calcul de limites, dérivées, intégrales symboliques dans $\mathbb{R}^n$) et en algèbre linéaire (applications linéaires, noyeaux, etc.). On apprendra également à rédiger des rapports en LaTeX.
- [**DSSC-4**](https://moodle.univ-tln.fr/course/view.php?id=6844) *Manipulation avancée des tableaux avec NumPy*: approfondissement des connaissances sur le calcul matriciel avec NumPy pour des calculs performants.
- [**DSSC-5**](https://moodle.univ-tln.fr/course/view.php?id=8889) *Manipulation de données avec Pandas : une initiation*: utilisation de Pandas pour manipuler efficacement les jeux de données, incluant l'importation, le nettoyage, la transformation, le filtrage, l'agrégation et la gestion des valeurs manquantes.
- [**DSSC-6**](https://moodle.univ-tln.fr/course/view.php?id=4840) *Approximations d'équations différentielles*: étude des schémas numériques pour l'approximation de problèmes de Cauchy.
Ce polycopié est associé au sixième et dernier cours, initiant à l'étude et à l'implémentation de schémas numériques pour l'approximation de problèmes de Cauchy.
## Déroulement du cours DSSC-6 : Schémas numériques pour les problèmes de Cauchy
Une **équation différentielle ordinaire** (EDO) est une équation mathématique impliquant une ou plusieurs fonctions d'une variable indépendante ainsi que leurs dérivées. On parle d'**équation ordinaire** par opposition aux **équations différentielles partielles** (EDP), qui portent sur des fonctions de plusieurs variables indépendantes et incluent leurs dérivées partielles.
Les EDO et les EDP sont des outils puissants pour modéliser divers phénomènes naturels et systèmes issus de domaines tels que la physique, la biologie, l'économie ou l'ingénierie. En effet, dans de nombreuses applications réelles, les fonctions représentent des grandeurs physiques, les dérivées traduisent leurs variations, et l'équation établit un lien entre ces éléments. Ce rôle fondamental explique l'importance des équations différentielles dans l'étude des systèmes dynamiques et de nombreuses disciplines scientifiques.
En mathématiques pures, l'étude des équations différentielles se concentre principalement sur leurs **solutions**, c'est-à-dire l'ensemble des fonctions qui satisfont l'équation. Seules les équations les plus simples admettent des **solutions explicites** sous forme de formules. Cependant, même lorsque l'on ne peut pas résoudre une équation de manière analytique, il est souvent possible d'analyser certaines **propriétés** de ses solutions. Dans les cas où une solution exacte est hors de portée, des **méthodes numériques** permettent d'obtenir des approximations avec une précision contrôlée.
<!-- <div class="image-container">
{fig-align="center" width="100%"}
</div> -->
### Objectifs
Ce cours se concentre sur l'étude et l'implémentation de **schémas numériques pour approcher la solution de problèmes de Cauchy**. Un problème de Cauchy est un problème de valeur initiale pour une EDO. Il consiste à trouver une solution qui satisfait une équation différentielle et une condition initiale. Les méthodes numériques pour résoudre les problèmes de Cauchy sont basées sur la discrétisation de l'intervalle de temps et sur l'approximation de la solution sur cet intervalle. Les méthodes les plus courantes sont les schémas multi-pas linéaires, les schémas Runge-Kutta et les schémas prédicteur-correcteur.
### Plan des séances
- CM **6 séances de 2 heures** dans le bâtiment M
- TP **5 séances de 3 heures** dans le bâtiment U1
- TD **2 séances de 2 heures** dans le bâtiment M
Tous les supports de cours sont fournis sous forme de notebooks Jupyter et téléchargeables depuis la page en annexe (menu a gauche ci-contre).
### Contenu du cours
- Fondements théoriques des problèmes de Cauchy bien posés mathématiquement, bien posés numériquement et bien conditionnés.
- Construction et analyse de schémas numériques :
- Schémas multi-pas linéaires (MPL), notamment les schémas des type Adams-Moulton, Adams-Bashford, Nyström, Milne-Simpson et BDF.
- Schémas Runge-Kutta (RK).
- Schémas prédicteur-correcteur (PC).
- Concepts étudiés :
- Consistance et ordre de consistance (pour les schémas multipas et RK).
- Zéro-stabilité (pour les schémas multipas).
- Convergence.
- Absolue-stabilité (pour les schémas à un pas et pour les schémas RK).
Lors des séances de travaux pratiques il faudra :
- implémenter chaque schéma étudié en cours et vérifier l'ordre théorique de convergence sur des problèmes pour lesquels la solution exacte est connue (la solution exacte pourra être obtenue par exemple via `sympy`) ;
- implémenter les schémas pour des systèmes d'EDO d'ordre 1 (ou des équations d'ordre supérieur à 1 après les avoir écrit comme des systèmes d'EDO d'ordre 1), avec si possible la recherche et la vérification de la conservation d'invariants théoriques.
### Prérequis
- Connaissances de base en **analyse numérique** : interpolation, intégration numérique, zéros d'une fonction, etc. ; cf. [**DSSC-2**](https://moodle.univ-tln.fr/course/view.php?id=4671) ;
- **Bases de Python** : types primitifs (int, float, str), structures de données (listes, tuples, dictionnaires), conditions, boucles, fonctions, modules (numpy, matplotlib.pyplot) ; cf. [**DSSC-1**](https://moodle.univ-tln.fr/course/view.php?id=4968) ;
- Manipulation de **Notebook Jupyter** : cellules python *vs* markdown, écriture de formules mathématiques en LaTeX, exécution, sauvegarde, export, etc. ; cf. [**DSSC-2**](https://moodle.univ-tln.fr/course/view.php?id=4671) ;
- Connaissances de base de **NumPy** : manipulation de tableaux et extraction de sous-tableaux par *slices* ; cf. [**DSSC-4**](https://moodle.univ-tln.fr/course/view.php?id=6844).
Pour manipuler les notebooks Jupyter, on utilisera l'éditeur [VS Codium](https://vscodium.com/) (au lieu de Jupyter Notebook dans le navigateur). Dans les salles de TP, Python 3.12 est installé.
**Librairies Python utilisées**
- `numpy` pour l'implémentation des schémas numériques.
- `matplotlib.pyplot` pour la visualisation des graphiques.
- Comparaison des résultats avec :
- la solution exacte obtenue via `sympy`.
- les solutions approchées obtenues avec `scipy.integrate`.
<!--  -->
### Évaluation
Le cours est évalué par un contrôle continu et un contrôle terminal.
- **Contrôle continu (CC)** : ~mardi 24 mars 2026~ mardi 7 avril 2026, durée 2 heures, en salle de TP.
- **Contrôle terminal (CT)** : mardi 28 avril 2026, durée 2 heures, en salle de TP.
Les deux évaluations comportent des exercices sur l'étude mathématique et l'implémentation en Python de schémas numériques avec vérification de leurs performances théoriques sur des problèmes de Cauchy donnés.
Il faudra déposer sur Moodle un notebook **`.ipynb`** contenant l'étude mathématique (rédigée en Markdown), les implémentations en Python des schémas numériques demandés ainsi que l'analyse des résultats obtenus.
Vous pourrez utiliser le polycopié, les notebooks fournis dans la section "Sources" et vos notes de cours comme base pour vos implémentations, mais assurez-vous de bien comprendre chaque étape et d'adapter les réponses et le code selon les exigences spécifiques des exercices.
### Informations système
quarto-executable-code-5450563D
```python
import sys # only needed to determine Python version number
print(f"Python version: {sys.version}")
import numpy as np # only needed to determine Numpy version number
print(f"Numpy version: {np.__version__}")
import scipy # only needed to determine Scipy version number
print(f"Scipy version: {scipy.__version__}")
from datetime import datetime
print("Last Updated On:", datetime.now())
```