Vous êtes sur la page 1sur 20

Informatique en PCSI et MPSI

Champollion 2013-2014
Méthodes d’Analyse Numériques
Implémentation et Application en Python

A. HASSAN, D. MENEU

5 février 2014

A. Hassan@Champollion PCSI-MPSI – 1
• Résolution des équations Résolution de f ( x ) = 0 où
f : I −→ R

f (x) = 0

• Résolution des équations différentielles

y ′ ( x ) = f ( y ( x ); x )

• Calcul des intégrales


Zb
f (t) dt
a

A. Hassan@Champollion PCSI-MPSI – 2
Résolution de f ( x ) = 0 où
f : I −→ R
Méthodes Numériques de
résolution de f ( x ) = 0
Dichotomie
Implémentation de la
Dichotomie en Python
Méthode de la tangente
(Méthode de Newton ou
Newton-Raphson)

Résolution de f ( x ) = 0 où f : I −→ R Illustration Graphique de


la méthode Newton
Autre exemple graphique
Implémentation de la
méthode de Newton en
Python
Analyse de l’algorithme
de Newton-Raphson
Inconvénients et limites de
la méthode de
Newton-Raphson
Le problème de la chèvre
Problème de la chèvre:
Mise en équation
Implémentation en Python
Graphique
Résultats: (1) Dichotomie

Résultats: (2) Newton


Exemple: Calcul des
racines carrées (ou n-ième)

A. Hassan@Champollion PCSI-MPSI – 3
Méthodes Numériques de résolution de f ( x ) = 0

Pourquoi ? Certaines équation ne peuvent avoir des solutions exactes (Ex/ :


Équations polynômiales de degré ≥ ou tout simplement e− x − 2x = 0)
Hypothèse : f un application à valeurs réelles, continue sur [ a; b] telle que
f ( a). f (b) < 0.
D’après le théorème des valeurs intermédiaires il existe au moins un réel c tel
que f (c) = 0
Objectif : Calculer une valeur approchée de c.
Méthode : Construire une suite (rn )n∈N telle que rn −n−−−→ c.
→+∞
Cette méthode ou recette est ce que l’on appelle algorithme.
Problème : Trouver de tel(s) algorithme(s) ?.
Un algorithme est plus efficace qu’un autre si la convergence vers la solution est
plus rapide avec un besoin moindre en mémoire.
Algorithmes étudiés :
• Dichotomie.
• Méthode de la tangente (ou de Newton-Raphson).
• Méthode de la sécante (ou de Lagrange)
(Ind. sera traitée en TP)

A. Hassan@Champollion PCSI-MPSI – 4
Dichotomie

Hypothèse : f continue sur [ a; b] telle que f ( a). f (b) < 0


Principe de l’algorithme : Convergence de l’algorithme :

Entrées : f , a0 , b0 et ε 1. ∀n ∈ N ⇒ f ( an ) f (bn ) ≤ 0
Sorties : c solution de f ( x ) = 0 à ε près 2. Par
 construction :
a ← a 0 ; b ← b0  ( an ) croissante

 (bn ) décroissante
ecart ← | a − b|
et
if f ( a). f (b) > 0 then  | a − b | ∼ 1 | a − b | −−−−→ 0


Afficher : Intervalle non valide n n n 0
2 0 n →+ ∞
else ( an ) et (bn ) adjacentes donc
while ecart > ε do ( an ; bn ) −→ (c; c)
c ← ( a + b)/2 3. Continuité de f implique
if f (c). f ( a) < 0 then f ( a n ) f ( bn ) → f 2 ( c ) ≥ 0
b←c | {z }
≤0
else
a←c ⇒ 0 ≤ f 2 (c) ≤ 0
err ← ecart/2
Bilan : f (c) = 0
Afficher : c

A. Hassan@Champollion PCSI-MPSI – 5
Implémentation de la Dichotomie en Python

1 def dichotomie (f ,a ,b , prec =0.001): Résolution de f ( x ) = 0 où


f : I −→ R
2 """ Méthodes Numériques de
3 Entrees : fonction f , reels a et b , precision prec résolution de f ( x ) = 0
4 Sorties : c une solution de f (x )=0 dans [ a; b ] Dichotomie
5 """ Implémentation de la
Dichotomie en Python
6 err = abs (b - a ):
Méthode de la tangente
7 i f f ( a )* f( b ) >0: # tester si f ( a). f (b) ≤ 0 ou non (Méthode de Newton ou
8 r e t u r n ’ Il faut choisir un autre intervalle ’ Newton-Raphson)
9 else : Illustration Graphique de
10 while err > prec : la méthode Newton
Autre exemple graphique
11 c =0.5*( a +b ); # on se place au milieu de a et b
Implémentation de la
12 i f f (a )* f( c ) <0: méthode de Newton en
13 b= c ; Python
14 else : Analyse de l’algorithme
15 a= c ; de Newton-Raphson
16 err =0.5* err : Inconvénients et limites de
la méthode de
17 return c Newton-Raphson
Le problème de la chèvre
Inconvenients : On ne peut obtenir des racines de multiplicité Problème de la chèvre:
Mise en équation
paire ? ! ! Par exemple ( x − 1)2 = 0 (pourquoi ?). Implémentation en Python

La vitesse de la convergence est de l’ordre 2−n où n est le Graphique


Résultats: (1) Dichotomie
nombre d’itérations.
Résultats: (2) Newton
Exemple: Calcul des
racines carrées (ou n-ième)

A. Hassan@Champollion PCSI-MPSI – 6
Méthode de la tangente (Méthode de Newton ou
Newton-Raphson)

Hypothèse : f une application continue et dérivable sur [ a; b].


Remarque : La condition f ( a). f ( b) < 0 n’est pas nécessaire, mais c’est une condition de
sûreté (localisation de la solution avant recherche)
Principe et Algorithme : Soit xn une estimation courante et Mn ( xn ; f ( xn )) le
point correspondant de la courbe C f .
( T ) : Y − f ( xn ) = f ′ ( xn )( X − xn ) Équation de la tangente en Mn
L’estimation suivante xn+1 est l’abscisse de ( T ) ∩ (Ox )
Y =0
======⇒ 0 − f ( xn ) = f ′ ( xn )( xn+1 − xn )
X = x n+1


sous réserve f ( xn ) f ( xn )
===′=======
⇒ x n +1 = x n − f ′ ( xn )
(où f ′ ( xn )
: terme de correction)
f ( xn )6 =0

Nécessite, en plus de f , le calcul de f ′ (ou une approximation de f ′ ).


Ne nécessite qu’une première estimation(théorème des valeurs intermédiaires
non utilisé)

A. Hassan@Champollion PCSI-MPSI – 7
Illustration Graphique de la méthode Newton


Voici un exemple pour calculer 2 solution de x2 − 2 = 0

4 y bc

3
2
1
bc
0 bc bc bc bc x
-1 x0 = 2.5
-2
-3
-4 Méthode de Newton-Raphson : Résolution de x2 − 2 = 0
-5

A. Hassan@Champollion PCSI-MPSI – 8
Autre exemple graphique

Résolution de x3 + 16x + πx2 + 16π − 384 = 0 par la méthode de Newton

18 y
17 -15.0
16
15
14
13
12
11
10
9
8
7
6
5 -9.5677
4
3
2 -4.90395
1 3.02424
0 -15.0 5.58097
-1 6.69108
-2 x
-3
-4
-5 convergence vers une solution en n = 6 itérations

A. Hassan@Champollion PCSI-MPSI – 9
Implémentation de la méthode de Newton en Python

1 def f (x ): Résolution de f ( x ) = 0 où
f : I −→ R
2 """ definition de f """ Méthodes Numériques de
3 # -------------- -- -- -- - résolution de f ( x ) = 0
4 def df ( x ): Dichotomie
5 """ definition ou calcul de la derivee """ Implémentation de la
Dichotomie en Python
6 # -------------- -- -- -- -
Méthode de la tangente
7 def Newton (f ,df , x0 , prec =0.0001): (Méthode de Newton ou
8 """ Entrees : f fonction , df s derivee et x0 premier estimation Newton-Raphson)
9 prec precision Illustration Graphique de
10 Sorties : x estimation de c une solution de f (x )=0 """ la méthode Newton
Autre exemple graphique
11 y =f ( x0 )
Implémentation de la
12 dy = df ( x0 ) méthode de Newton en
13 iprec =1/ prec Python
14 while abs ( y ) > prec and dy < iprec : Analyse de l’algorithme
15 x0 = x0 - y / dy de Newton-Raphson
16 y =f ( x0 ) Inconvénients et limites de
la méthode de
17 dy = df ( x0 ) Newton-Raphson
18 r e t u r n x0 Le problème de la chèvre
Problème de la chèvre:
Si l’on dispose pas de la formule dérivée on procède par Mise en équation
Implémentation en Python
f ( x + h) − f ( x) Graphique
dérivation numérique f ′ ( x ) ≈ . Résultats: (1) Dichotomie
h ≈0 h
Résultats: (2) Newton
Exemple: Calcul des
racines carrées (ou n-ième)

A. Hassan@Champollion PCSI-MPSI – 10
Analyse de l’algorithme de Newton-Raphson

Notons z la vraie solution f ( x ) = 0. xn estimation de z à l’étape n (xn+1 à l’étape


n + 1). On note rn = xn − z l’erreur d’estimation (écart simple)

f ( xn ) soustraire f ( xn ) rn . f ′ ( xn ) − f ( xn )
x n +1 = x n − ′ (Newton) ===== ==⇒ rn+1 = rn − ′ =
f ( xn ) z f ( xn ) f ′ ( xn )
D’après le DL à l’ordre 2 au voisinage de z
1 ′′
f (z) = f ( xn ) + (z − xn ) f ′ ( xn ) + f ( xn )(z − xn )2 + o((z − xn )2 )
2
1 ′′
0 = f ( xn ) − rn f ′ ( xn ) + f ( xn )r2n + · · · ⇒
2
′ 1 ′′ 2 f ′′ ( xn ) 2 2
r n f ( x n ) − f ( x n ) = f ( x n )r n ⇒ r n +1 = r + o ( r n)
2 2. f ′ ( xn ) n

f ′′ ( xn )
Si ′ < k < 1 au voisinage de z (i.e. bornée) alors la convergence est
2. f ( xn )
quadratique : rn ∼ 10−2 ⇒ rn+1 ∼ 10−4 ⇒ rn+2 ∼ 10−8 ⇒ rn+4 ∼ 10−16 . . . etc
i.e. doublement du nombre de chiffres significatifs à chaque étape

A. Hassan@Champollion PCSI-MPSI – 11
Inconvénients et limites de la méthode de
Newton-Raphson

1. Nécessité de connaître ou le calcul de f ′ qui est parfois Résolution de f ( x ) = 0 où

indisponible et/ou difficile. f : I −→ R


Méthodes Numériques de
2. f ′ peut s’annuler au voisinage de la solution résolution de f ( x ) = 0
Dichotomie
3. f n’est pas assez convexe (ou concave) au voisinage de la Implémentation de la
Dichotomie en Python
solution. Méthode de la tangente
(Méthode de Newton ou
Newton-Raphson)
Illustration Graphique de
bc bc bc la méthode Newton
Autre exemple graphique
Implémentation de la
méthode de Newton en
bc b bc bc b bc bc Python
bc bc
Analyse de l’algorithme
z z bc
de Newton-Raphson
Inconvénients et limites de
bc la méthode de
Newton-Raphson
f ′ ( x0 ) ≈ 0 z point d’inflexion Le problème de la chèvre
Problème de la chèvre:
Mise en équation
Implémentation en Python
Remède ? mélanger Newton avec la dichotomie : Dichotomie Graphique
pour s’approcher de la solution z puis suivre par Résultats: (1) Dichotomie

Newton-Raphson Résultats: (2) Newton


Exemple: Calcul des
racines carrées (ou n-ième)

A. Hassan@Champollion PCSI-MPSI – 12
Le problème de la chèvre

On dispose d’un champ circulaire de rayon R(= 1). Une chèvre Résolution de f ( x ) = 0 où

est attaché par une corde de longueur x à un piquet planté sur f : I −→ R


Méthodes Numériques de
la circonférence du champs. résolution de f ( x ) = 0
Dichotomie
Problème : Calculer x afin que la chèvre broute au maximum la Implémentation de la
Dichotomie en Python
moitié de la surface du champ. Méthode de la tangente
(Méthode de Newton ou
Montrer que : Newton-Raphson)
1 2 1 Illustration Graphique de
S = S1 + S2 = R (2α − sin(2α)) + x2 (2β − sin(2β)) ? la méthode Newton
2  2 Autre exemple graphique
Implémentation de la
[ =α
CΩA méthode de Newton en
Python
Abc [ =β
ACΩ Analyse de l’algorithme
de Newton-Raphson

R x Inconvénients et limites de
la méthode de
Newton-Raphson
bc bc Le problème de la chèvre

Ω C Problème de la chèvre:
Mise en équation
Implémentation en Python
Graphique
bc
Résultats: (1) Dichotomie

Résultats: (2) Newton


Exemple: Calcul des
racines carrées (ou n-ième)

A. Hassan@Champollion PCSI-MPSI – 13
Problème de la chèvre : Mise en équation

1. On note Résolution de f ( x ) = 0 où
x longueur de la corde. R rayon du champs circulaire. f : I −→ R
Méthodes Numériques de
[ et β = ACΩ
α = AΩC [ avec β ∈ [0; π [ résolution de f ( x ) = 0
Dichotomie
À partir du triangle
 ΩAC ⇒ α + 2β = π
Implémentation de la
Dichotomie en Python

 S1 = 1 R2 (2α − sin(2α)) Méthode de la tangente


(Méthode de Newton ou
S = S1 + S2 où 2 Newton-Raphson)
1
 S = x2 (2β − sin(2β)) Illustration Graphique de
2 la méthode Newton
2 Autre exemple graphique
2. On cherche x tel que (α et β dépendent de x) Implémentation de la
méthode de Newton en
1 2 1 1
R (2α − sin(2α)) + x2 (2β − sin(2β)) = πR2 Python

2 2  2
Analyse de l’algorithme
de Newton-Raphson
1
3. R. sin(α) = x. sin( β) ⇐⇒ x = 2R sin α Inconvénients et limites de
2 la méthode de
Newton-Raphson
π Le problème de la chèvre
4. Bilan : Résoudre sin(α) + (π − α) cos(α) − = 0
2 Problème de la chèvre:
Mise en équation
Cette équation n’a pas de solution analytique (on dit aussi Implémentation en Python
Graphique
formelle) Résultats: (1) Dichotomie

Résultats: (2) Newton


Exemple: Calcul des
racines carrées (ou n-ième)

A. Hassan@Champollion PCSI-MPSI – 14
Implémentation en Python

1 # # charger des modules math {\ ’ e } matiques et graphiques : Résolution de f ( x ) = 0 où


f : I −→ R
2 from numpy import * # charger le module numpy Méthodes Numériques de
3 from matplotlib . pyplot import * # charger le package matplotlib . pyplot résolution de f ( x ) = 0
4 # Dichotomie
5 def f (t ): Implémentation de la
Dichotomie en Python
6 """ surface broutee par la chevre
Méthode de la tangente
7 en fonction de l ’ angle central """ (Méthode de Newton ou
8 r e t u r n sin ( t )+( pi - t )* cos (t ) - pi /2 Newton-Raphson)
9 # Illustration Graphique de
10 def df ( t ): la méthode Newton
Autre exemple graphique
11 """ derivee de f """
Implémentation de la
12 r e t u r n (t - pi )* sin ( t ) méthode de Newton en
Python
On sait à l’avance que le problème possède une solution unique Analyse de l’algorithme
de Newton-Raphson
(pourquoi ?). Inconvénients et limites de
la méthode de
Le calcul des valeurs en α = 1 et α = 2 de la fonction montre Newton-Raphson
Le problème de la chèvre
que f (1). f (2) < 0 Problème de la chèvre:
Mise en équation
1 >>> ( f (1) , f (2)) Implémentation en Python
2 (0.42778210697783337 , -1.136569071386065) Graphique
3 >>> # ou bien Résultats: (1) Dichotomie
4 >>> f (1)* f (2) <0
5 True Résultats: (2) Newton
Exemple: Calcul des
racines carrées (ou n-ième)

A. Hassan@Champollion PCSI-MPSI – 15
Graphique

f (t) = sin(t) − (π − t) cos(t) − π/2


1 # 2
2 # construction du graphique
3 #
4 clf ()
1
5 T= linspace (0 , mm .pi ,100)
6 Y =[]
7 f o r t in T :
8 Y . append ( chevre (t )) 0 bc
9 clf ()
10 axis ([ -.5 , 3 , -1 , 4])
11 plot (T ,Y ,[0 ,3] ,[0 ,0])
12 title ( " Graphe " )
-1
13 grid ( True )
14 savefig (" chevre . eps ")
15 show () -2
16 hold ( ’ off ’)

-3

A. Hassan@Champollion PCSI-MPSI – 16
Résultats : (1) Dichotomie

1. Dichotomie : α est calculé avec une précision de 10−4 en 13 Résolution de f ( x ) = 0 où


f : I −→ R
étapes Méthodes Numériques de
résolution de f ( x ) = 0
1 >>> a , b =1 ,2 Dichotomie
2 >>> lx , n= dichotomy (f ,a , b ) Implémentation de la
Dichotomie en Python
3 >>> lx # liste des abscisses
Méthode de la tangente
4 [1.5 , 1.25 , 1.125 , 1.1875 , 1.21875 , 1.234375 , (Méthode de Newton ou
5 1.2421875 , 1.23828125 , 1.236328125 ,1.2353515625 , Newton-Raphson)
6 1.23583984375 , 1.236083984375 , Illustration Graphique de
la méthode Newton
7 1.2359619140625 , 1.23590087890625]
Autre exemple graphique
8 >>> n # nombre d ’ etapes
Implémentation de la
9 13 méthode de Newton en
10 >>> lx [13] Python
11 1.23590087890625 Analyse de l’algorithme
de Newton-Raphson
12 >>> # la longueur est
Inconvénients et limites de
13 >>> x =2* sin ( lx [13]/2) la méthode de
14 >>> x Newton-Raphson
15 1.158731696308239 Le problème de la chèvre
16 >>> Problème de la chèvre:
Mise en équation
Implémentation en Python
Graphique
Résultats: (1) Dichotomie

Résultats: (2) Newton


Exemple: Calcul des
racines carrées (ou n-ième)

A. Hassan@Champollion PCSI-MPSI – 17
3 Résolution de f ( x ) = 0 où
y f : I −→ R
Méthodes Numériques de
résolution de f ( x ) = 0
Dichotomie
2 Implémentation de la
Dichotomie en Python
Méthode de la tangente
(Méthode de Newton ou
1 Newton-Raphson)
Illustration Graphique de
la méthode Newton
Autre exemple graphique
0 bc bc bc
Implémentation de la
méthode de Newton en
α Python
Analyse de l’algorithme
de Newton-Raphson
-1 Inconvénients et limites de
la méthode de
Newton-Raphson
Le problème de la chèvre
-2 Problème de la chèvre:
Mise en équation
Implémentation en Python
Graphique
-3 Résultats: (1) Dichotomie

Résultats: (2) Newton


Exemple: Calcul des
racines carrées (ou n-ième)

A. Hassan@Champollion PCSI-MPSI – 18
Résultats : (2) Newton

3 y

b
1

0 b bb b

b
α
-1

-2
0 1 2 3

1 >>> Newton (f ,df ,1)


2 (1.2358967280205841 , 2)

A. Hassan@Champollion PCSI-MPSI – 19
Exemple : Calcul des racines carrées (ou n-ième)

Il s’agit de résoudre l’équation x n − a = 0 sur R + . Résolution de f ( x ) = 0 où


f : I −→ R
L’algorithme de Newton conduit à la suite Méthodes Numériques de
résolution de f ( x ) = 0
Dichotomie
xkn − a Implémentation de la
x k +1 = x k + Dichotomie en Python
nxkn−1 Méthode de la tangente
(Méthode de Newton ou
Newton-Raphson)
Illustration Graphique de
la méthode Newton
Autre exemple graphique
Implémentation de la
méthode de Newton en
Python
Analyse de l’algorithme
de Newton-Raphson
Inconvénients et limites de
la méthode de
Newton-Raphson
Le problème de la chèvre
Problème de la chèvre:
Mise en équation
Implémentation en Python
Graphique
Résultats: (1) Dichotomie

Résultats: (2) Newton


Exemple: Calcul des
racines carrées (ou n-ième)

A. Hassan@Champollion PCSI-MPSI – 20