Implémentation basique
Contents
La page ci-présente existe en version notebook téléchargeable grâce au bouton (choisir le format
.ipynb
). On rappelle qu’l faut ensuite l’enregistrer dans un répertoire adéquat sur votre ordinateur (capa_num
par exemple dans votre répertoire personnel) puis lancer Jupyter Notebook depuis Anaconda pour accéder au notebook, le modifier et exécutez les cellules de code adéquates.
3.4. Implémentation basique#
Si vous vous sentez suffisamment à l’aise, vous pouvez passer directement à l’étude approfondie.
3.4.1. Définition des fonctions pour le schéma d’Euler#
On va commencer par définir la fonction
Attention : Même si numpy
pour intégrer une équation différentielle.
Exercice A
Dans la cellule ci-après, vous devez:
Importer les deux bibliothèques
numpy
etmatplotlib.pyplot
Créer deux fonction
f_libre
etf_echelon
prenant deux argumentst
etu
(correspondant à un instantet à ) et qui renvoie la valeur pour chaque cas (régime libre et échelon de tension) (u est la tension aux bornes du condensateur comme dans l’étude présentée dans l’exemple). Vous pouvez définir et comme des variables globales que vous utilisez dans les fonctions.
Click to show
"""Ne pas oublier d'importer les bibliothèques scientifiques et d'éxécuter la cellule."""
3.4.2. Implémentation du schéma d’Euler#
3.4.2.1. Cas du régime libre#
L’implémentation suivante est à bien comprendre et à savoir refaire sans guide. Elle est la base des intégrations numériques. Dans un premier temps, on prendra
Exercice B : Avec une boucle for
Ecrire une suite d’instructions qui:
(Préparation) Définit le pas
h
, la constante de tempstau
, le temps finalt_f
et le nombre d’intégrationN
à réaliser.(Initialisation) Créer deux listes vide
tkf
etukf
dans lesquels on stockera les valeurset puis ajouter à ces listes les conditions initiales et . On prendra et . (Boucle) Dans une boucle for, réalise plusieurs fois l’intégration numérique avec le pas
h
et la fonctionf_libre
. A chaque fois, vous devrez calculer la valeurque vous stockerez dans la liste ukf
puis le nouveau tempsque vous stockerez dans la liste tkf
. Bien réfléchir aux bornes de la boucle.(Terminaison) Pour une utilisation plus simples ensuite des listes de valeurs
tkf
etukf
. Transformer les deux listes en deux vecteursnumpy
.
Click to show
# On rappelle que la fonction f_libre est accessible et que les bibliothèques scientifiques ont été créés.
Exercice C : Avec une boucle while
Ecrire une suite d’instructions qui:
(Préparation) Définit le pas
h
, la constante de tempstau
, le temps finalt_f
.(Initialisation) Créer deux listes vide
tkw
etukw
dans lesquels on stockera les valeurset puis ajouter à ces listes les conditions initiales et . On prendra et . (Boucle) Dans une boucle while, réalise plusieurs fois l’intégration numérique avec le pas
h
et la fonctionf_libre
. A chaque fois, vous devrez calculer la valeurque vous stockerez dans la liste ukw
puis le nouveau tempsque vous stockerez dans la liste tkw
. Bien réfléchir à la condition de sortie de la boucle.(Terminaison) Pour une utilisation plus simples ensuite des listes de valeurs
tkw
etukw
. Transformer les deux listes en deux vecteursnumpy
.Tracer
pour chaque intégration (for et while). Tracer sur le même graphique la solution analytique pour comparaison (utilisez les comme abscisses). N’oubliez pas de légender la figure.
On rappelle que la solution analytique est:
Note : Certaines étapes pourraient être raffinées (création du vecteur temps par exemple).
Click to show
# On rappelle que la fonction f_libre est accessible et que les bibliothèques scientifiques ont été créés.
3.4.2.2. Influence du pas d’intégration#
Exercice D :
Reprendre la suite d’instructions précédente (avec for ou while peu importe) pour
; ; ; . Réaliser le tracé pour chaque cas ainsi que la comparaison avec la solution analytique. En déduire comment choisir correctement le pas d’intégration.
3.4.2.3. Cas de la réponse à un échelon de tension.#
Exercice E :
Reprendre la suite d’instructions précédente (avec for ou while peu importe) avec un pas d’intégration correctement et obtenir la solution numérique pour un échelon de tension (
et ). Le comparer à la solution analytique.
On rappelle que la solution analytique est:
La nécessité de copier-coller le même code pour chaque test montre qu’il serait bien plus efficace de mettre ces instructions dans une fonction qu’on réutiliserait plusieurs fois. C’est l’objectif de la première partie de l’étude complète avant de l’utiliser pour la réponse à une entrée plus complexe : une rampe de tension.