Énoncés des exercices
131
9.4 Programmation
É tant donné un réel h et une fonction f ∈C
3
([t 0 , t 0 + T ] × R ; R )o nc onsidère l’équation
différentielle àcondition initiale
y
( t ) = f ( t , y ( t )) pour t ∈ [ t 0 , t 0 + T ]
y ( t 0 ) = h .
On utilise un pas constant h = T / N et on pose t i = t 0 + ih, 0 i N . Le schéma numérique
estlesuivant :
u 0 = h , x = u 0 + hf( t 0 , u 0 ) , u 2 = u 0 +2hf( t 1 , x ) , u 1 =
u 0
4
+
x
2
+
u 2
4
,
puis pour i = 2 ,..., N − 1 ,
u i +1 = u i − 2 +
9 h
4
f ( t i , u i )+
3 h
4
f ( t i − 2 , u i − 2 ) ,
où u i désigne une approximation de y ( t i ) .
1. É crire une fonction function [t,u] =multip(nomf,t0,T,N,eta) qui met en oeuvre ce
schéma et calculelasolution approchée u pour la fonction f ; u est un vecteur de composantes
u ( i ) = u i − 1 correspondant aux instants t ( i ) = t i − 1 pour i = 1 ,..., N +1, nomf est le nom du
fichier contenantlafonction f qui définit l’équation différentielle et qui doit être écrite dans le
fichier f.m .Son en-tête est de la forme function z=f(t,y).Dans multip,l’évaluation de cette
fonction se fait simplement par feval(nomf,t,y).Écrire le schéma dans les2cas suivants :
– cas 1: y
( t ) = y ( t ) , h = 1 , t 0 = 0 , T = 5 .
– cas 2: y
( t ) = ( − y ( t ) t
2
− y
2
( t )+2 t ) / (1 − t
3
) , h = 1 , t 0 = 0 , T = 0 . 99, solution :
y ( t ) = ( t
2
+1) / ( t +1).
2. Créerdeux fichiers f1.m, f2.m qui pour un couple de réels ( t , y )calcule z = f ( t , y )dans
les deux cas proposés.
3. É crire un programme permettant de tester le schéma en traçant sur le même graphique la
solution exacte et sonapproximation. Sauvegarde sous eqdm1.m.Onprendra quelques exemples
N = 5 , 10, 20, 30 dans les deux cas. Test N = 5dansle1
er
cas :
✞
☎
>> eqdm1
t=
012345
u=
1.0000
2.5000
5.0000
13.0000
33.6250
84.4063
✝
✆
Dunod –Laphotocopie non autorisée est un délit
131
9.4 Programmation
É tant donné un réel h et une fonction f ∈C
3
([t 0 , t 0 + T ] × R ; R )o nc onsidère l’équation
différentielle àcondition initiale
y
( t ) = f ( t , y ( t )) pour t ∈ [ t 0 , t 0 + T ]
y ( t 0 ) = h .
On utilise un pas constant h = T / N et on pose t i = t 0 + ih, 0 i N . Le schéma numérique
estlesuivant :
u 0 = h , x = u 0 + hf( t 0 , u 0 ) , u 2 = u 0 +2hf( t 1 , x ) , u 1 =
u 0
4
+
x
2
+
u 2
4
,
puis pour i = 2 ,..., N − 1 ,
u i +1 = u i − 2 +
9 h
4
f ( t i , u i )+
3 h
4
f ( t i − 2 , u i − 2 ) ,
où u i désigne une approximation de y ( t i ) .
1. É crire une fonction function [t,u] =multip(nomf,t0,T,N,eta) qui met en oeuvre ce
schéma et calculelasolution approchée u pour la fonction f ; u est un vecteur de composantes
u ( i ) = u i − 1 correspondant aux instants t ( i ) = t i − 1 pour i = 1 ,..., N +1, nomf est le nom du
fichier contenantlafonction f qui définit l’équation différentielle et qui doit être écrite dans le
fichier f.m .Son en-tête est de la forme function z=f(t,y).Dans multip,l’évaluation de cette
fonction se fait simplement par feval(nomf,t,y).Écrire le schéma dans les2cas suivants :
– cas 1: y
( t ) = y ( t ) , h = 1 , t 0 = 0 , T = 5 .
– cas 2: y
( t ) = ( − y ( t ) t
2
− y
2
( t )+2 t ) / (1 − t
3
) , h = 1 , t 0 = 0 , T = 0 . 99, solution :
y ( t ) = ( t
2
+1) / ( t +1).
2. Créerdeux fichiers f1.m, f2.m qui pour un couple de réels ( t , y )calcule z = f ( t , y )dans
les deux cas proposés.
3. É crire un programme permettant de tester le schéma en traçant sur le même graphique la
solution exacte et sonapproximation. Sauvegarde sous eqdm1.m.Onprendra quelques exemples
N = 5 , 10, 20, 30 dans les deux cas. Test N = 5dansle1
er
cas :
✞
☎
>> eqdm1
t=
012345
u=
1.0000
2.5000
5.0000
13.0000
33.6250
84.4063
✝
✆
Dunod –Laphotocopie non autorisée est un délit
