Implémentation complète
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.5. Implémentation complète#
3.5.1. Implémentation du schéma d’Euler#
Exercice 1
Commencer par importer les bibliothèques scientifiques utiles : numpy, matplotlib.pyplot
Ecrire une fonction
euler
qui prend en arguments :
une variable
fqui sera une fonctionun flottant
y0correspond à y(t=0)un flottant
hqui sera le pas \(h\) d’intégrationdeux flottants
t0ettfdonnant les temps initiaux et finaux de l’intervalle sur lesquels on va intégrer le signal (Note :tfne sera pas forcément atteint)et qui renvoie deux vecteurs numpy :
le premier contient les temps \(t_k\) où on a évaluer la fonction (on commence à
t0)le second contient les valeurs estimées de \(y(t_k)\) (\(y_k\)).
"""Ne pas oublier d'importer les bibliothèques scientifiques"""
3.5.2. Application au régime libre et à l’échelon de tension.#
On prendra \(\tau = 1\). Il s’agit de vérifier que la fonction précédente fonctionne correctement. Si vous avez fait la comparaison dans l’étude de base, vous pouvez réutiliser une bonne partie du code pour le tracé graphique en choisissant bien le nom de vos variables.
Exercice 2
Préciser l’expression de la fonction \(f(t, y)\) dans le cas d’un régime libre et d’un échelon de tension (\(E = 1V\)) puis implémenter deux fonctions
f_libreetf_echeloncorrespondant à ces fonctions (mettre les argumentstetymême s’ils n’interviennent pas dans la fonction).Définir deux fonctions
sol_libreetsol_echelonqui prennent comme argumentt,t1ety0et qui renvoient respectivement les solutions pour un régime libre puis pour un échelon de tension avec comme condition initiale \(y(t1) = y0\).Utiliser le schéma d’Euler que vous avez implémenté pour résoudre numériquement le cas d’un régime libre et d’un échelon de tension. Choisir un pas d’intégration \(pas = \frac{1}{1000} \tau\)
Tracer sur le même graphique la réponse numérique et la réponse analytique pour un régime libre puis pour un échelon de tension.
"""La fonction euler que vous avez défini précédemment est accessibles"""
3.5.3. Erreur et pas d’intégration#
Inutile de faire cette partie si vous l’avez dans l’étude de base.
Exercice 3
Reprendre l’exercice précédent mais en affichant deux graphiques (1 colonne et deux lignes) : les solutions analytique et numérique précédentes sur le premier et la valeur absolue des écarts entre les deux solutions sur le second graphique.
Etudier l’évolution des erreurs en fonction du pas d’intégration (commencer par un pas égal à \(\tau\) puis diviser successivement par 5 le pas).
Pour vous aider sur la manière de tracer une fenêtre multi-graphique, utiliser cet élément de cours.
Informations utiles:
Vous pouvez tout à fait créer un tracé (
ax[0].plot(...)) à l’intérieur d’une boucle pour superposer plusieurs courbes.