0% ont trouvé ce document utile (0 vote)
6 vues7 pages

Résolution d'Équations Différentielles Numériques

Le document présente un TD sur la résolution numérique des équations différentielles, incluant des exercices utilisant les méthodes d'Euler, du point milieu, d'Euler modifié et de Runge-Kutta d'ordre 4. Chaque méthode est illustrée par des calculs et des algorithmes, et les résultats sont comparés à une solution analytique. Un exercice supplémentaire traite de la détermination du courant électrique dans un circuit, en soulignant l'importance du choix du pas pour garantir la précision des résultats.

Transféré par

imensaheb3
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues7 pages

Résolution d'Équations Différentielles Numériques

Le document présente un TD sur la résolution numérique des équations différentielles, incluant des exercices utilisant les méthodes d'Euler, du point milieu, d'Euler modifié et de Runge-Kutta d'ordre 4. Chaque méthode est illustrée par des calculs et des algorithmes, et les résultats sont comparés à une solution analytique. Un exercice supplémentaire traite de la détermination du courant électrique dans un circuit, en soulignant l'importance du choix du pas pour garantir la précision des résultats.

Transféré par

imensaheb3
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université A.

Mira de BEJAIA
Faculté de Technologie, Département GE
Module UEF 1122
Année 2025/2026

TD n°2
Résolution Numérique des Equations Différentielles

Exercice 1
Trouver par les méthodes (Euler, point milieu, Euler modifié et Runge-kutta d’ordre 4) la solution de l’équation
suivante:
 y (t ) = − y (t ) + t + 1
 on prend h = 0.1
 y (0) = 1
• Sur un tableau, écrire les résultats obtenus pour chaque méthode (6 itérations) en calculant l’erreur relative
sachant que la solution analytique est : y(t ) = e−t + t .
• Donner l’algorithme de chaque méthode.

Exercice 2

• Trouver la solution de l’équation différentielle suivante :


 y (t ) = 2ty (t ) + 2 y (t )

 y (0) = 1, y (0) = 0
• Proposer l’algorithme de résolution.

Exercice 3
Soit le système électrique schématisé par la figure (fig.1).

Fig.1
• Proposer la procédure qui permet de trouver le courant électrique aux instants 0.1s et 0.2s et 0.3s,
sachant que la condition initiale au problème est i(o)=0A.

Mme ABDELLI.R Page 1


Université [Link] de BEJAIA
Faculté de Technologie, Département GE
Module UEF 1122
Année 2025/2026

RAPPEL

 ( t0 , y0 ) donné
• Méthode d’Euler : 
 yn +1 = yn + hf (tn , yn )
 ( t0 , y0 ) donné

 h
Méthode du point milieu :  yn +1 = yn + 2 f ( tn , yn )
*

  h 
 yn +1 = yn + hf  tn + , yn* +1 

  2 
 ( t0 , y0 ) donné

 yn +1 = yn + hf ( tn , yn )
*
• Méthode d’Euler-Cauchy (Euler modifié): 
 h
(
 yn +1 = yn + 2 f (tn , yn ) + f (tn +1 , yn +1 )
*
)
 k1 = hf (tn , yn )
 k
 h
k2 = hf (tn + , yn + 1 )
 2 2
 h k
 k3 = hf (tn + , yn + 2 )
• Méthode de Runge-Kutta d’ordre4:  2 2
 k4 = hf (tn + h, yn + k3 )

 y = y + 1 ( k + 2k + 2k + k )
 n +1 n
6
1 2 3 4

 tn +1 = tn + h

Solution

Exo 1
L’objectif de cet exercice est de comparer entre les différentes méthodes de résolution des équations différentielles
les plus utilisées commençant par la méthode d’Euler qui est une méthode classique est basique mais qui reste
moins précise par rapport aux deux autres méthodes d’Euler avancées à savoir la méthode du point milieu et
d’Euler modifié. Ces méthodes sont précises mais leur principal inconvénient est la dépendance vis-à-vis le pas du
calcul, à l’inverse de la méthode de Runge Kutta qui est moins sensible au choix du pas puisqu’elle est d’ordre
supérieur de précision, ce qui nous permettra de choisir un pas assez grand pour R-K-4 par rapport aux 2 autres
méthodes d’Euler.

Méthode d’Euler

y(0.1) y(0) + 0.1(− y(0) + 0 + 1) 1


y(0.2) y(0.1) + 0.1(− y(0.1) + 0.1 + 1) 1.01

Méthode d’Euler modifié

Mme ABDELLI.R Page 2


Université [Link] de BEJAIA
Faculté de Technologie, Département GE
Module UEF 1122
Année 2025/2026

 y* (0.1) y (0) + 0.1(− y (0) + 0 + 1) 1



 0.1
 y (0.1) y (0) + (− y (0) + 0 + 1) + (− y* (0.1) + 0.1 + 1 1.005
 2 
 y* (0.2) y (0.1) + 0.1(− y (0.1) + 0.1 + 1) 1.0145

 0.1
 y (0.2) = y (0.1) + (− y (0.1) + 0.1 + 1) + (− y* (0.2) + 0.2 + 1 1.019025
 2

Méthode du point milieu


 y* (0.1) y (0) + 0.05(− y (0) + 0 + 1) 1

  * 0.1 
 y (0.1) y (0) + 0.1  − y (0.1) + 2 + 1 1.005
  

 y (0.2) y (0.1) + 0.05(− y (0.1) + 0.1 + 1) 1.00975
*


 * 
 y (0.2) y (0.1) + 0.1  − y (0.2) + 0.15 + 1 1.019025

Méthode de Runge Kutta d’ordre 4


Pour y(0.1)

k1 = 0.1(− y (0) + 0 + 1) = 0



k 2 = 0.1  −( y (0) + 0 ) + 0.05 + 1 = 0.005
  2 

  0.005 
k 3 = 0.1  −( y (0) + ) + 0.05 + 1 = 0.00475
  2 
k 4 = 0.1 −( y (0) + 0.00475) + 0.1 + 1 = 0.009525

 1
 y (0.1) y (0) +  0 + 2(0.005 + 0.00475) + 0.009525 = 1.0048375
 6
Pour y(0.2)

k1 = 0.1(− y (0.1) + 0.1 + 1) = 0.00951625



k 2 = 0.1  −( y (0.1) + k1) + 0.15 + 1 = 0.014040437
  2 

  k2 
k 3 = 0.1  −( y (0.1) + ) + 0.15 + 1 = 0.013814228
  2 
k 4 = 0.1 −( y (0.1) + k 3) + 0.2 + 1 = 0.018134827

 1
 y (0.2) y (0.1) +  0 + 2(k 2 + k 3) + k 4 = 1.018730901
 6

On continue les calculs et on trace le tableau :


Euler Euler modifié Point milieu R-K-4 Solution analytique
Y(0.1) 1 1.005 1.005 1.0048375 1.004837418036
Y(0.2) 1.01 1.019025 1.019025 1.018730901406 1.018730753078
Y(0.3) 1.029 1.041217625 1.041217625 1.040818422001 1.040818220681

Mme ABDELLI.R Page 3


Université [Link] de BEJAIA
Faculté de Technologie, Département GE
Module UEF 1122
Année 2025/2026

Y(0.4) 1.0561 1.070801950625 1.070801950625 1.070320288917 1.070320046035


Y(0.5) 1.09049 1.107075765316 1.107075765316 1.106530934423 1.106530659712
Y(0.6) 1.131441 1.149403567611 1.149403567611 1.148811934376 1.148811636094

On peut remarquer que la méthode de R-K-4 est la plus précise (méthode d’ordre 4) , les deux
méthodes d’Euler modifié et du point milieu donnent des résultats très satisfaisants (méthodes
d’ordre 2) mais la méthode d’Euler n’est pas du tout précise (méthode seulement d’ordre 1).

Les algorithmes
On déclare une fonction f dans un script à part (le script doit être
appelé f) :

function a=f(t,y)
a=-y+t+1;
end

Les scripts principaux correspondant à chaque méthode :

• Méthode d’Euler
a=input('donner a=') %On donne les bornes de l’intervalle de temps
b=input('donner b=')
n=input('donner n=') %on précise le nombre de points
h=(b-a)/n; % on calcule le pas
y(1)=input('donner la condition initiale')
t(1)=a;
for i=2:n+1 %la boucle de remplissage des vecteurs
t(i)=t(i-1)+h;
y(i)=y(i-1)+h*f(t(i-1),y(i-1));
end
plot(t,y)
fprintf(' %6.12f',y)

• Méthode d’Euler modifié


a=input('donner a=')
b=input('donner b=')
n=input('donner n=')
h=(b-a)/n;
y(1)=input('donner la condition initiale')
t=a:h:b;
for i=2:n+1
y0=y(i-1)+h*f(t(i-1),y(i-1));
y(i)=y(i-1)+(h/2)*(f(t(i-1),y(i-1))+f(t(i),y0));
end
plot(t,y)
fprintf(' %6.12f',y)

• Méthode du point milieu


a=input('donner a=')
b=input('donner b=')
n=input('donner n=')
h=(b-a)/n;
y(1)=input('donner la condition initiale')
t=a:h:b;
for i=2:n+1
y0=y(i-1)+(h/2)*f(t(i-1),y(i-1));

Mme ABDELLI.R Page 4


Université [Link] de BEJAIA
Faculté de Technologie, Département GE
Module UEF 1122
Année 2025/2026

y(i)=y(i-1)+h*(f(t(i-1)+(h/2),y0));
end
plot(t,y)

fprintf(' %6.12f',y)

• Méthode de Runge-Kutta
a=input('donner a=')
b=input('donner b=')
n=input('donner n=')
h=(b-a)/n;
y(1)=input('donner la condition initiale')
t=a:h:b;
for i=2:n+1
k1=h*f(t(i-1),y(i-1));
k2=h*f((t(i-1)+h/2),(y(i-1)+k1/2));
k3=h*f((t(i-1)+h/2),(y(i-1)+k2/2));
k4=h*f(t(i),(y(i-1)+k3));
y(i)=y(i-1)+(k1+2*k2+2*k3+k4)/6;

end
plot(t,y)
fprintf(' %6.12f',y)

Exo3
Dans cet exercice, on étudiera un simple circuit électrique dont la recherche du courant
électrique est demandée.
L’écriture de l’équation régissant le fonctionnement de ce circuit nous donne le problème
différentiel de Cauchy suivant :
 di (t )
 = 100 − 10i (t )
 dt

i (0) = 0
Calculer la valeur du courant à l’instant t=0.1s donc i(0.1) ne dit pas automatiquement que le
pas à choisir est 0.1s, la première étape de résolution est le choix d’une précision du calcul
(eps).
On sait bien qu’on ne possède pas la formule donnant la précision en fonction du pas, mais on
sait aussi que :

eps = fonction(hordre )

C’est-à-dire, la précision choisie est une fonction du pas à la puissance de l’ordre de la méthode
choisie, voici un exemple :
On choisit par exemple : eps = 10−16 , il nous reste à déterminer le pas ! mais le choix du pas
dépendra de la méthode choisie !
• Si on choisit la méthode d’Euler modifié ou point milieu, l’ordre=2 donc on prend un
pas : h  10−8 pour garantir une précision avoisinant la précision choisie
• Si on choisit la méthode de Runge Kutta, l’ordre=4 donc on prend un pas : h  10−4 pour
garantir une précision avoisinant la précision choisie

Mme ABDELLI.R Page 5


Université [Link] de BEJAIA
Faculté de Technologie, Département GE
Module UEF 1122
Année 2025/2026

Un autre critère aussi important et nécessaire à prendre en considération est les périodes des
signaux à calculer. Lorsqu’il s’agit par exemple d’un courant alternatif de fréquence 50Hz (la
période est 0.02s), on ne peut, en aucun cas, prendre le pas de calcul égal à 0.02s ou 0.01s, il
faut au moins diviser cette période sur 10 ou 20 comme valeur maximale du pas à choisir.
Conclusion : dans un système en ELT, on choisit toujours des pas de calcul très petits par
rapport à la plus petite période du système (donc la plus grande fréquence dans le système
comme la fréquence de la poteuse dans le cas de la commande MLI) en tenant compte toujours
de la précision imposée comme déjà mentionné.

Exo 2
Le problème à résoudre est :

 y ''(t ) = 2ty '(t ) + 2 y (t )



 y (0) = 1, y '(0) = 0
u1 (t ) = y (t )  u1 '(t ) = y '(t ) = u2 (t )
On prend : 
u2 (t ) = y '(t )

Donc le nouveau problème à résoudre est donné par :


 u1 '(t ) = u2 (t )

u2 '(t ) = 2t.u2 (t ) + 2u1 (t )
 u (0) = 1, u (0) = 0
 1 2

On utilise bien sur la méthode de Runge-Kutta avec un pas h quelconque :


Pour calculer y(h), on aura deux étapes :

 u2 ( h ) = ?

 k1 = h. ( 2*0* u2 (0) + 2u1 (0) )
 u1 (h) = ?   
  k2 = h.  2*  0 +  *  u2 (0) + 1  + 2u1 (0) 
h k
 k1 = h.u2 (0) = 0
   2  2 
 k2 = h.u2 (0) = 0 
    h  k2  
 k3 = h.u2 (0) = 0 k3 = h.  2*  0 +  *  u2 (0) +  + 2u1 (0) 
k = h.u (0) = 0    2  2 
 4 2  k = h. ( 2* ( 0 + h ) * ( u (0) + k ) + 2u (0) )
u1 (h) = u1 (0) + hu2 (0) = 1  4 2 3 1

  1
  u2 (h) = u2 (0) + ( k1 + 2k2 + 2k3 + k4 )
 6


L’algorithme avec la méthode de Runge-Kutta d’ordre 4 est donc :


• Méthode de Runge-Kutta
On déclare une fonction f dans un script à part :

function a=f(t,u1,u2)
a=2*t*u2+2*u1 ;
end

Mme ABDELLI.R Page 6


Université [Link] de BEJAIA
Faculté de Technologie, Département GE
Module UEF 1122
Année 2025/2026

Script principal :

a=input('donner a=')
b=input('donner b=')
n=input('donner n=')
h=(b-a)/n;
u1(1)=input('donner la condition initiale de la fonction y')
u2(1)=input('donner la condition initiale de la dérivée de la fonction y')
t=a:h:b;
for i=2:n+1
u1(i)=u1(i-1)+h*u2(i-1);
k1=h*f(t(i-1),u1(i-1),u2(i-1));
k2=h*f((t(i-1)+h/2),u1(i-1),(u2(i-1)+k1/2));
k3= h*f((t(i-1)+h/2),u1(i-1),(u2(i-1)+k2/2));
k4= h*f((t(i-1)+h),u1(i-1),(u2(i-1)+k3));
u2(i)=u2(i-1)+(k1+2*k2+2*k3+k4)/6;

end
plot(t,u1)
fprintf(' %6.12f',u1)

Mme ABDELLI.R Page 7

Vous aimerez peut-être aussi