Cours Analyse Numerique 2122
Cours Analyse Numerique 2122
Cours Analyse Numerique 2122
Saber EL AREM
1 Introduction
Acquis d’apprentissage
Organisation du cours
Références
24 Méthode de Simpson
26 Quadrature de Gauss-Légendre
Organisation du cours
Bibliographie
Coursera.org
Les erreurs
Erreurs de modélisation
Erreurs numériques
1 Erreurs d’approximation ou de troncature et : Par
exemple, le calcul de la somme d’une série ne pourra être
accompli qu’en procédant à une troncature convenable.
+∞ +∞
X 1 X (−1)k
= 2 ou 4 =π
2k 2k + 1
k=0 k=0
Erreurs numériques
1 Erreurs de calcul: ec = et + ea
2 Erreur de modèle: em
Introduction
N 2
[p + a( (V − N b) = kN T (1)
V
où a et b sont deux coefficients qui dépendent du gaz
considéré, N est le nombre de molécules contenues dans
le volume V et k est la constante de Boltzmann. Nous
devons donc résoudre une équation non linéaire dont la
racine est V
Problème 3: Statique
Considérons le système mécanique représenté par les quatre
barres rigides ai de la Figure 2.1. Pour une valeur admissible
de l’angle β, déterminons la valeur de l’angle α entre les
barres a1 et a2 .
Problème 3: Statique
Partant de la relation
vectorielle:
a1 − a2 − a3 − a4 = 0
Problème 3: Statique
f (α) = 0
où
a1 a1 a2 + a22 − a23 + a24
f (x) = cos(β) − cos(x) − cos(β − x) + 1
a2 a4 2a2 a4
Une expression explicite de la solution n’existe que pour des
valeurs particulières de β. Signalons également qu’il n’y a pas
existence d’une solution pour toutes les valeurs de β, et
qu’une solution peut ne pas être unique. Pour résoudre cette
équation pour toute valeur de β entre 0 et π, nous devrons
avoir recours à des méthodes numériques.
S. EL AREM ENSAM 38 / 179
Quelques problèmes types
Plusieurs méthodes
Définition
Soit f : R → R une fonction. On dit que x̂ est un zéro de f si
f (x̂) = 0. Il est dit simple si f 0 (x̂) 6= 0 , multiple sinon.
Si f est de classe C p avec p ∈ N, on dit que x̂ est un zéro de
multiplicité p
(
f (i) (x̂) = 0 i = 0, 1, . . . , p − 1
f (p) (x̂) 6= 0,
x = g(x)
g(x) = x − f (x)
ou plus généralement :
Définition
si x∗ ∈ R est tel que x∗ = g(x∗ ), on dira que x∗ est un point fixe
de g; l’image de x∗ par g est x∗ lui-même.
Définition
Soit I un intervalle de R et soit g : x ∈ I ←→ g(x) ∈ R une
fonction. Nous dirons que g est une contraction stricte sur I
s’il existe une constante χ < 1 telle que
Théorème
Soit I un intervalle fermé de R et soit g : x ∈ I ←→ g(x) ∈ R une
fonction donnée. On suppose que g satisfait les deux
propriétés suivantes:
1 g est une contraction stricte sur I
2 g(I) ⊂ I
alors g a un et un seul point fixe x∗ dans I et, ∀x0 ∈ I, la suite
(xn ) donnée par
xn+1 = g(xn ), n = 0, 1, 2, . . .
S. EL AREM ENSAM 48 / 179
Méthode de la dichotomie ou bissection
Méthode de la Dichotomie
Méthode de la sécante
Soit f : R → R une fonction continue et soit x̂ ∈ [a, b] un zéro de
f . La méthode de la sécante est une variante de la méthode
de Lagrange dans laquelle on ne demande plus à ce que le
zéro soit entre ak et bk . Pour calculer xk+1 on prend
l’intersection de l’axe des abscisses avec la droite passant par
les points (xk , f (xk )) et (xk−1 , f (xk−1 )), i.e. on cherche x
solution du système linéaire:
y = f (xk ) − f (xk−1 ) (x − x ) + f (x ),
k k
xk − xk−1
y = 0,
ce qui donne:
xk − xk−1
x = xk − f (xk )
f (xk ) − f (xk−1 )
Méthode de Newton-Raphson
Dans la méthode de Newton-Raphson, le passage de xk à xk+1
se fait de la manière suivante: xk+1 est l’abscisse du point
d’intersection de la tangente au point (xk , f (xk )) et l’axe y = 0.
Théorème
On suppose f de classe C 2 sur [a, b]. On suppose aussi qu’il
existe x̂ vérifiant f (x̂) = 0 et f 0 (x̂) 6= 0. Alors ∃δ > 0 tel que la
suite définie par:
x0 ∈ [x̂ − δ, x̂ + δ],
f (x )
xk+1 = xk − 0 k
f (xk )
Attention
à noter que même si la méthode de Newton−Raphson permet
en général d’obtenir une convergence quadratique, un
mauvais choix de la valeur initiale peut provoquer la
divergence de cette méthode (notamment si la courbe
représentative de f présente au point d’abscisse x0 une
tangente à peu près horizontale). D’où l’importance d’une
étude préalable soignée de la fonction f (cette étude est
d’ailleurs nécessaire pour toute méthode de point fixe).
Méthode de Newton−corde
6
def corde (f , df0 , x0 , tol ) :
8 while abs ( f ( x0 ) ) > tol :
x0 = x0 - f ( x0 ) / df0
10 return x0
12 if __name__ == ’ __main__ ’:
n =4.87
14 k =8.51** n
eps =1.0 e -3
16 f = lambda x : x ** n - k
df = lambda x : n * x **( n -1)
18 x0 =10.0
print ( ’ racine selon newton ’ , newton (f , df , x0 , eps ) )
20 print ( ’ racine selon corde ’ , corde (f , df ( x0 ) ,x0 , eps ) )
f (x) = 0
f (x) = 0
Exemple:
2
sin x + y + log z − 7 = 0
3x + 2y − z 3 + 1 = 0
x+y+z−5=0
f (x) = 0
∂fi fi (x + h ej ) − fi (x)
≈
∂xj h
Exercice 1
Solution Exercice 1
23.0°
52.0°
Exercice 2
Solution Exercice 2
15 print ( ’ solution :\ n ’)
print ( ’T = ’ ,x [0])
17 print ( ’ Theta1 = ’ , np . degrees ( x [1]) )
print ( ’ Theta2 = ’ , np . degrees ( x [2]) )
19 print ( ’ Theta3 = ’ , np . degrees ( x [3]) )
Exercice 3
2
sin x + y + log z − 7 = 0
3x + 2y − z 3 + 1 = 0
x+y+z−5=0
Solution
1 from scipy . optimize import root , fsolve , newton_krylov
import numpy as np
3
def f ( x ) :
5 f = np . zeros ( len ( x ) )
f [0] = np . sin ( x [0]) + x [1]**2 + np . log ( x [2]) - 7.0
7 f [1] = 3.0* x [0] + 2.0** x [1] - x [2]**3 + 1.0
f [2] = x [0] + x [1] + x [2] - 5.0
9 return f
Exercice 4
Solution
Position du problème
x ∈ Rn vérifiant
A.x = b
Avec A ∈ Mn (R) et b ∈ Rn connus.
x = F (d)
ˆ − F (d)| ≤ C|dˆ − d|
|F (d)
Étude du conditionnement
A.∆x = ∆b
aussi
A.x = b =⇒ k b k≤k A k . k x k
d’où
k ∆x k k ∆b k
≤ γ(A)
kxk kbk
Problème bien posé S. EL AREM ENSAM 82 / 179
Conditionnement Problème bien posé
Étude du conditionnement
Étude du conditionnement
Étude du conditionnement
Étude du conditionnement
1 γ(A) ≥ 1
2 γ(A) = γ(A−1 )
3 γ(λA) = γ(A) pour λ 6= 0
max |λ|
λ∈Sp(A)
4 γ(A) ≥
min |λ|
λ∈Sp(A)
Méthodes directes
Élimination de Gauss:
Consiste à réduire la matrice du système à la forme
triangulaire ; la résolution est alors immédiate.
Élimination de Gauss:
Élimination de Gauss:
On considère le système d’équations linéaires :
4x1 − 2x2 + x3 = 11
(a)
−2x1 + 4x2 − 2x3 = −16 (b)
x1 − 2x2 + 4x3 = 17 (c)
4x1 − 2x2 + x3 = 11
(a)
3x2 − 1.5x3 = −10.50 (b) (4)
−1.5 x2 + 3.75 x3 = 14.25 (c)
4x1 − 2x2 + x3 = 11
(a)
3 x2 − 1.5x3 = −10.5 (b) (5)
−1.5 x2 + 3.75 x3 = 14.25 (c)
1 import numpy as np
def gaussElimin (a , b ) :
3 n = len ( b )
# Elimination Phase
5 for k in range (0 ,n -1) :
for i in range ( k +1 , n ) :
7 if a [i , k ] != 0.0:
lam = a [i , k ]/( a [k , k ])
9 # a [i , k +1: n ] = a [i , k +1: n ] - lam * a [k , k +1: n ]
a [i ,:] = a [i ,:] - lam * a [k ,:]
11 b [ i ] = b [ i ] - lam * b [ k ]
# Back substitution # remont é e
13 for k in range (n -1 , -1 , -1) :
b [ k ] = ( b [ k ] - np . dot ( a [k , k +1: n ] , b [ k +1: n ]) ) /( a [k , k ])
15 # print ( type ( b [ k ]) )
return b
17
if __name__ == ’ __main__ ’:
19 n =3
A =200* np . random . rand (n , n )
21 b =100.0* np . random . rand (n ,1)
x = np . linalg . solve (A , b ) # np . dot ( np . linalg . inv ( A ) ,b )
23 print ( ’ Numpy solve :\ n ’ ,x )
print ( ’ solution gauss :\ n ’ , gaussElimin (A , b ) )
Méthodes directes
Décomposition LU
La méthode LU, dont le nom vient de Low-Up , s’appelle
aussi méthode LR pour Left-Right. Elle consiste à effectuer la
réduction de la matrice A des premiers membres à la forme
triangulaire par la méthode de GAUSS sans se préoccuper
des seconds membres, mais en conservant les coefficients
utilisés dans la réduction.
Méthodes directes: LU
Exercice 1
2 0 0
Soit A = 4 2 1
0 4 4
1 Donner la décomposition LU de A. Expliciter les matrices
L et U .
2 Résoudre en x
0
Ax = b = 4
12
en suivant la méthode LU .
Méthode de CHOLESKY
Définition:
Une matrice réelle A est symétrique, définie et positive si et
seulement:
1 A = At
2 ∀x ∈ Rn xt .A.x ≥ 0
3 xt .A.x = 0 ⇐⇒ x = 0
Méthode de CHOLESKY
Définition:
Une matrice réelle A est symétrique, définie et positive si et
seulement:
1 A = At
2 ∀x ∈ Rn xt .A.x ≥ 0
3 xt .A.x = 0 ⇐⇒ x = 0
Théorème
Une matrice réelle A est symétrique, définie et positive si et
seulement s’il existe une matrice L triangulaire inférieure
inversible telle que
A = L.Lt
Méthode de CHOLESKY
Pj
Aij = k=1 Lik Ljk
Pj−1
= k=1 Lik Ljk + Lij Ljj
Ce qui donne:
√
L11 = A11
q
Ljj = Ajj − j−1 2
P
2≤j≤i≤n
k=1 Ljk
1 Pj−1
Lij = (Aij − k=1 Lik Ljk )
Ljj
Méthode de CHOLESKY
(k+1) (k)
Px =Nx +b
ce qui conduit à :
avec :
A=D−E−N
D: Diagonale de A
−E La triangulaire inférieure avec des 0 sur la diagonale
−N La triangulaire supérieure avec des 0 sur la diagonale
Le travail de programmation de cette méthode est décomposé en 4 fonctions à écrire:
1 une fonction qui retourne D pour A donnée
2 une fonction qui retourne E pour A donnée
3 une fonction qui retourne N pour A donnée
4 une fonction qui retourne la solution recherchée x en exploitant la relation (A)
import numpy as np
2 import scipy as sci
from scipy . optimize import newton_krylov , root , fsolve
4 n = 10
A =200* np . random . rand (n , n )
6 b =100.0* np . random . rand ( n )
print ( ’\ n R é solution par np . linalg . solve \ n ’)
8 sol1 = np . linalg . solve (A , b )
print ( " solution solve : A x = b \ n " , sol1 )
10
def Func0 ( x ) :
12 y = np . dot (A , x ) -b
return y
14
x0 = np . random . rand ( n )
16 sol2 = fsolve ( Func0 , x0 )
print ( " \ n solution F ( X ) =0 avec fsolve \ n " , sol2 )
18 sol3 = root ( Func0 , x0 ) . x
print ( " \ n solution F ( X ) =0 avec root \ n " , sol3 )
20 x = newton_krylov ( Func0 , x0 )
print ( " \ n Norme de Erreur \ n " )
22 print ( ’ || x - x0 || = ’ , np . linalg . norm ( sol1 - sol2 ) )
print ( " \ n Erreur variable par variable \ n " )
24 print ( ’ || x - x0 || = ’ , np . allclose ( sol1 , sol2 ) )
Tridiagonal Matrix
Intégration Numérique
1 def rectangles (f ,a ,b , n ) :
’’’ Integration numerique
3 par methode des rectangles O ( h ) ’’’
h =( b - a ) / n
5 integrale =0
# for i in range (1 , n +1) :# droite
7 for i in range (0 , n ) : # gauche
integrale = integrale + f ( a + i * h )
9 return h * integrale
11 if __name__ == ’ __main__ ’:
f = lambda x : x **3
13 valTheorique = 0.25
print ( ’ valeur th é orique de I \ n = ’ , valTheorique )
15 for i in range (1 ,5) :
h = 1/10** i
17 n = int (1/ h )
print ( ’ Erreur = ’ , ’h = ’ ,h , rectangles (f ,0 ,1 , n ) - valTheorique )
1 def point_milieu (f ,a ,b , n ) :
’’’ Integration numerique
3 par methode du point milieu : O ( h ^2) ’’’
h =( b - a ) / n
5 integrale =0
for i in range (0 , n ) :
7 integrale = integrale + f ( a +0.5*( i * h +( i +1) * h ) )
return h * integrale
9
11
if __name__ == ’ __main__ ’:
13 f = lambda x : x **2
print ( ’ valeur th é orique de I \ n = ’ ,1/3.0)
15 for i in range (1 ,5) :
h = 1/10** i
17 n = int (1/ h )
print ( ’ Erreur pour ’ , ’h = ’ ,h , point_milieu (f ,0 ,1 , n ) -1.0/3.0)
h
Ii = [f (xi ) + f (xi+1 )]
2
Ainsi :
n−1
X h
In = Ii = [f (x0 ) + 2f (x1 ) + 2f (x2 ) · · · + 2f (xn−1 ) + f (xn )]
2
i=0
10 if __name__ == ’ __main__ ’:
f = lambda x : x **2
12 print ( ’ valeur th é orique de I \ n = ’ ,1/3.0)
for i in range (1 ,5) :
14 h = 1/10** i
n = int (1/ h )
16 print ( ’I = ’ , trapezes (f ,0 ,1 , n ) )
print ( ’ Erreur = ’ , ’h = ’ ,h , trapezes (f ,0 ,1 , n ) -1.0/3.0)
def Simpson (f ,a ,b , n ) :
2 ’’’ Integration Num é rique Par
la m é thode de Simpson O ( h ^4) ’’’
4 h =( b - a ) / n
integrale =( f ( a ) + f ( b ) ) /6
6 for i in range (1 , n ) :
integrale = integrale + f ( a + i * h ) /3
8 for i in range ( n ) :
integrale = integrale + f ( a +(2* i +1) * h /2.0) *2/3
10 return h * integrale
12 if __name__ == ’ __main__ ’:
f = lambda x : x **2
14 print ( ’ valeur th é orique de I \ n = ’ ,1/3.0)
for i in range (1 ,5) :
16 h = 1/10** i
n = int (1/ h )
18 print ( ’I = ’ , Simpson (f ,0 ,1 , n ) )
print ( ’ Erreur = ’ , ’h = ’ ,h , Simpson (f ,0 ,1 , n ) -1.0/3.0)
b n−1
b−aX
Z
f (t)dt ≈ f (xi )
a n
i=0
où i → xi désigne une variable aléatoire suivant la loi uniforme
sur [a, b]. On utilisera la fonction uniform(a,b) du module
random pour tirer aléatoirement un flottant entre a et b.
1 Écrire une fonction renvoyant une approximation du
nombre: Z 1p
π=4 1 − t2 dt
0
en utilisant la méthode Monte-Carlo
S. EL AREM ENSAM 128 / 179
Exercice: méthode de Monte-Carlo
Quadrature de Gauss-Legendre 1
Exemple 1
En utilisant les formules de Gauss−Legendre calculer:
Z 1
3 x4 dx
0
Quadrature de Gauss-Legendre 2
Exemple 2
Soit P (x) un polynôme de degré n > 0 et x un réel.
1 Combien de points
R 1 de Gauss sont nécessaires pour un
calcul exacte de −1 P (x)dx
2 En utilisant les formules de Gauss−Legendre calculer:
Z 1
(3 x3 − 2)dx
0
28 ’’’
1 point de Gauss - Legendre
30 sol = [0. 2.]
2 points de Gauss - Legendre
32 sol = [ -0.57735027 1. 0.57735027 1. ]
’’’
y 0 (t) = f (y(t), t)
y(t0 ) = y0
Définition
L’équation différentielle 7 est dite d’ordre 1, car seule la
dérivée d’ordre 1 de y(t) est présente. Si des dérivées de y(t)
d’ordre n apparaissaient dans l’équation différentielle 7, on
aurait une équation d’ordre n.
X 0 (t) = F (X(t), t)
équation d’ordre 1 où X est la fonction inconnue, et t sa
variable.
Problème de Cauchy
Soit f : (x, t) ∈ RxR+ −→ f (x, t) ∈ R une fonction donnée à deux
variables x et t. Dans les application x est souvent une
variable physique et t une variable temporelle. Nous
supposons que f est assez régulière, par exemple continue, et
nous voulons résoudre le problème suivant.
d u(t)
= u̇(t) = f (u(t), t) si t > 0
dt
u(0) = u0
Exemple 1
f (x, t) = 3 x − 3 t et u0 = α
Le problème de Cauchy devient :
u(0) = α
Sa solution est donnée par :
1 1
u(t) = (α − )e3t + t +
3 3
une fonction donnée à deux variables x et t. Dans les
application x est souvent une variable physique et t une
variable temporelle. Nous supposons que f est assez
régulière, par exemple continue, et nous voulons résoudre le
problème suivant.
Introduction S. EL AREM ENSAM 143 / 179
Problème avec condition initiale Introduction
Exemple 2
√
3
f (x, t) = x et u0 = 0
devient : p
3
u̇(t) = u(t) si t > 0
u(0) = 0
On vérifie
r que les fonctions u définies par u(t) = 0 et
8 t3
u(t) ± pour tout t > 0, sont toutes trois des solutions du
27
problème. Cet exemple nous montre que le problème de
Cauchy n’a pas nécessairement une solution unique.
Exemple 3
f (x, t) = x3 et u0 = 1
devient :
u̇(t) = u3 (t) si t > 0
u(0) = 1
1
On vérifie que la solution u est donnée pour t ∈ [0, [ par :
2
1
u(t) = √
1 − 2t
Cet exemple nous montre que le problème n’a pas toujours
une solution sur [0, ∞[ puisque ici la solution explose lorsque
1
t −→
2
Problème de Cauchy
Théorème de Cauchy-Lipschitz
La fonction f : (X, t) ∈ Rm x[a, b] −→ f (X, t) ∈ R est dite
lipschitzienne en Y uniformément en t s’il existe une
constante L > 0 telle que:
Problème de Cauchy
d X(t)
= Ẋ(t) = f (X(t), t) si t > t0
dt
X(t = t0 ) = X0
Problème de Cauchy
Techniques de Runge-Kutta
Techniques de Runge-Kutta
Euler Explicite
Revenons sur la méthode d’Euler. L’intégrale 9 peut être
approchée par la méthode du rectangle à gauche:
Z tn+1
y(tn+1 ) − y(tn ) = f (t, y(t)) dt ≈ h × f (tn , y(tn ))
tn
Euler Explicite
Euler implicite
Runge-Kutta d’ordre 2
Runge-Kutta d’ordre 2
y0 = y(0)
k1 = f (tn , yn )
k2 = f (tn + h, yn + h k1 ) (13)
h
y
n+1 = (k1 + k2 )
2
Cette méthode présente l’avantage d’être précise et assez
simple à programmer. L’erreur globale, pour une durée T
fixée, se comporte comme h2 . Il s’agit donc bien d’une
méthode d’ordre deux comme son nom l’indique.
Runge-Kutta 4
La méthode de Runge−Kutta d’ordre 4 est une étape
supplémentaire dans le raffinement du calcul de l’intégrale.
Au lieu d’utiliser la méthode des trapèzes, on utilise la
méthode de Simpson. Celle-ci consiste à remplacer la fonction
intégrée par une parabole passant par les points extrêmes et
le point milieu. On a:
Rt
y(tn+1 ) − y(tn ) = tnn+1 f (t, y(t)) dt
= h6 {f (tn , yn ) + 4 f (tn+1/2 , yn+1/2 ) + f (tn+1 , yn+1 )}
a h
yn+1/2 = yn + f (tn , yn )
2
Dans le deuxième terme, on remplace yn+1/2 par sa valeur
déduite de la méthode d’Euler implicite:
b
yn+1/2 = yn + h2 f (tn+1/2 , yn+1/2 ) que l’on va approcher par:
b h
yn+1/2 = yn + f (t , ya )
2 n+1/2 n+1/2
Les méthodes d’Euler implicite et explicite produisant des
erreurs quasi opposées, on a ainsi l’espoir de minimiser
l’erreur sur le calcul de
4 f (tn+1/2 , yn+1/2 )
Runge-Kutta 4: Algorithme
Objectifs de l’exercice
d2 x(t) dx(t)
− ω0 (1 − x2 (t)) + ω02 x(t) = B0 cos(ω t) (14)
dt2 2 dt
ω0 étant la pulsation propre de l’oscillateur et son coefficient
de non linéarité. B0 , ω, ω0 et sont des données du problème
à résoudre.
On souhaite trouver des solutions à l’équation différentielle
(18) pour t dans I = [0, 1] en utilisant N pas d’intégration. Les
dx(0)
conditions initiales sont: x(0) = 0.50 et = ẋ(0) = 0.
dt
1 Schéma d’Euler explicite: Écrire l’équation (18) sous la
forme d’un système d’équations du type:
dY (t)
= Ẏ (t) = F (Y (t), t) (15)
dt
Expliciter Y (t) et F (Y (t), t)
2 En utilisant la fonction odeint du module
scipy.integrate, déterminer la solution numérique de
référence sur l’intervalle [t0 = 0, tf = 10]
w0
= 1.0e−4 , w0 = 1, w = , B0 = 1.0
2
Résultats
Oscillateur de Duffing
L’oscillateur de Duffing du nom de Georg Duffing
(1861 − 1944), est une équation différentielle nonlinéaire du
second ordre utilisée pour modéliser certains oscillateurs
amortis et forcés.
d2 x(t) dx(t)
2
+δ + α x(t) + β x3 (t) = γ cos(ω t) (16)
dt dt
C’est un exemple de système dynamique simple pouvant
présenter un comportement chaotique, comme l’oscillateur de
Van der Pol.
δ contrôle le taux d’amortissement,
α contrôle la raideur linéaire,
β contrôle le taux de non-linéarité dans la force
restauratrice ; le cas β = 0 correspondant à un oscillateur
harmonique amorti et forcé simple,
γ est l’amplitude de la force conductrice périodique,
ω est la fréquence angulaire de cette force.
Exemple 2: Oscillateur de Duffing S. EL AREM ENSAM 173 / 179
Exemples de problèmes Exemple 2: Oscillateur de Duffing
Oscillateur de Duffing
Dans ce qui suit, on considère les valeurs numériques
suivantes:
dY (t)
= Ẏ (t) = F (Y (t), t) (17)
dt
Expliciter Y (t) et F (Y (t), t)
Oscillateur de Duffing
d2 x(t) dx(t)
+δ + α x(t) + β x3 (t) = γ cos(ω t)
dt2 dt
Dans ce qui suit, on considère les valeurs numériques
suivantes:
dY (t)
= Ẏ (t) = F (Y (t), t)
dt
Expliciter Y (t) et F (Y (t), t)
2 En utilisant la fonction odeint du module
scipy.integrate, déterminer la solution numérique de
référence sur l’intervalle I.
3 Expliquer (avec un graphique) l’algorithme du schéma
d’intégration de Runge-Kutta d’ordre 2. Écrire, en
Python, une fonction RK2 qui retourne les valeurs de x et
ẋ pour tout instant ti ∈ I, 0 ≤ i ≤ N .
Exemple 2: Oscillateur de Duffing S. EL AREM ENSAM 175 / 179
Exemples de problèmes Exemple 2: Oscillateur de Duffing
Oscillateur de Duffing
d2 x(t) dx(t)
+δ + α x(t) + β x3 (t) = γ cos(ω t) (18)
dt2 dt
Dans ce qui suit, on considère les valeurs numériques
suivantes:
Attracteur de Lorenz
En 1963, le météorologue Edward Lorenz est le premier à
mettre en évidence le caractère vraisemblablement chaotique
de la météorologie. En simplifiant les équations de
Navier-Stokes de la mécanique des fluides, il aboutit à un
système dynamique différentiel possédant seulement trois
degrés de liberté, beaucoup plus simple à intégrer
numériquement que les équations de départ. Ce système est
décrit par :
dx(t)
= σ[y(t) − x(t)]
dt
dy(t)
= ρx(t) − y(t) − x(t)z(t) (19)
dt
dz(t) = x(t)y(t) − βz(t)
dt
Équations et résolution S. EL AREM ENSAM 177 / 179
Exemple 3: Attracteur de Lorenz Équations et résolution
Chapitre 6: