• Aucun résultat trouvé

⎧⎨⎪⎩⎪ dvt dvt dt dt () () n + 1 + = = t − kmv v n + n kmv 1 + 2 = () F 2 t t n () ( v t + = n , + Δ g t n tv g ) ×Δ = F t ( v , t )

N/A
N/A
Protected

Academic year: 2021

Partager "⎧⎨⎪⎩⎪ dvt dvt dt dt () () n + 1 + = = t − kmv v n + n kmv 1 + 2 = () F 2 t t n () ( v t + = n , + Δ g t n tv g ) ×Δ = F t ( v , t )"

Copied!
2
0
0

Texte intégral

(1)

TP Info Intégration numérique 2018/19

O.KELLER – TSI1 Page 1 sur 2 Lycée Louis Vincent Metz

TP d’informatique Méthode d’Euler

But du TP :

Résoudre une équation différentielle avec Python Effectuer une représentation graphique avec Python

Problématique :

On souhaite résoudre numériquement l’équation différentielle régissant la vitesse v d’une particule soumise à un frottement fluide quadratique (chute libre d’un objet non aérodynamique) :

dv t

( )

dt + k

mv2

( )

t =g (*)

où g = 9,81 m/s2 ; m = 2 kg et k = 0,01 USI. On considère de plus v(0) = 0 m/s.

Pour résoudre ce type d’équation, l’informatique utilise une méthode de calcul par propagation, appelée méthode d’Euler.

Rappel de la méthode d’Euler

L’équation différentielle (*) peut se réécrire sous la forme : dv t

( )

dt =− k

mv2

( )

t +g=F(v,t)

En partant de la condition initiale, on peut alors construire la fonction v(t) en assimilant la fonction à sa tangente au point n. On passe ainsi du point n au point n+1 par la procédure suivante :

tn+1=tn+Δt vn+1 =vn+F(vn,tn)× Δt

⎧⎨

où Δt représente l’incrément temporel. Plus Δt sera faible (donc le nombre de point de calcul élevé), plus ⎩⎪

l’approximation sera efficace.

Travail demandé :

1ere étape :

Créer un programme python, y importer la bibliothèque matplotlib et y définir les paramètres de calcul : - Valeur de g, m et k.

- Définir un nombre N de points de calcul (50 pour commencer) et une durée maximale pour le calcul de v (10 secondes pour commencer).

- Faire calculer la valeur de l’incrément Δt.

2e étape :

- Créer la fonction F(v,t) comme indiquée au début de l’énoncé.

- Créer une fonction euler(F, cond_init) où cond_init est la condition initiale de v, qui réalise le travail suivant :

(2)

TP Info Intégration numérique 2018/19

O.KELLER – TSI1 Page 2 sur 2 Lycée Louis Vincent Metz

o Déterminer et stocker les valeurs de t dans une liste T par incrémentation successive.

o Déterminer et stocker la valeur de v(t) dans une liste V o Retourner les listes sous forme d’un tuple (T,V) 3e étape :

- Créer une fonction courbe(x,y) où x et y sont des listes de nombres de taille identique, qui permet de tracer la courbe y en fonction de x. On utilisera pour cela la fonction plot(,). (cf TP précédents) - Utiliser cette fonction pour tracer la représentation graphique de v(t).

- Observer l’évolution du graphique en fonction du nombre de points de calcul utilisé.

4e étape :

- En réutilisant les méthodes précédentes, écrire une fonction position(v, Ν, Δt, cond_init) script permettant de déterminer la position z(t) de la particule à partir de la liste v en utilisant la méthode des rectangles.

- Représenter le graphique z(t).

5e étape : Utilisation des fonctions prédéfinies de Python : Ouvrez le programme EDordre1 placé sur le réseau.

- Comme précédemment, y définir les valeurs des différents paramètres et un nombre N de point de calcul.

- Définir une fonction F(v,t) comme dans la partie précédente.

- Définir une liste t de N valeur s’étendant de 0 à tmax.

- Définir la condition initiale v0

- Utiliser la fonction odeint pour résoudre. (se référer à l’aide).

- Observer la forme des solutions. Comment récupérer les différentes valeurs de v(t) ? - Tracer le graphique obtenu.

- Modifier le script précédent pour déterminer la position z(t) et tracer son graphique.

Références

Documents relatifs

c) Comme l'intensité mesurée est positive, les électrons (qui ont un sens de parcours opposé au sens conventionnel du courant) partent donc de l'armature supérieure pour arriver

En mathématiques, une suite de Syracuse est une suite d'entiers naturels définie de la manière suivante : le premier terme est un nombre entier plus grand que zéro ;

En mathématiques, une suite de Syracuse est une suite d'entiers naturels définie de la manière suivante : le premier terme est un nombre entier plus grand que zéro ;

ANDERSSON, Integrals of moduli of regular analytic functions.. which is an harmonic function of z, regular in

[r]

[r]

Dans le cas d’ampli-op basés sur des transistors bipolaires (Figure 2), la tension de décalage d'entrée a pour origine la différence entre les tensions Vbe (environ 0,6V) des

[r]