• Aucun résultat trouvé

Équations différentielles (suite)

N/A
N/A
Protected

Academic year: 2022

Partager "Équations différentielles (suite)"

Copied!
27
0
0

Texte intégral

(1)

Équations différentielles (suite)

Skander Zannad et Judicaël Courant Lycée La Martinière-Monplaisir

2014-01-31

(2)

Équations différentielles (suite)

1 Gérer des EDO d’ordre 2, 3, . . .

Équation d’un amortisseur soumis à une excitation de pulsationω: my00 =−cy0ky+αcosωt

Pas une équation d’ordre1. Comment la gérer ? On introduitY(t) = (y(t), y0(t)).

En posantπ0 : (x, y)7→xetπ1 : (x, y)7→1:

Skander Zannad et Judicaël Courant 2

(3)

Équations différentielles (suite)

Y0(t) = (y0(t), y00(t))

= (y0(t),(−cy0(t)−ky(t) +αcosωt)m−1)

= (π1(Y(t)),(−cπ1(Y(t))−0(Y(t)) +αcosωt)m−1)

=F(t, Y(t))

F : (t, Y)7→. . .

On s’est ramené à une équation d’ordre1!

Skander Zannad et Judicaël Courant 3

(4)

Équations différentielles (suite)

Résolution : m = 250 # kg

omega = 1 # s ∗∗ (−1) alpha = 0 # N

k = 1000 # N / m

c = 500 # Nms∗∗(−1) y0 = 1 # m

yp0 = 0 # m . s∗∗(−1) t0 = 0

t1 = 20 # s n = 1000

h = float(t1 − t0) / n

Skander Zannad et Judicaël Courant 4

(5)

Équations différentielles (suite)

def F(t, Y) : y, yp = Y

ypp = (−c∗yp − k∗y + alpha∗cos(omega∗t) ) / m return array( [yp, ypp] )

les_t, les_y = euler_vectoriel(F, t0, t1, array( [y0, yp0] ) , h)

Skander Zannad et Judicaël Courant 5

(6)

Équations différentielles (suite)

0 5 10 15 20

t 0.8

0.6 0.4 0.2 0.0 0.2 0.4 0.6 0.8 1.0

y(t)

Amortisseur c=100Nms1

Skander Zannad et Judicaël Courant 6

(7)

Équations différentielles (suite)

0 5 10 15 20

t 0.4

0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2

y(t)

Amortisseur c=400Nms1

Skander Zannad et Judicaël Courant 7

(8)

Équations différentielles (suite)

0 5 10 15 20

t 0.2

0.0 0.2 0.4 0.6 0.8 1.0

y(t)

Amortisseur c=600Nms1

Skander Zannad et Judicaël Courant 8

(9)

Équations différentielles (suite)

0 5 10 15 20

t 0.2

0.0 0.2 0.4 0.6 0.8 1.0

y(t)

Amortisseur c=800Nms1

Skander Zannad et Judicaël Courant 9

(10)

Équations différentielles (suite)

0 5 10 15 20

t 0.0

0.2 0.4 0.6 0.8 1.0

y(t)

Amortisseur c=1000Nms1

Skander Zannad et Judicaël Courant 10

(11)

Équations différentielles (suite)

0 5 10 15 20

t 0.0

0.2 0.4 0.6 0.8 1.0

y(t)

Amortisseur c=1200Nms1

Skander Zannad et Judicaël Courant 11

(12)

Équations différentielles (suite)

0 5 10 15 20

t 0.0

0.2 0.4 0.6 0.8 1.0

y(t)

Amortisseur c=2000Nms1

Skander Zannad et Judicaël Courant 12

(13)

Équations différentielles (suite)

2 Portraits de phase

On porte sur le graphe les couples(y(t), y0(t)):

Skander Zannad et Judicaël Courant 13

(14)

Équations différentielles (suite)

def phase(legende, nomfichier) :

_, les_y = euler_vectoriel(F, t0, t1, array( [y0, yp0] ) , h)

pl.clf( )

pl.xlabel( ’ $y ( t ) $ ’ ) pl.ylabel( " $y ’ ( t ) $ " ) pl.grid( )

pl.plot(array(les_y) [ : , 0 ] , array(les_y) [ : , 1 ] ) pl.title(legende)

pl.savefig(nomfichier)

Skander Zannad et Judicaël Courant 14

(15)

Équations différentielles (suite)

30 20 10 0 10 20 30 40 50

y(t)

100 80 60 40 20 0 20 40 60 80

y0(t)

Portrait de phase (amortisseur, c=100Nms1

Skander Zannad et Judicaël Courant 15

(16)

Équations différentielles (suite)

3 Influence du pas de discrétisation

On reprend l’exemple de l’amortisseur, avecc= 100et avec différentes valeurs du pas de discrétisationh= (t1t0)/n:

Skander Zannad et Judicaël Courant 16

(17)

Équations différentielles (suite)

0 5 10 15 20

t 0.8

0.6 0.4 0.2 0.0 0.2 0.4 0.6 0.8 1.0

y(t)

Amortisseur n=4000

Skander Zannad et Judicaël Courant 17

(18)

Équations différentielles (suite)

0 5 10 15 20

t 1.0

0.5 0.0 0.5 1.0

y(t)

Amortisseur n=400

Skander Zannad et Judicaël Courant 18

(19)

Équations différentielles (suite)

0 5 10 15 20

t 30

20 10 0 10 20 30 40 50

y(t)

Amortisseur n=100

Skander Zannad et Judicaël Courant 19

(20)

Équations différentielles (suite)

Le dernier graphe est clairement délirant sur le plan physique... (voir livre, notamment fig 9.19 p243)

Plusieurs facteurs contribuent à l’erreur :

– des erreurs de méthode (la méthode d’Euler n’est pas parfaite) – des erreurs de calcul (les flottants ne sont pas les réels)

Pour les erreurs de méthode, on dit qu’il y a convergence si, quandn tend vers+∞ (donc quandh tend vers0), l’erreur de méthode tend vers0.

Skander Zannad et Judicaël Courant 20

(21)

Équations différentielles (suite)

Il y a convergence si

1. certaines conditions de stabilité de la méthode employée sont respectée

2. et la somme e(h)des petites erreurs commises à chaque étape tend vers0quandhtend vers0(e(h): erreur de consistance).

On dit qu’une méthode est d’ordrepsi l’erreur de consistance est un O(Khp).

La méthode d’Euler est une méthode d’ordre1.

Skander Zannad et Judicaël Courant 21

(22)

Équations différentielles (suite)

4 Autres méthodes

4.1 Méthode d’Euler implicite

La méthode d’Euler présentée jusqu’ici est diteexplicite:

yk+1=yk+hF(tk, yk)

Méthode d’Euler implicite

yk+1 =yk+hF(tk, yk+1)

Inconvénient : pour trouveryk+1, il faut résoudre une équation (numé- riquement).

Skander Zannad et Judicaël Courant 22

(23)

Équations différentielles (suite)

Avantage : souvent plus stable.

4.2 Méthode de Heun

Siyn=y(tn), il existec∈]tn, tn+1[tel que y(tn+1) =yn+hy0(c)

Tout le problème est d’estimery0(c).

Skander Zannad et Judicaël Courant 23

(24)

Équations différentielles (suite)

Idée de la méthode d’Euler explicite :

y0(c)≈y0(tn) =k1k1=y0(tn) =F(tn, yn)

Idée de la méthode de Heun : y0(c)≈ y0(tn) +y0(tn+1)

2

F(tn, y(tn)) +F(tn+1, y(tn+1))

2 (y0=F(t, y))

k1+F(tn+1, yn+hk1)

2 (y(tn+1)≈yn+hk1)

Skander Zannad et Judicaël Courant 24

(25)

Équations différentielles (suite)

On pose donc :

yn+1 =yn+h 2

F(tn, yn) +F tn+1, yn+hF(tn, yn)

La méthode de Heun est d’ordre (de convergence) deux.

Skander Zannad et Judicaël Courant 25

(26)

Équations différentielles (suite)

4.3 Méthode de Runge-Kutta Pour évaluery0(c), on calcule

k1+ 2k2+ 2k3+k4

6

k1,k2,k3 etk4 sont des évaluations des pentes : k1 pente enyn

k2 pente évaluée entn+ h2 en utilisantk1 pour estimery(tn+h2) k3 pente évaluée enyn+h2 en utilisantk2 pour estimery(tn+h2) k4 pente évaluée entn+hen utilisantk3 pour estimery(tn+h).

Skander Zannad et Judicaël Courant 26

(27)

Équations différentielles (suite)

k1=f(tn, yn)

k2=f(tn+h

2, yn+h 2k1) k3=f(tn+h

2, yn+h 2k2) k4=f(tn+h, yn+hk3)

Il s’agit d’une méthode d’ordre de convergence4.

Elle est facile à programmer et donc très populaire.

Skander Zannad et Judicaël Courant 27

Références