Académique Documents
Professionnel Documents
Culture Documents
Matlab Eqdiff PDF
Matlab Eqdiff PDF
1
10/12/2017
2
10/12/2017
>> x = [1:10];
>> sprintf(’ %d ,’,x)
ans =
1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ,
3
10/12/2017
4
10/12/2017
5
10/12/2017
11
12
6
10/12/2017
Pour resoudre:
[t,y]=ode23('f1o’,[0,20],5) ou [t,y]=ode23(@f1o,[0,20],5)
plot(t,y)
Pour avoir une tolérance sur les calculs de 1e-7 :
>> [ t , y ] = ode23 ('f1o' ,{ 0 20} , [ 5 ] , 1e-7)
A tester :
>> [t , y ] = ode45 ( 'f1o' , [0 20 ], 5 )
10
9.5
8.5
7.5
6.5
5.5
5 13
0 2 4 6 8 10 12 14 16 18 20
Reformulation du problème
Reformuler le problème sous la forme d’un système
d’équations différentielles du premier ordre.
Pour utiliser les solveurs ODE, on doit d’abord réécrire les
équations différentielles sous la forme d’un système équivalent
d’équations différentielles du premier ordre.
On peut écrire une équation différentielle quelconque
14
7
10/12/2017
15
……………………….
Pour resoudre:
………………
16
8
10/12/2017
Pour resoudre:
[t,y]=ode23(@f2o,[0,10],[0 2])
Ou
[t,y]=ode45(@f2o,[0,10],[0 2])
plot(t,y) ou plot ( t , y ( : , 1 ) ) ou plot ( t , y ( : , 1 ) )
17
𝑦3 = 6 avec 𝑦3 𝑡 = 0 = 1, 𝑦3 𝑡 = 0 = 1 , 𝑦3 𝑡 = 0 = 2
Créons le fichier f3o.m :
………………………..
Pour resoudre
……………………………………..
18
9
10/12/2017
19
Exemple traité:
Soit l’équation différentielle du second ordre connue sous le nom de équation
𝑑2 𝑦
de l’oscillateur harmonique : + 𝜔0 2 y=0
𝑑𝑡 2
Pour résoudre cette équation à l’aide des solveurs ode, il faut l’exprimer sous
une forme vectorielle, pour cela :
……………………………………………..
20
10
10/12/2017
Exemple traité:
Soit l’équation différentielle du second ordre connue sous le nom de équation
𝑑2 𝑦
de l’oscillateur harmonique : + 𝜔0 2 y=0
𝑑𝑡 2
Pour résoudre cette équation à l’aide des solveurs ode, il faut l’exprimer sous
une forme vectorielle, pour cela :
Création de 2 vecteurs de dimension 2 correspondant à l’ordre de
l’équation différentielle :
𝒅𝒚
• vecteur y : solution y(1)=y et y(2)=
𝒅𝒕
𝒅𝒚 𝒅𝟐 𝒚
• vecteur dydt: dérivée dydt(1)= et dydt(2)=
𝒅𝒕 𝒅𝒕𝟐
21
dydt(1)=y 2
Forme vectorielle:
dydt(2)= − 𝜔0 2 𝑦 1
On écrit une fonction function correspondant à ces deux lignes:
function dydt=oscillateur(t,y)
omega=1;
dydt(1)=y(2);
dydt(2)=-omega.^2*y(1);
dydt=dydt’ ;% on convertit la ligne en colonne.
22
11
10/12/2017
12