Vous êtes sur la page 1sur 2

A. OUATIZERGA - Fac de Physique - Déc.

2023

TP 3 – Equations différentielles
Problème de Cauchy
Ecrire l’équation différentielle sous la forme suivante :

𝑦 ′ = 𝑓(𝑡, 𝑦(𝑡))
{ ∀ 𝑡 𝜖 [𝑡0 , 𝑡0 + 𝑇]
𝑦(𝑡0 ) = 𝑦0

La méthode d’Euler implicite :

Le de développent limité de f(t,y) par rapport


à t au premier ordre :

𝑦(𝑡 + Δ𝑡) = 𝑦(𝑡) + Δ𝑡𝒇(𝒕, 𝒚)


Si on calcule la suite des : 𝑦1 = 𝑦0 , 𝑦2 =
𝑦0 + Δ𝑡 ∗ 𝑦(𝑡1 + Δ𝑡), 𝑦3 = 𝑦1 + Δ𝑡 ∗
𝑦(𝑡2 + Δ𝑡) …. 𝑦𝑛 = 𝑦0 + Δ𝑡 ∗ 𝑦(𝑡𝑛−1 + Δ𝑡)

On aurait calculé les valeurs de y sur les tous


les points de l’intervalle de t. le vecteur y est
la solution numérique de l’équation
différentielle dans l’intervalle d’intégration.

Le schéma numérique pour le calcul de y est le suivant :

𝑦𝑖+1 = 𝑦𝑖 + Δ𝑡 𝒇(𝒕𝒊 , 𝒚𝒊 ) 𝑖 = 1, 𝑛
𝑡𝑖 , 𝑖 = 1, 𝑛 + 1 𝑟𝑒𝑝𝑟é𝑠𝑒𝑛𝑡𝑒 𝑙𝑒𝑠 𝑑é𝑏𝑢𝑡𝑠 𝑑𝑒𝑠 𝑠𝑜𝑢𝑠 𝑖𝑛𝑡𝑒𝑟𝑣𝑎𝑙𝑙𝑒𝑠
L’approximation est d’autant plus proche de la solution réelle que le nombre de points est grand
(sous intervalle Δ𝑡 petit).

La méthode d’Euler explicite :


Une autre variété de la méthode pour réaliser la même chose.
Prendre la borne supérieure de l’intervalle [𝒕𝒊 , 𝒕𝒊+𝟏] pour calculer l’air sous la courbe :
𝒚(𝒕 + 𝚫𝒕) = 𝒚(𝒕) + 𝚫𝒕𝒇(𝒕 + 𝚫𝒕, 𝒚)
Et donc le schéma numérique sera :

𝒚𝒊+𝟏 = 𝒚𝒊 + 𝚫𝒕 𝒇(𝒕𝒊+𝟏 , 𝒚𝒊 ) 𝒊 = 𝟏, 𝒏 n: nbre d intervalles


A. OUATIZERGA - Fac de Physique - Déc. 2023

Algorithme :

1. Définir t0, tf, dt, y0


2. Définir la fonction à deux variables : f (t, y)
3. Définir un vecteur discrétisation de l’axe du temps entre t0 et tf par pas de dt;
4. y(1)=y0; % condition initiale, donnée du problème
5. déduire n = nombre de points : n= length(t)
6. Faire une boucle pour calculer tous les solutions yi
7. % n points donc n-1 intervalles ainsi i+1 ne doit donc
pas dépasser n
Pour i =1 à n-1

𝑦𝑖+1 = 𝑦𝑖 + 𝑑𝑡 ∗ 𝒇(𝒕𝒊 , 𝒚𝒊 ) % application du schéma numérique

fait
8. Tracer y(t)

Travail demandé
Soit l’équation différentielle du 1er ordre suivante :

𝑦 ′ = −𝑡𝑦 0≤𝑡≤5 𝑦(0) = 1

1) Intégrer manuellement l’équation différentielle


2) Dans un script, implémenter l’algorithme d’Euler et intégrer numériquement prenez
un pas de temps h=0,1 puis un h=0,01
3) Tracer les deux courbes correspondant pour comparer.
4) Convertir le script en une fonction matlab/Octave et la réexécuter
La fonction doit avoir la déclaration suivante :
𝑒𝑢𝑙𝑒𝑟2(𝑓, 𝑦0, 𝑎, 𝑏, ℎ)
𝑓 = @(𝑡, 𝑦) … . 𝑎𝑣𝑒𝑐 𝑡 ∈ [𝑎, 𝑏] 𝑒𝑡 ℎ = 0.1, 0.01
𝑦0 ∶ 𝑙 𝑣𝑎𝑙𝑒𝑢𝑟 𝑖𝑛𝑖𝑡𝑖𝑎𝑙𝑒 𝑑𝑒 𝑦

5) Dans un nouveau script, utiliser les trois fonctions pour comparer leurs résultats
pour des pas de temps h=0.1 et h=0.01
6) Application : ré exécuter le script pour l’équation différentielle suivante :

𝑦 ′ = 𝑦 + 𝑒 2𝑡 𝑡 ∈ [0, 10] 𝑦0 = 1

Vous aimerez peut-être aussi