• Aucun résultat trouvé

y = y +h*f(t,y) t = t + h Les données de Cauchy sont entrées par : t, y = eval(input("Instant initial, valeur initiale :&#34

N/A
N/A
Protected

Academic year: 2022

Partager "y = y +h*f(t,y) t = t + h Les données de Cauchy sont entrées par : t, y = eval(input("Instant initial, valeur initiale :&#34"

Copied!
7
0
0

Texte intégral

(1)
(2)
(3)
(4)

:

Nous présentons à la page suivante un exemple de script écrit en python3 pour résoudre l'équation

par la méthode d'Euler. Un script est un fichier qui contient les instructions qui seront exécutées par python3 (le nom du fichier est toujours de la forme nom.py de façon à être reconnu par python3). Il est commode d'utiliser l'éditeur IDLE pour écrire un script et pour l'exécuter (il suffit d'utiliser la touche F5).

Le coeur du programme est la traduction de l'algorithme

en la boucle : for i in range(0,N) :

y = y +h*f(t,y) t = t + h

Les données de Cauchy sont entrées par :

t, y = eval(input("Instant initial, valeur initiale :")) et le champ de vecteur f est défini par :

def f(t,x) :

return t - t*x

Les commandes T = [t] et Y = [y] créent des listes (suites finies) de longueur variable, qui correspondent respectivement à (t , t , ... , t ) et (y , y , ..., y ). Au stade où ces listes sont crées (T = [t] et Y = [y]), chacune d'entre d'elles ne comporte qu'un seul élément (respectivement t et y), qui sont les valeurs entrées initialement (autrement ces listes correspondent alors au données de Cauchy).

Ces listes sont allongées à chaque itération de la boucle lorsque les commandes Y.append(y) et T.append(t) sont exécutées : ces commandes ont pour effet d'ajouter les valeurs courantes de de t et y à la fin de, respectivement, T et Y.

Dernière étape de l'algorithme : après avoir importé la totalité des commandes du

"module" "matplotlib.pyplot", on crée la figure avec les valeurs de T en abscisse et les valeurs de Y en ordonnée par la commande plot(T,Y,'k-')

(5)

# Discrétisation d'une équation différentielle par la méthode d'Euler def f(t,x) :

return t - t*x

t,y = eval(input("Instant initial, valeur initiale : "))

# y = eval(input("valeur initiale : "))

L = eval(input("longueur de l'intervalle de temps : ")) N = eval(input("nombre d'itérations : "))

T = [t]

Y = [y]

h = L/N

for i in range(0, N):

y = y + h*f(t,y) t = t + h Y.append(y) T.append(t)

# Impression

from matplotlib.pyplot import * plot(T,Y,'k-')

xlabel('t') ylabel('y(t)')

# axis('equal') # pour forcer la base à être orthonormée show()

(6)
(7)

Mardi 18 mai : examen, 9 h - 12 h Encore un cours le 4 ou le 11 mai, à préciser

Références

Documents relatifs

On applique une tension sinusoïdale u de valeur efficace U = 230 V et de fréquence f=50 Hz aux bornes d'une bobine parfaite d'inductance L = 1,0 H.. 1- Calculez

On applique une tension sinusoïdale u de valeur efficace U = 230 V et de fréquence f=50 Hz aux bornes d'une bobine parfaite d'inductance L = 1,0 H.. 1- Calculez

2 Une unité de mesure du taux d’activité d’une ligne de communication 3 Une unité de mesure du taux d’occupation d’une ligne de communication 4 Une unité de mesure de

La consommation d’eau est plus ou moins importante selon que l’on vit dans un pays pauvre ou dans un pays riche. Nous pouvons essayer de préserver l’eau de la planète en faisant des

L’interférence de l’évaluation des symptômes avec l’existence d’un syndrome fibromyalgique (qui peut représenter un diagnostic différentiel d’une atteinte..

Pour les années à venir, nous entrevoyons 2 axes de développement potentiel de la TMO chez l’adulte : l’élar- gissement des indications, premièrement, aux patients

Écris une méthode analogue permettant de construire le point C' tel que OC ' = OA.. OB avec OA 

Écris une méthode analogue permettant de construire le point C' tel que OC ' = OA.. OB avec OA 