Vous êtes sur la page 1sur 47

Cours de Calcul Numérique

INFO-F-205
G. Bontempi
S. Ben Taieb,
C. Olsen

Département d’Informatique
Boulevard de Triomphe - CP 212
http://www.ulb.ac.be/di

Cours de calcul numérique – p. 1/47


Résolution des équations non linéaires.
• Définition du problème.
• Définition de la convergence.
• Méthodes:
• de la bissection,
• de la corde,
• de la sécante,
• de la fausse position ou Regula Falsi,
• de Newton.
• Itérations de point fixe.

Cours de calcul numérique – p. 2/47


Exemple pratique: balle flottante
Selon le théorème d’Archimede, tout corps plongé dans un fluide reçoit de la
part de celui-ci une poussée verticale dirigée de bas en haut égale au poids
du volume de fluide deplacé par le corps.

r
r−x

Cours de calcul numérique – p. 3/47


Exemple pratique: balle flottante
• Le volume du fluide deplacé est le volume de la calotte spherique de
hauteur x et rayon r
x
1 2
Z
V = π(r 2 − (r − x + z)2 )dz = πx (3r − x)
0 3

• Le poids du corps sphérique de densité ρ est

P = ρ(4πr 3 )/3

• Supposons que le liquide ait densité unitaire


• Afin de connaître la profondeur de l’immersion de la balle, il faut
résoudre l’équation non linéaire

πx2 (3r − x)/3 = ρ(4πr 3 )/3

qui pour r = 1 peut être simplifiée dans la forme

x3 − 3x2 + 4ρ = 0

Cours de calcul numérique – p. 4/47


Exemple: cinematique d’un bras robotisé
Considerons le bras d’un robot à deux articulations de longeur d1 et d2 ,
respectivement.
La position du bras peut être décrite par l’angle α que la première articulation
forme avec l’axe horizontale et l’angle β entre les deux articulations.
Supposons de vouloir trouver les valeurs des deux angles tels que l’extremité
de la deuxième articulation se trouve sur un point donné de coordonnées
p1 , p2 .
y

β
d2

p2

d1

α
x
p1

Cours de calcul numérique – p. 5/47


Exemple: cinematique d’un bras robotisé
Il faut résoudre le système d’équations non linéaires
(
p1 = d1 cos(α) + d2 cos(α + β)
p2 = d1 sin(α) + d2 sin(α + β)

Cours de calcul numérique – p. 6/47


Autres exemples
• Trouver la racine cubique de 2.
• Trouver le point d’équilibre d’un système dynamique.
• Trouver l’intersection entre deux fonctions f (x) et g(x).

Cours de calcul numérique – p. 7/47


Le problème
Étant donné une fonction réelle continue d’une variable réelle

f : I = [a, b] ⊆ R → R

telle que f (α) = 0, trouver la racine réelle α.


Plusieurs situations peuvent se produire :

pas de solution 1 solution 2 solutions

Notons que si α est une racine multiple de multiplicité m > 1, alors aussi
f (k) (α) = 0, k = 0, . . . , m − 1 où f (k) est la fonction derivée d’ordre k.

Cours de calcul numérique – p. 8/47


Solution itérative
• Pour une fonction non linéaire quelconque, la solution analytique est
rarement disponible.
• Les méthodes numériques pour approcher une racine α sont en général
itératives.
• Si la méthode est itérative le problème consiste à construire une suite
{x(k) } telle que
lim x(k) = α
k→∞

• En posant g ′ = f , le problème est lié à la recherche des extrêmes d’une


fonction g (optimisation), car les zéros de f sont aussi les extrêmes de g.

Cours de calcul numérique – p. 9/47


Convergence de la méthode
Définition. On dit qu’une suite {x(k) } converge vers α avec un ordre p ≥ 1 si

|x(k+1) − α|
∃C > 0 : (k) p
≤ C, ∀k ≥ k0
|x − α|

où la constante C est dite le facteur de convergence de la méthode.

• L’ordre p n’est pas forcement un nombre entier.


• Si l’ordre p = 1 et C < 1, la convergence est dite linéaire.
• La convergence est autant plus rapide que la valeur de p est grande.

Cours de calcul numérique – p. 10/47


Convergence et fonctions non-linéaires
• La convergence des méthodes itératives pour la détermination des
racines d’une équation non linéaire dépend en général du choix de la
donnée initiale x(0) .
• Les méthodes qui convergent vers α pour tout choix de x(0) ∈ I sont
dites globalement convergentes vers α.
• La plupart des fois on ne peut établir que des résultats de convergence
locale, c.à.d. valables seulement pour un x(0) qui appartient à un
voisinage de la racine α.
• Typiquement les méthodes à convergence locale ont un ordre de
convergence plus grand.

Cours de calcul numérique – p. 11/47


Méthode de la bissection
La méthode est fondée sur le théorème suivant:

Théorème (Zéros d’une fonction continue). Soit f une fonction continue f : [a, b] → R. Si
f (a)f (b) < 0, alors
∃α ∈]a, b[ tel que f (α) = 0

a
α b

Cours de calcul numérique – p. 12/47


Algorithme de la bissection
(0) (0) (0) a(0) +b(0)
a = a, b = b, et x = 2 .

Pour k ≥ 0 et tant que |Ik | = |b(k) − a(k) | > ǫ

• Si f (x(k) ) = 0 alors x(k) est la racine α.


• Si f (x(k) )f (a(k) ) < 0
• a(k+1) = a(k) , b(k+1) = x(k)
• Si f (x(k) )f (b(k) ) < 0
• a(k+1) = x(k) , b(k+1) = b(k)
• x(k+1) = a(k+1) +b(k+1)
2

Cours de calcul numérique – p. 13/47


Convergence de la méthode
• |I0 | = |b − a|
• |Ik | = |b(k) − a(k) | = |I0 | |b−a|
2k
= 2k
pour k ≥ 0
• En notant e(k) = α − x(k) l’ erreur absolue à l’étape k, on déduit que

(k) (k) |Ik | |b − a|


|e | = |α − x |≤ = k+1 pour k ≥ 0
2 2

ce qui entraîne
lim |e(k) | = 0
k→∞

• Donc la méthode de la bissection est globalement convergente.

Cours de calcul numérique – p. 14/47


Nombre d’itérations
Afin d’avoir à la (m − 1)-ième étape

|b − a|
|e(m−1) | = |x(m−1) − α| ≤ m
≤ǫ
2

la valeur m ∈ N doit satisfaire la relation

b−a
2m ≥
ǫ
ln(x)
qui, puisque loga (x) = ln(a) où ln est le logarithme népérien, implique

(b − a) ln((b − a)/ǫ) ln((b − a)/ǫ)


m ≥ log2 = ≈
ǫ ln(2) 0.6931
où ǫ > 0 est une valeur fixée à l’avance.

Cours de calcul numérique – p. 15/47


Exemple
Si a = 0, b = 1 et ǫ = 1/100,

ln((b − a)/ǫ)
= 6.64
0.6931

Donc m = 7. Ceci signifie que à la sixième étape de l’algorithme la valeur


absolue de l’erreur sera inférieure à 0.01.

Cours de calcul numérique – p. 16/47


Généralités sur la méthode
• La méthode de bissection ne prend pas en compte les informations
données par les valeurs absolues de f (·) ni celles données par sa
dérivée f ′ (·).
• Soit |x(j) − α| l’erreur à l’étape j. Nous voulons déterminer à quelle
étape k > j l’erreur sera un dixième de l’erreur à la jème étape. Puisque

(k) |I0 | (k) |x(j) − α| |I0 |


|x − α| ≤ k+1 et |x − α| = ≤ j+1
2 10 2 · 10

une estimation rapide peut être obtenue en imposant l’égalité des deux
bornes supérieures. Nous obtenons

2k+1 = 2j+1 · 10 ⇒ k − j = log2 (10) ≈ 3.32

c.à.d., l’algorithme de bissection converge lentement.

Cours de calcul numérique – p. 17/47


Généralités sur la méthode (II)
• la méthode ne garantit pas la réduction monotone de l’erreur.
• la méthode n’est pas une méthode d’ordre 1 au sens de la définition
d’ordre de convergence.
• la méthode est typiquement utilisée pour avoir une bonne initialisation
d’une méthode d’ordre supérieure.

Cours de calcul numérique – p. 18/47


Méthodes linéarisées
Développons f (·) en série de Taylor autour de la racine α

f (α) = 0 = f (x′ ) + (α − x′ )f ′ (ξ) où ξ ∈ [x′ , α]

où f (x′ ) 6= 0
Il suit
f (x′ )

α=x − ′
f (ξ)
En d’autres termes, si on connaissait la valeur ξ on pourrait obtenir la
solution α à partir de la solution approachée x′ .

Cours de calcul numérique – p. 19/47


Méthodes linéarisées
L’équation d’une droite qui passe par le point (x′ , f (x′ )) et qui a le pente f ′ (ξ)
est la suivante
y = f ′ (ξ)x + f (x′ ) − f ′ (ξ)x′
La relation
0 = f (x′ ) + (α − x′ )f ′ (ξ)
peut être interprétée de manière géometrique de la manière suivante: le
point α est l’intersection entre l’axe x et la droite qui passe par le point
(x′ , f (x′ )) et qui a le pente f ′ (ξ)
f()

x’ ξ
α

Cours de calcul numérique – p. 20/47


Méthodes linéarisées
Cette équation conduit à la méthode itérative suivante:

f (x(k) ) + (x(k+1) − x(k) )qk = 0 ⇔ x(k+1) = x(k) − qk−1 f (x(k) )

où qk est une approximation de f ′ (ξ).


Cela revient à
1. approcher une fonction non-linéaire par une droite et
2. déterminer x(k+1) comme l’intersection entre l’axe des x et la droite de
pente qk passant par (x(k) , f (x(k) )).
Nous montrerons 4 méthodes qui se différencient par le choix de qk .

Cours de calcul numérique – p. 21/47


Choix de qk (I)
x(k+1) = x(k) − qk−1 f (x(k) )

• Méthode de la corde
f (b) − f (a)
qk = =q
b−a
est la pente de la droite passant par A = (a, f (a)) et B = (b, f (b));
• Méthode de la sécante

f (x(k) ) − f (x(k−1) )
qk =
x(k) − x(k−1)

est la pente de la droite passant par (x(k−1) , f (x(k−1) )) et (x(k) , f (x(k) ));
Comparée à la méthode de la corde, cette méthode nécessite une
donnée initiale supplémentaire x(−1) , ainsi que, le calcul d’un quotient
pour chaque k.

Cours de calcul numérique – p. 22/47


Choix de qk (II)
• Méthode de la fausse position

(k) (k′ )
f (x ) − f (x )
qk =
x(k) − x(k′ )
′ (k) (k′ )
où k est le plus grand indice inférieur à k tel que f (x )f (x ) < 0.
• Méthode de Newton-Raphson On suppose f (·) continue sur I, f ′ (α) 6= 0 et
on pose
qk = f ′ (x(k) )
c.à.d. la pente de la tangente à f (·) en x(k) .
Cette méthode nécessite l’évaluation de la fonction f (·) et de sa dérivée
f ′ (·).

Cours de calcul numérique – p. 23/47


Méthode de la corde

(0)
a x
x(1)
α b
A

La méthode ne converge pas toujours. Si la méthode converge, elle converge


avec un ordre p = 1.

Cours de calcul numérique – p. 24/47


Méthode de la sécante
A

(1)
x(2) α x x(0) b
a

B
Convergence locale: si f ∈ C 2 , si les données initiales sont assez proches
de α et f ′ (α) 6= 0, la méthode converge avec un ordre p = 1.63.

Cours de calcul numérique – p. 25/47


Méthode de la fausse position
A

x(2) x(1) (0)


x b
a α

B
La méthode est globalement convergente et converge avec un ordre p = 1.

Cours de calcul numérique – p. 26/47


Méthode de Newton
A

(0)
α x b
a
x(1) x(2)

B
Convergence locale: si x(0) est assez proche de α et f ′ (α) 6= 0, la méthode
converge avec un ordre p = 2.

Cours de calcul numérique – p. 27/47


Itérations de point fixe

Définition (Point fixe). Le point fixe d’une fonction φ(·) est un nombre réel p tel que
φ(p) = p.
• Idée:
transformer le problème f (x) = 0 où f : [a, b] → R en un problème
équivalent
x − φ(x) = 0 c-à-d. x = φ(x)
où φ(·) est telle que φ(α) = α.
• Cette transformation est toujours possible mais elle n’est pas unique.
• Exemple: φ(x) = F (f (x)) + x où F (·) est une fonction continue telle que
F (0) = 0.

Cours de calcul numérique – p. 28/47


Algorithme d’itération de point fixe
• Approcher les zéros de f (·) revient à déterminer les points fixes de φ(·).
• Étant donné x(0) , l’algorithme itératif est le suivant

x(k+1) = φ(x(k) ) pour k ≥ 0

où l’itération est dite de point fixe et φ(·) est dite la fonction d’itération
associée.
• La méthode est fortement consistante.
• Dans ce qui suit, nous allons analyser sa convergence.

Cours de calcul numérique – p. 29/47


Convergence de l’itération de point fixe (1)
Théorème. Soit φ(·) une fonction continue et {x(k) }∞
k=0 une suite générée par l’itération de
point fixe. Si la suite converge
lim x(k) = α
k→∞

alors le point limite α est un point fixe de φ(·).

Exemple: considerons l’itération

(k+1) −x(k)
x =e où x(0) = 0.5

On peut montrer que


lim x(k) = 0.567143
k→∞

où la limite est le point fixe de la fonction φ(x) = e−x et également la racine


de la fonction f (x) = e−x − x.

Cours de calcul numérique – p. 30/47


Convergence de l’itération de point fixe (2)
Théorème. Soit φ(·) ∈ C 1 [a, b].
• Si ∀x ∈ [a, b], φ(x) ∈ [a, b] alors φ(·) a un point fixe dans [a, b]
• Si, de plus, ∃K < 1 : |φ′ (x)| ≤ K ∀x ∈ [a, b] alors φ(·) a un unique point fixe α
dans [a, b] et la suite {x(k) } converge vers α pour tout choix de x(0) . Dans ce cas α
est appelé point attracteur.
• Si |φ′ (x)| > 1 ∀x ∈ [a, b] alors la suite {x(k) } ne converge pas si x(0) 6= α . Dans
ce cas α est appelé point répulsif.

Notons que la deuxième partie de ce théorème donne des conditions


suffisantes pour que la méthode de point fixe converge vers la racine α pour
tout choix de la valeur initiale x(0) .

Cours de calcul numérique – p. 31/47


Point attracteur

φ(x (0) )
φ(x (1) )

α
x (3) x (2) x (1) x (0)

Cours de calcul numérique – p. 32/47


Point répulsif

φ(x (1) )

φ(x (0) )

α
x (0) x (1) x (2) x (3)

Cours de calcul numérique – p. 33/47


Convergence locale
En pratique il est souvent difficile de montrer la convergence globale. Dans
ce cas , un résultat de convergence locale peut s’avérer utile.

Théorème (Ostrowski). Soit α un point fixe d’une fonction φ continue et differentiable dans
un voisinage I de α. Si |φ′ (α)| < 1 alors il existe δ > 0 tel que que la suite {x(k) }
converge vers α pour tout x(0) tel que |x(0) − α| < δ .

Si |φ′ (α)| > 1 la convergence est impossible.

Si |φ′ (α)| = 1 on ne peut en général tirer aucune conclusion. Selon le


problème considéré, il peut y avoir convergence ou divergence.

Cours de calcul numérique – p. 34/47


Convergence d’ordre supérieur
Théorème. Si
• la fonction φ ∈ C p+1 (I) pour un certain voisinage I de α
• p≥1
• φ(i) (α) = 0 pour 1 ≤ i ≤ p
• φ(p+1) (α) 6= 0
alors la méthode de point fixe associée à la fonction d’itération φ est d’ordre p + 1 et

x(k+1) − α φp+1 (α)


lim =
k→∞ (x(k) − α)p+1 (p + 1)!

On dit alors que le point fixe est d’ordre p + 1.

Cours de calcul numérique – p. 35/47


Analyse de la méthode de la corde
La méthode de la corde peut être écrite sous la forme d’itération de point fixe
x(k+1) = φ(x(k) ) où
b−a
φ(x) = x − f (x)
f (b) − f (a)
Puisque
′ b−a
φ (x) = 1 − f ′ (x)
f (b) − f (a)
la condition de convergence locale |φ′ (α)| < 1 est équivalente à

b−a
0< f ′ (α) < 2
f (b) − f (a)

Si cette condition est satisfaite la convergence est linéaire (sauf le cas


exceptionnel où φ′ (α) = 0).

Cours de calcul numérique – p. 36/47


Analyse de la méthode de Newton
La méthode de Newton peut être écrite sous la forme x(k+1) = φ(x(k) ) où

f (x)
φ(x) = x − ′
f (x)

Puisque f (α) = 0, en supposant f ′ (α) 6= 0 on obtient

′ (f ′ (x))2 − f (x)f ′′ (x) ′


φ (x) = 1 − ′ 2
⇒ φ (α) = 0
(f (x))

La méthode est convergente localement. On peut montrer qu’elle est


convergente d’ordre p = 2.

Cours de calcul numérique – p. 37/47


Exemples graphiques
>> s_iter.m: recherche de la racine de la fonction

f (x) = x3 − 8

>> s_fixpt.m: recherche du point fixe de la fonction

φ(x) = log(x + 4)

Cours de calcul numérique – p. 38/47


Erreur et résidu
• Soit x(k) une solution approchée de la racine α à la k-ième itération.
• Nous définissons l’erreur

e(k) = α − x(k)

et le résidu
r (k) = f (x(k) ) − f (α) = f (x(k) )
• Si α est une racine de multiplicité m, c.-à-d. f (k) = 0 pour
k = 1, . . . , m − 1, alors

(k) f (m) (α) (k) m (k) f (m) (α) (k) m


f (x ) ≈ f (α) + (x − α) ⇔ r ≈ (e )
m! m!

c.-à-d.
 1/m
m!
e(k) ≈ (r (k) )1/m
|f (m) (α)|

Cours de calcul numérique – p. 39/47


Erreur et incrément
Soit x(k) la suite produite par l’algorithme de point fixe. Puisque

e(k+1) = α − x(k+1) = φ(α) − φ(x(k) ) =


= φ′ (η (k) )(α − x(k) ) = φ′ (η (k) )e(k)

où η (k) est entre α et x(k) (th. valeur moyenne), on obtient


 
x(k+1) − x(k) = α − x(k) − (α − x(k+1) ) = e(k) − e(k+1) = 1 − φ′ (η (k) ) e(k)

et en supposant que on puisse remplacer φ′ (η (k) ) par φ′ (α) on obtient


l’approximation
1  
e(k) ≈ x(k+1)
− x (k)
1 − φ′ (α)

Cours de calcul numérique – p. 40/47


Critère d’arrêt sur le résidu
Soit e(k) = α − x(k) et ε une tolérance fixée pour le calcul approché de α.
Nous supposerons de plus f continûment différentiable dans un voisinage de
α
Contrôle du résidu: les itérations s’achèvent dès que |r (k) | = |f (x(k) )| < ε.
Puisque
 1/m
m!
|e(k) | ≈ (m)
|f (x(k) 1/m
)|
|f (α)|
pour m = 1
1. si |f ′ (α)| ≈ 1, alors e(k) ≈ ε.
2. si |f ′ (α)| << 1, |e(k) | peut être assez grand par rapport à ε.
3. si |f ′ (α)| >> 1, on a |e(k) | << ε, c.à.d. le test est trop restrictif.

Cours de calcul numérique – p. 41/47


Critères d’arrêt sur l’incrément
Contrôle de l’incrément: les itérations s’achèvent dès que |x(k+1) − x(k) | < ε.
Puisque
(k) 1 (k+1) (k)
e ≈ (x − x )
1 − φ′ (α)
le test
• n’est pas satisfaisant si φ′ (α) est proche de 1.
• est optimal si φ′ (α) = 0 (comme pour la méthode de Newton)
• est encore satisfaisant si −1 < φ′ (α) < 0.
1
Voir la relation entre φ′ (α) et 1−φ′ (α) dans le graphique suivant.

Cours de calcul numérique – p. 42/47


12

10

1/(1−φ’(α)) 8

0
−2 −1.5 −1 −0.5 0 0.5 1
φ’(α)

Cours de calcul numérique – p. 43/47


Critères d’arrêt sur l’incrément
Il serait donc intéressant estimer la valeur de φ′ (α) tout en connaissant pas la
valeur de α.
Puisque (α − x(k+1) ) = φ′ (η (k) )(α − x(k) ) nous pouvons supposer

(α − x(k+1) ) ≈ φ′ (α)(α − x(k) )

Il s’ensuit que

α−x(k+1)
(k+1) x (k+1)
−x (k) (k)
(α − x ) − (α − x ) 1−
(k+1)
α−x(k)
λ = (k) (k−1)
= (k−1) (k)
= α−x(k−1)
x −x (α − x ) − (α − x ) −1
α−x(k)

Donc
1 − φ′ (α)
λ(k+1) ≈ 1
φ′ (α) − 1

et
lim λ(k) = φ′ (α)
k→∞

Cours de calcul numérique – p. 44/47


Systèmes d’équations non linéaires
Jusqu’ici nous n’avons considéré que la résolution des fonctions réelles d’une
variable réelle.
Soit F : Rn → Rn , n > 1 une fonction dont l’ensemble de définition et l’image
sont multivariés. Par exemple considérons le système non-linéaire F (X) = 0
(
x21 + x22 − 1 = 0
2x1 + x2 − 1 = 0

Nous considérons le problème suivant:


trouver X ∗ ∈ Rn tel que F (X ∗ ) = 0
Il est possible étendre au cas de la dimension n > 1 certains des algorithmes
pour le cas scalaire.

Cours de calcul numérique – p. 45/47


Méthode vectorielle de Newton
Dans le cas scalaire

(k+1) (k) f (x(k) )


x =x − ′ (k) = x(k) + δx(k)
f (x )


f ′ (x(k) )δx(k) = −f (x(k) )
Pour le cas vectoriel la méthode devient

X (k+1) = X (k) + δX (k)


où δX (k) ∈ Rn et
JF (X (k) )δX (k) = −F (X (k) )
et JF (X) est la matrice Jacobienne [n, n] associée à F et évaluée au point
X ∈ Rn .

Cours de calcul numérique – p. 46/47


Méthode vectorielle de Newton
• La méthode vectorielle demande la résolution d’un système linéaire
avec matrice des coefficients JF (X (k) ) à chaque itération.
• Il est possible montrer que si F ∈ C 1 , JF est inversible et X (0) est assez
proche de la solution X ∗ , alors la méthode converge de manière
quadratique.
• Toutefois, la méthode présente plusieurs inconvenients:
1. elle demande le calcul symbolique du Jacobian,
2. la matrice JF pourrait être mal conditionnée
3. le calcul de l’inverse de JF peut être trop couteux pour n grand.
• Pour ces raisons, plusieurs versions modifiées de la méthode de Newton
ont été proposées (méthodes Quasi-Newton).
• Une méthode modifiée de Newton consiste à garder la matrice
Jacobienne (ou plutôt sa factorisation) inchangée pendant un certain
nombre ≤ 2 d’étapes. Ceci réduit le coût du calcul mais aussi la vitesse
de convergence.

Cours de calcul numérique – p. 47/47

Vous aimerez peut-être aussi