Méthodes de Newton Gauss et moindres carrés

publicité
La méthode de Newton et ses variantes pour l’optimisation
Thierry Audibert
[email protected]
21 décembre 2013
Disponible sur http://www.univenligne.fr sous le nom NewtonGauss.pdf
Table des matières
1
Objectifs du chapitre
2
2
Méthode de Newton en dimension 1
2.1 Première approche de la méthode de Newton . . . . . . . . . . . . . . . . . . .
2.2 Vitesse ou ordre de convergence d’un méthode itérative . . . . . . . . . . . . . .
2.3 De la difficulté de mise en œuvre de la méthode de Newton . . . . . . . . . . . .
2
2
5
9
3
Méthode de Newton en dimensions supérieures
3.1 Brefs rappels de calcul différentiel . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 La méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
10
14
4
Méthodes d’optimisation, généralités
4.1 Rechercher les zéros du gradient pour optimiser . . . . . . . . . . . . . . . . . .
4.2 Un préalable : minimisation selon une ligne de descente . . . . . . . . . . . . . .
16
16
16
5
Problèmes de moindres carrés
5.1 Exemples de problèmes de moindres carrés . . .
5.2 Algorithme et matrice de Gauss-Newton . . . . .
5.3 Mise en œuvre : MAPLE et formule harmonique
5.4 Mise en œuvre : Scilab et formule harmonique . .
24
24
27
29
36
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
Méthode quasi-Newton (BFGS)
37
7
Annexe : historique des méthodes de moindres carrés
38
8
Correction des exercices
39
1
1
Objectifs du chapitre
La méthode de Newton consiste à approcher une solution x∗ de l’équation f (x) = 0 pour laquelle
Df (x∗ ) est inversible en la regardant comme solution de F (x∗ ) = x∗ avec
F (x) = x − D−1 f (x) ◦ f (x).
Nous introduisons la méthode en commençant par un étude détaillée (convergence, vitesse de
convergence, bassin d’attraction...) pour les fonctions d’une variable réelle. Cela permet de proposer certaines démonstrations au niveau L1. L’étude de la méthode pour des fonctions de plusieurs
variables demande un minimum de calcul différentiel et se situe au niveau L2 et elle est traitée
séparément bien que les résultats soient identiques.
Plus que de résoudre des systèmes d’équations, l’objectif est ici de proposer une méthode d’optimisation : on recherche généralement les points réalisant le minimum d’une fonction à valeurs
réelles f en recherchant les points en lesquels g = Df (ou f 0 ) s’annule 1 . La fonction auxiliaire
s’exprime alors F (x) = x − Dg(x)−1 ◦ g(x) et fait intervenir la hessienne de f : Dg = Hf (ou
g 0 = f ”).
Ce qui fait l’intérêt de la méthode c’est la rapidité de convergence des suites xn+1 = F (xn )
lorsque convergence il y a. Mais le choix d’un x0 assurant cette convergence n’est pas aisé et
le calcul de Dg(x)−1 = Hf (x)−1 peut s’avérer coûteux. Cela nous incite à introduire comme
méthodes effectives, les méthodes Gauss-Newton pour l’étude de problèmes de moindres carrés
puis les méthodes de type quasi-Newton.
Une mise en œuvre de chacune des méthodes exposées est détaillée et implémentée sous MAPLE
et/ou Scilab pour la résolution de problèmes effectifs : détermination des coefficients de marée (et
donc prévision des hauteurs de marée), recherche du centre d’un cercle dont on connait approximativement quelques points (issu d’une problèmatique industrielle). C’est encore l’occasion de
discuter des difficultés numériques lors du passage au monde réel.
2
Méthode de Newton en dimension 1
On rappelle brièvement le principe de la méthode de Newton pour la résolution approchée d’une
équation f (x) = 0 lorsque f est de classe C 2, f 0 (x∗ ) 6= 0 en x∗ tel que f (x∗ ) = 0.
2.1
Première approche de la méthode de Newton
Théorème 1
Soient f une fonction de classe C 2 sur l’intervalle ouvert I =]a, b[, c un point de I en lequel
f (c) = 0 et |f 0 (c)| > 0 et F la fonction de classe C 1 définie par
f (x)
F (x) = x − 0
f (x)
Alors,
1. Ce qui, rappelons le, n’est pas une condition suffisante pour que la fonction atteigne un extremum local et encore
moins global en ce point.
2
1. La fonction F est définie sur un voisinage ouvert de c;
2. c est un point fixe super attractif de F (ie : F (c) = c et F 0 (c) = 0).
3. Il existe δ > 0 tel que
(a) l’intervalle J = [c − δ, c + δ] est contenu dans DF et stable par f ;
(b) pour tout x0 ∈ J, la relation xn+1 = F (xn ) pour tout n ∈ N, définit une suite de J N
qui vérifie en outre
|xn − c| 6
M2
2m1
2n −1
n
|x0 − c|2
(2.1)
avec M2 = sup |f ”(x)| et m1 = inf |f 0 (x)| .
|x−c|6δ
|x−c|6δ
4. Il existe un ouvert Ω contenant c tel que pour tout x0 ∈ Ω, la suite récurrente définie par
xn+1 = F (xn ) pour tout n ∈ N, converge vers c (et il existe donc un rang à partir duquel
xn ∈ J).
Démonstration (L1)
Soient f une fonction de classe C 2 sur l’intervalle ouvert I =]a, b[ et c ∈ I tel que que |f 0 (c)| > 0.
• Comme f 0 est continue, l’ensemble des points en lesquels |f 0 (x)| > 0 est ouvert 2 3 dans I et
f ”(x)f (x)
contient c; on a bien sûr F (c) = c et F 0 (x) =
est nulle en x = c.
f 02 (x)
• Comme F 0 est continue (F est de classe C 1 ) et F 0 (c) = 0, il existe δ > 0 tel que
J = [c − δ, c + δ] ⊂ DF et ∀x ∈ J, |F 0 (x)| < 1.
L’intervalle J est donc stable par F. En effet, par le théorème des accroissements finis, pour tout
x ∈ J, il existe tx ∈ J (compris entre x et c) tel que
|F (x) − F (c)| = |F (x) − c| ≤ |F 0 (tx )||x − c| < |x − c| < δ
En particulier, la relation xn+1 = F (xn ) définit une suite d’éléments de J pour tout x0 ∈ J.
• Soit x0 ∈ J et (xn )n définie par xn+1 = F (xn ).
Observons que
f (xn )
f (xn ) + f 0 (xn )(c − xn )
xn+1 − c = xn − 0
−c=−
f (xn )
f 0 (xn )
et par la formule de Taylor-Lagrange, il existe un point txn compris entre xn et c tel que
1
f (c) = f (xn ) + f 0 (xn )(c − xn ) + f ”(txn )(c − xn )2
2
2. Rappel de Topologie niveau L2 (en 2012) : si f est continue, l’image réciproque d’un ouvert est un ouvert
3. Si cette notion n’est pas claire pour vous, sachez qu’une preuve d’un résultat analogue, de niveau L1, est détaillée
dans la démonstration du théorème 3
3
Comme f (c) = 0, on retrouve avec M2 = sup |f ”(x)| et m1 = inf |f 0 (x)| :
|x−c|6δ
|x−c|6δ
f (xn ) + f 0 (xn )(c − xn ) |f ”(txn )|
M2
=
(c − xn )2 | ≤
|xn+1 − c| = |xn − c|2
0
f (xn )
2
2m1
(2.2)
m1 et M2 sont bien définis puisqu’une fonction continue sur un segment de R est bornée (et atteint
ses bornes).
• A partir de là, on démontre par récurrence sur n la relation (2.1) :
|xn − c| 6
M2
2m1
2n −1
n
|x0 − c|2
– Elle est immédiate pour n = 0.
– Supposons (2.1) établie pour une certaine valeur de n. En substituant dans (2.2), il vient
M2
|xn − c|2
2m1
!2
n
M2
M2 2 −1
2n
≤
|x0 − c|
2m1
2m1
n+1
n+1
M2 2 −2+1
|x0 − c|2
≤
2m1
|xn+1 − c| ≤
• On observera que la dernière inégalité n’implique pas la convergence. Par contre, comme elle
est de la forme
2n+1
M2
M2
×
|x0 − c|
2m1
2m1
M2
la suite converge dès lors que
|x0 − c| < 1. L’ouvert Ω =]c − δ1 , c + δ1 [ avec δ1 <
2m1
M2
min δ,
fait donc l’affaire.
2m1
4
Théorème 2 bassin d’attraction de c
Sous les hypothèses du théorème 1, l’ensemble des points x0 ∈ I pour lesquels la suite récurrente
définie par xn+1 = F (xn ) pour tout n ∈ N, converge vers c est un ouvert de I. On l’appelle
bassin d’attraction du point fixe c.
Démonstration (L2) 4
Notons Wc l’ensemble des points a ∈ I pour lesquels la suite récurrente définie par x0 = a et
xn+1 = F (xn ) pour tout n ∈ N, converge vers c.
Considérons x0 ∈ Wc . Il existe un rang Nx0 à partir duquel xn ∈ Ω =]c − δ1 , c + δ1 [ où δ1 est
défini comme dans la démonstration du théorème 1. Observons au passage que Ω est stable par F
et donc par ses itérées.
−1
Comme la fonction itérée F (Nx0 ) est continue, O = F (Nx0 )
(Ω) est un ouvert de I. Or, pour
tout y0 ∈ O, la suite (yn )n (notation supposée évidente) est bien définie et telle que yNx0 +p ∈ Ω
pour tout p ∈ N.
Par construction de Ω,
p
2p
M2 2 −1 yNx0 − c → 0
|yNx0 +p − c| 6
2m1
et lim yn = c. Nous avons montré que y0 ∈ O ⇒ y0 ∈ Wc .
Ainsi, Wc est voisinage de chacun de ses points et c’est bien un ouvert.
2.2
Vitesse ou ordre de convergence d’un méthode itérative
Définition 1 vitesse de convergence
On dit qu’une suite (xn )n de limite ` a une convergence d’ordre p ∈ N lorsque le quotient
|xn+1 − `|
|xn+1 − `|p
admet une limite strictement positive (ce qui suppose qu’il soit défini à partir d’un certain rang).
Lorsque p = 1 on parle de convergence géométrique ou linéaire, lorsque p = 2 on parle de
convergence quadratique.
Illustrons cette notion en montrant qu’une suite récurrente (ou système dynamique) admet une
convergence linéaire, alors que la méthode de Newton est quadratique. Le but est ici de mettre
en valeur la rapidité de convergence de la méthode de Newton qui fait tout son intérêt malgré les
problèmes que l’on rencontre pour la mettre en œuvre. Remarquons au passage que la démonstration
du théorème (3) fait apparaı̂tre tous les paradigmes 5 de l’étude des suites récurrentes et c’est pourquoi nous l’avons détaillée.
4. pour la notion d’image réciproque d’un ouvert
5. Consulter un dictionnaire
5
Théorème 3 ordre de convergence vers un point fixe attractif
Soient f une fonction de classe C 1 sur un intervalle ouvert I ⊂ R et a ∈ I tels que
(
f (a)
=a
0
0 < |f (a)| < 1
Il existe alors α > 0 tel que
1. J =]a − α, a + α[⊂ I;
2. J est stable par f ;
3. pour tout x0 ∈ J, la suite récurrente xn+1 = f (xn ) converge vers a;
4. lorsque x0 6= a, la convergence est linéaire et
lim
|xn+1 − a|
= |f 0 (a)|
|xn − a|
Démonstration (L1)
• Comme |f 0 | est continue, pour toute constante k telle que |f 0 (x0 )| < k < 1, il existe un voisinage de a, J =]a − α, a + α[, contenu dans I, sur lequel 0 < |f 0 (x)| < k < 1.
Preuve de ce résultat classique que l’on pourra sauter :
|f 0 | est continue en a signifie que pour tout ε > 0, il existe αε > 0 tel que pour
tout x ∈ I,
|x − a| ≤ αε ⇒ |f 0 (x)| − |f 0 (x0 )| ≤ ε1
Étape 1 : On considère alors k tel que |f 0 (x0 )| < k < 1 et on pose ε1 =
1
(k − |f 0 (x0 )|) . On aura, lorsque |x − a| ≤ αε1 ,
2
|f 0 (x)| ≤ |f 0 (x0 )| + ε1 ≤
1
k + |f 0 (x0 )| ≤ k < 1
2
|f 0 (x0 )|
Étape 2 : On considère de façon analogue ε2 <
et lorsque |x − a| ≤
2
αε2
0 < |f 0 (x0 )| − ε2 ≤ |f 0 (x)|
Comme I est ouvert on peut considérer α ≤ min(αε1 , αε2 ) de telle sorte que
]a − α, a + α[⊂ I et sur un tel intervalle nous avons 0 < |f 0 (x)| < k < 1.
• J est stable par f. C’est une conséquence du théorème des accroissements finis : pour x ∈ J, il
existe t compris entre x et a, tel que
|f (x) − a| = |f (x) − f (x0 )| = [f 0 (t)| |x − a| ≤ k |x − a| < α.
6
On a donc bien f (x) ∈ J. En conséquence une suite récurrente telle que x0 ∈ J et xn+1 = f (xn )
est correctement définie. De plus, xn+1 − a| = |f (xn ) − f (x0 )| ≤ k|xn − a|. De cela on déduit
que |xn − a| ≤ k|x0 − a|n ce qui assure la convergence.
• Si x0 6= a, aucun terme de la suite n’est égal à a. En effet, observons (toujours avec le théorème
des accroissements finis) que pour tout n ∈ N,
xn+1 − a = f (xn ) − f (x0 ) = f 0 (tn )(xn − a).
Si pour un certain n, xn = a, par récurrence descendante, on aurait x0 = a car sur J f 0 ne
s’annule pas.
• Ainsi, lorsque x0 6= a, nous pouvons écrire que
xn+1 − a
= f 0 (tn ) ∼ f 0 (x0 )
xn − f (x0 )
d’où la conclusion
lim
|xn+1 − a|
= |f 0 (x0 )|
|xn − a|
Théorème 4 ordre de convergence de la méthode de Newton
Adjoignons l’hypothèse ”f est de classe C 3 ” à celles du théorème 1 dont nous conservons les
notations. Alors, il existe α > 0 tel que
1. J =]c − α, c + α[⊂ Wc ;
2. J est stable par F ;
3. pour tout x0 appartenant à J\{c}, la suite définie par xn+1 = F (xn ) a tous ses termes
différents de c et vérifie
|xn+1 − c|
|f ”(c)|
lim
=
|xn − c|2
2|f 0 (c)|
4. lorsque f ”(c) 6= 0, une telle suite admet une convergence d’ordre 2 vers c.
Démonstration (L1)
• Rappelons que F est définie sur un ouvert contenant c avec
f (x)
;
f 0 x)
f (x) f ”(x)
F 0 (x) =
;
(f 0 (x))2
F (x) = x −
F ”(x) =
f ”(x)(f 0 (x))2 − 2f (x)(f ”(x))2 + f (x)f (3) (x)f 0 (x)
;
(f 0 (x))3
f ”(c)
puisque f (c) = 0.
f 0 (c)
Au point c nous retrouvons F 0 (c) = 0, F ”(c) =
• Nous pouvons considérer un réel α > 0 tel que
7
– J =]c − α, c + α[⊂ Wc (car Wc est un ouvert) ;
– |F 0 (x)| < 1 pour tout x ∈ J (car F 0 est continue et F 0 (c) = 0).
• J est alors stable par F 6 et pour x0 ∈ J, la relation xn+1 = F (xn ) définit une suite d’éléments
de J qui converge vers c (J est contenu dans le bassin d’attraction de c).
• Si x0 6= c, aucun terme de la suite n’est égal à c.
En effet, observons (toujours avec le théorème des accroissements finis que
nous pouvons invoquer car J est un intervalle contrairement à Wc peut-être)
que pour tout n ∈ N,
xn+1 − c = f (xn ) − f (c) = f 0 (tn )(xn − c).
Si pour un certain n, xn = c, par récurrence descendante, on aurait x0 = c car
f 0 ne s’annule pas là où F est définie.
• Par la formule de Taylor-Lagrange, il existe tn ∈ J compris entre xn et c tel que
1
xn+1 = F (xn ) = F (c) + F 0 (c)(xn − c) + F ”(tn )(xn − c)2
2
Il vient donc
1
xn+1 − c = F ”(tn )(xn − c)2
2
xn+1 − c
1
Nous pouvons alors écrire
= F ”(tn ) d’où
(xn − c)2
2
lim
xn+1 − c
1
f ”(c)
= lim F ”(tn ) =
2
(xn − c)
2
2 f 0 (c)
Lorsque cette limite est non nulle, la convergence est exactement d’ordre 2.
Une illustration numérique de la vitesse de convergence
2 x3
On considère ici la fonction f : x → x3 − x associée à la fonction de Newton F : x →
.
3 x2 − 1
xn − c
. Lorsque le
Chaque tableau présente les valeurs x0 , ..., x6 ainsi que les quotients
(xn−1 − c)2
f ”(c)
−3
f ”(c)
point fixe est c = 1, 0
=
et pour c = 0, 0
= 0.
2f (c)
2
2f (c)
n
xn
xn − c
(xn−1 − c)2
n
xn
xn − c
(xn−1 − c)2
0
1
2
3
4
5
6
2.0
1.454545455
1.151046789
1.025325929
1.000908452
1.000001235
1.0
*
0.4545454545
0.7310664606
1.110049608
1.416351963
1.496827212
1.499995676
0
1
2
3
4
5
6
0.3333333333
- 0.1111111111
0.002849002849
- 0. 04625079707
1.978735114 0−22
−1.549504984 × 10−65
7.440616629 × 10−195
*
- 1.0
0.2307692308
- 0.005698144450
0. 09250159415
−3.957470228 × 10−22
3.099009969 × 10−65
6. Toujours le théorème des accroissements finis comme dans les démonstrations des théorèmes 1 et 3
8
2.3
De la difficulté de mise en œuvre de la méthode de Newton
Comme on le voit avec l’exemple qui suit, rien ne garantit qu’une suite (xn )n donnée par la
méthode de Newton et de premier terme x0 converge.
F IGURE 1 – f : x → x3 − x F : x → 2
x3
3 x2 − 1
On trouvera de jolies études détaillées sur les bassins d’attraction pour la méthode de Newton mise
en œuvre avec des fonctions élémentaires dans l’ouvrage de Holmgren [6].
A FINIR – A FINIR – A FINIR – A FINIR –
9
3
Méthode de Newton en dimensions supérieures
Nous nous intéressons ici à la résolution de systèmes de n équations à n inconnues ou, ce qui
revient au même, à la recherche de zéros de fonctions de Rn dans lui-même. Les résultats fondamentaux sont les mêmes que pour le cas des fonctions d’une variable réelle.
3.1
Brefs rappels de calcul différentiel
Nous rappelons quelques notions de calcul différentiel et quelques notations qui nous seront utiles.
Dans ce qui suit Ω est un ouvert de Rn et f une application de Ω dans Rm .
Fonctions de classe C k : soit k ∈ N∗ ; on dit que f est de classe C k si toutes ses dérivées partielles d’ordre 1 à k sont définies et continues sur Ω.
Matrice jacobienne : lorsque f est de classe C 1 sa matrice jacobienne en a ∈ Ω est la matrice
DF (a) ∈ Mm,n définie par


∂f1 (a) ∂f1 (a)
∂f1 (a)
.
.
.
 ∂x1
∂x2
∂xn 


∂f2 (a) 
 ∂f2 (a) ∂f2 (a)


...
∂x2
∂xn 
Df (a) = 
 ∂x. 1

..
..


..
.
.


 ∂fm (a) ∂fm (a)
∂fm (a) 
...
∂x1
∂x2
∂xn
L’application linéaire de Rn dans Rm qui lui est canoniquement associée est la différentielle
de F en a.
Théorème de Schwarz : lorsque f est de classe C 2 , pour tous couples d’indices (i, j) ∈ [1, n]2 ,
∂ 2 f (x1 , ..., xn )
∂ 2 f (x1 , ..., xn )
=
∂xi ∂xj
∂xj ∂xi
Hessienne : lorsque f est de classe C 2 à valeurs réelles,
matrice définie par
 2
∂ f (a) ∂ 2 f (a)
 ∂x1 ∂x1 ∂x1 ∂x2
 2
 ∂ f (a) ∂ 2 f (a)

Hf (a) = 
 ∂x2.∂x1 ∂x2.∂x2

..
..

 ∂ 2 f (a) ∂ 2 f (a)
∂xn ∂x1 ∂xn ∂x2
sa matrice hessienne en a ∈ Ω est la
...
...
...

∂ 2 f (a)
∂x1 ∂xn 

∂ 2 f (a) 

∂x2 ∂xn 

..

.

∂ 2 f (a) 
∂xn ∂xn
Nous verrons, avec la formule de Taylor à l’ordre 2 qu’il est plus parlant de considérer cette
matrice symétrique (par le théorème de Schwarz) comme associée à une forme quadratique.
Différentielle seconde : supposons encore f de classe C 2 à valeurs réelles, son gradient g : Ω →
Rn (pour le produit scalaire canonique) est de classe C 1. On vérifie sans peine que la matrice
jacobienne du gradient dans la base canonique est aussi la hessienne de f (Dg = Hf ).
On prendra garde aux changements de repères, si toutefois on est amené à en envisager.
10
Développements limités et formules de Taylor :
• une fonction de classe C 1 f : Ω ⊂ Rn → f (x) ∈ Rm admet un DL1 en tout point a ∈ Ω
donné par :
f (a + h) =h→0 f (a) +
Pp
i=1
∂
f (a)hi + o (| |h||) =h→0 f (a) + Df (a).h + o (| |h||)
∂xi
• Une fonction de classe C 2 à valeurs réelles, f : Ω ⊂ Rn → f (x) ∈ R admet un DL2 en
tout point a ∈ Ω donné par :
f (a + h) =h→0 f (a) + Df (a).h +
1t
hHf (a)h + o(||h||2 )
2
• Pour une fonction de classe C 2 à valeurs dans Rm , f : Ω ⊂ Rn → f (x) ∈ Rm , on
réécrira la formule composante par composante ce qui donne :
t



o1 (1)
hHf1 (a)h
1
 . 

..
f (a + h) =h→0 f1 (a) + Df (a).h + 
 + ||h||2  .. 
.
2 t
om (1)
hHfm (a)h
1
On notera aussi f (a + h) =h→0 f (a) + Df (a).h + Df2 (a)(h, h) + o(||h||2 )
2
Changements de repères :
Rappelons les formules de changements de bases puis de repère pour les points d’un espace
affine, pour les applications linéaires et les formes quadratiques.
Soient E un espace affine, R = (O, (i, j, k)) = (O, B) et R0 = (A, (u, v, w)) = (A, B 0 )
0
deux repères de E. Pour M ∈ E on note XM et XM
éléments de Rn , coordonnées
(−les
−→
OM = x~i + y~j + z~k
respectives de M dans ces repères, ce qui signifie que −−→
AM = x0 ~u + y 0~v + z 0 w
~
• On note P ∈ GLn (R) la matrice de passage de la base B à B 0 . On sait que si X et X 0
~ dans ces bases on a P X 0 = X (formule de
sont les coordonnées d’un même vecteur de E
changement de base pour un vecteur).
−−→ −→ −−→
• De la relation vectorielle AM = AO + OM , on exprime les coordonnées de ce vecteur
sans la base B, il vient (formule de changement de repère pour un point) :
0 = −X + X
P XM
A
M
0 +X =X
ou encore P XM
A
M
• Supposons l’espace affine normé et considérons une fonction scalaire F : U ⊂ E → R,
définie sur un ouvert U ⊂ E. On associe à cette fonction F la fonction f : Ω ⊂ Rn → R
(n = dim E) définie par f (XM ) = F (M ) pour tout M ∈ E; f est donc l’expression de
F dans le repère (0, B).
0 ) = F (M ) l’expression de F dans l’autre repère, la relation qui suit entre
En notant g(XM
11
f et g donne une formule de changement de repère pour les applications scalaires :
0 ) = f (P X 0 + X ) = f (X ) ou encore
g(XM
A
M
M
g(X 0 ) = f ◦ Φ(X 0 ) u, avec Φ(X 0 ) = P X 0 + XA
• Ecrivons alors les formules de Taylor pour f et g à l’ordre 2 (en supposant F, donc f et g
de classe C 2 ) :
1t
hHf (x0 )h + o(||h||2 )
h→0
2
1t
g(x00 + h0 ) 0= g(x00 ) + Dg(x00 )).h0 + h0 Hg (x00 )h0 + o(||h0 ||2 )
h →0
2
f (x0 + h) = f (x0 )) + Df (x0 ).h +
(3.1)
(3.2)
Bien évidemment, avec g(x00 + h0 ) = f ◦ φ(x00 + h0 ) = f (P (x00 + h0 ) + XA ) en remplaçant
x0 = φ(x00 ) par P x00 + XA et h par P h0 (changement de base pour un vecteur), on obtient
f (x0 + h) 0= f (φ(x00 )) + Df (φ(x00 )).P h0 +
h →0
= g(x00 ) + Dg(x00 ).h0 +
0
h →0
1 t 0 t
h ( P Hf (φ(x00 ))P ) h0 + o(||P h0 ||2 )
2
(3.3)
1t 0
h Hg (x00 )h0 + o(||h0 ||2 )
2
(3.4)
En identifiant les termes de même ordre (unicité du DL par exemple) on obtient :
Dg(y)
=
Hg (y)
=
Df (φ(y)) ◦ P
tP
◦ Hf (φ(y)) ◦ P
Nous aurons besoin de certains des résultats suivants pour la démonstration du théorème 6. Il
supposent une bonne compréhension de la notion de différentielle (et ce n’est pas vraiment du
L2).
Théorème 5
Soit J : M ∈ GLn (R) → M −1 ∈ GLn (R).
1. J est une application de classe C ∞ de l’ouvert GLn (R) dans lui-même ;
2. ** pour toute matrice A ∈ GLn (R), la différentielle de J au point A est l’application
linéaire dJ (A) ∈ L (Mn (R)) définie par :
dJ (A)(H) = A−1 × H × A−1
Démonstration proposée dans l’exercice 1
12
(3.5)
Exercice 1 démonstration du théorème 5
1. Soient I un intervalle de R, A : I → Mn (R) et B : I → Mn (R) deux application de
classe C 1 . Montrer que l’on a
d
(A(t) × B(t)) = A0 (t) × B(t) + A(t) × B(t)
dt
Qu’en est il si B : I → Rn ?
2. On note J l’application qui à une matrice inversible associe son inverse J : M ∈ GLn (R) →
M −1 ∈ GLn (R).
(a) Montrer que GLn (R) est un ouvert de Mn (R).
(b) Justifier que J est une application de classe C ∞ de l’ouvert GLn (R) dans lui-même.
(c) Les idées claires : de quoi parlons nous ?
La différentielle de J au point A est une application linéaire : quels sont les espaces
de départ et d’arrivées ce cette application ? Quels sont les coefficients de sa matrice
jacobienne exprimées une base canonique bien choisie ? Combien y en a-t-il ?
Rappeler la définition des dérivées partielles en un point A ∈ GLn (R) dans cette base.
De quel type d’objet s’agit il ?
3. Pour nous faciliter la vie, nous allons plutôt déduire l’expression de dJ (A)H de l’étude
d’un courbe paramétrée à valeurs dans GLn (R).
(a) Soit Γ une courbe paramétrée de classe C 1 de I, intervalle de R, à valeurs dans
d
GLn (R). Exprimer J ◦ Γ(t).
dt
(b) En considérant une courbe paramétrée t → Γ(t) × Γ(t)−1 exprimer dJ (Γ(t))Γ0 (t) et
en déduire dJ (A)H lorsque A est une matrice inversible quelconque, H une matrice
quelconque.
voir correction en (8.0.1)
Exercice 2 un petit calcul préliminaire
Nous avons établi dans l’exercice 1 une formule de dérivation de t → A(t) × B(t) lorsque
A : I → Mn (R) et B : I → Mn (R) sont deux courbes paramétrées de classe C 1 .
On se propose maintenant de déterminer la différentielle d’une application x ∈ Ω → A(x)×V (x)
lorsque lorsque A : Ω → Mn (R) et V : Ω → Rn sont de classe C 1 sur Ω ouvert de Rn .
1. Dériver l’application t → A(X(t)).V (X(t)) lorsque X est une courbe paramétrée de
classe C 1 à valeurs dans Ω. Préciser avec soin un ensemble d’appartenance de chaque objet/expression introduite par le calcul.
2. En déduire la formule d(A.V )(x) = dA(x).V (x) + A(x)DV (x)
voir correction en (8.0.2)
13
3.2
La méthode de Newton
Dans le théorème qui suit, en tout point analogue au théorème 1 par sa forme, on désigne par || ||
une norme de Rn et par ||| ||| la norme matricielle subordonnée qui lui est attachée. On rappelle
que pour A ∈ Mn (R),
||AX||
|||A||| = sup
X6=0 ||X||
Théorème 6
Soient Ω un ouvert de Rn , f : Ω → Rn , une fonction de classe C 2 , c un point de Ω en lequel
f (c) = 0 et Df (c) est inversible. On considère F la fonction de classe C 1 définie par
F (x) = x − [Df (x)]−1 .f (x)
Alors,
1. La fonction F est définie sur un voisinage ouvert de c;
2. c est un point fixe super attractif de F (ie : F (c) = c et Df (c) = 0).
3. Il existe δ > 0 tel que
(a) la boule fermée B = B̄(c, δ) est stable par F ;
(b) pour tout x0 ∈ B, la relation xn+1 = F (xn ) pour tout n ∈ N, définit une suite de B N
qui vérifie en outre
n −1
||xn − c|| 6 K 2
||x0 − c||2
n
(3.6)
pour un certain K > 0.
4. Il existe un ouvert Ω contenant c tel que pour tout x0 ∈ Ω, la suite récurrente définie par
xn+1 = F (xn ) pour tout n ∈ N, converge vers c (et il existe donc un rang à partir duquel
xn ∈ B).
Remarques
1. On peut préciser ce résultat en montrant que l’on peut choisir pour tout ε > 0, B et K de
telle sorte que
1
−1
2
K < max |||Df (x)] ||| ×
max ||D f (x)(h, h)|| + ε
2 x∈B
x∈B,||h||=1
2. Les théorèmes 2 et 4 concernant le bassin d’attraction et la vitesse de convergence s’énoncent
et se démontrent de façon analogue en dimension quelconque
Démonstration (L2)
La démonstration que nous proposons ici en exercice, qui peut être sautée, fait largement appel
au calcul différentiel avec les résultats des exercices 1et 2. Elle a néanmoins l’avantage d’être
proche de la preuve en dimension 1. On peut en trouver une autre, qui repose sur un calcul de
développement limité dans l’ouvrage de Demailly [5] par exemple.
14
Exercice 3 démonstration du théorème 6
Soit f comme dans le théorème et F (x) = x − [Df (x)]−1 .f (x).
1. Justifier que F est définie sur un ouvert contenu dans Ω, calculer DF (x) en réécrivant
F (x) = x − (J ◦ df )(x).f (x)
Vérifier que F (c) = c et que dF (c) = 0.
2. En déduire l’existence d’une boule fermée B = B̄(c, δ) , contenue dans le domaine de
définition de F telle que
R1 d
(a) B est stable par F (penser à écrire F (c + h) − F (c) = 0
F (c + t h) dt);
dt
(b) Pour tout x0 ∈ B, la suite de B N définie par xn+1 = F (xn ) pour tout n ∈ N, vérifie
||xn+1 − c|| ≤ K||xn − c||2 avec K que l’on comparera à une expression proche de
max |||Df (x)]−1 ||| ×
x∈B
max
x∈B,||h||=1
indication : penser à utiliser la formule de Taylor
voir correction en 8.0.3
15
||D2 f (x)(h, h)||
4
Méthodes d’optimisation, généralités
4.1
Rechercher les zéros du gradient pour optimiser
Soit φ : Ω ⊂ Rn → R, une fonction numérique de classe C 3 définie sur un ouvert de Rn . On sait
−−→
que si φ atteint en a ∈ Ω un minimum local ou global, grad(f )(a) = 0.
−−→
La fonction g = grad(f ) est une application de Ω dans Rn de classe C 2 et il peut paraitre
avantageux de rechercher les points en lesquels g s’annule avec la méthode de Newton mais cela
pose plusieurs problèmes :
−−→
– grad(f )(a) = 0 est une condition nécessaire, non suffisante pour que f admette un minimum
local en a et il faudra pour chaque point stationnaire ainsi déterminé s’assurer qu’on y rencontre
bien un minimum local (à moins qu’une étude préalable n’ait déjà clarifié le problème) ;
– à cela s’ajoutent les difficultés de mise en œuvre de la méthode elle-même :
- la convergence n’est pas garantie et dépend du choix de x0 ;
- la méthode revient à itérer la fonction
G(x) = x − [Dg(x)]−1 g(x) = x − [Hf (x)]−1 g(x)
(4.1)
où Dg, jacobienne du gradient de f, est en fait la matrice hessienne de f ; il faut donc calculer
g, calculer Hf et ensuite l’inverser. On comprend que la difficulté n’est pas la même selon que
l’on sait calculer g et Dg = Hf formellement ou pas.
On est alors conduit à adapter cette méthode en remplaçant l’itération xn+1 = G(xn ), qui se récrit
xn+1 = xn − [Hf (xn )]−1 g(xn ), à partir des idées suivantes :
• on remplace [Hf (xn )]−1 par une matrice Wn définie positive dont le calcul et l’inversion sont
plus économiques ;
• on cherche un réel λ∗ qui réalise un minimum local de t → f (xn − tWn g(xn )) sur [0, 1] et on
pose
xn+1 = xn λ∗ Wn g(xn )
(4.2)
ce qui nous garantit que la suite (f (xn )n décroit et nous permet d’espérer une convergence qui
n’était pas gagnée.
On parle alors de méthodes quasi-newton. Nous donnons une méthode de recherche selon une
ligne de descente en (4.2) et présentons deux méthodes quasi-newton en détails en (5) et en (6)
avec une mise en œuvre de chacune d’elles sur un problème effectif.
4.2
Un préalable : minimisation selon une ligne de descente
Nous serons amenés, pour minimiser une fonction de plusieurs variables f : Ω → R, à définir des
suites approximantes (xn )n pour lesquelles le calcul de xn+1 , xn étant donné, sera défini en trois
étapes :
1. On recherche une direction de descente dn (ie : telle que λ → f (xn + λdn ) & sur un
voisinage à droite de 0).
16
−−→
• Une première idée serait de choisir par exemple dn = −grad(f )(xn ), ce qui se comprend
−−→
bien en écrivant un DL1 , f (xn + h) = f (xn )+ < grad(f )(xn )|h > +o(h), où l’on voit
que le second terme est minimal pour un module ||h|| constant lorsque l’angle entre h et le
gradient est égal à π...
−−→
• Nous verrons aussi l’intérêt de poser dn = G−1 grad(f )(xn ) avec H symétrique positive...
2. Comme rien ne garantit que le point xn+1 = xn +dn réalise f (xn+1 ) ≤ f (xn ), on recherche
un scalaire λ∗ appartenant à un certain intervalle (= [0, +∞[) tel que
f (xn + λ∗ dn ) = min f (xn + λdn )
3. On pose alors xn+1 = xn − λ∗ dn .
Avant de préciser de telles méthodes, intéressons nous au deuxième point et montrons comment
on peut rechercher un minimum local en dimension 1. Les exercices 4 et 5 constituent un bon
échauffement. On propose ensuite une description de la méthode de Wolfe.
Exercice 4 un préliminaire à but didactique (L1)
Soit f : I → R une fonction définie sur un intervalle I de R.
1. Montrer que f est convexe sur I si et seulement si pour tous x1 < x2 ≤ x3 < x4 dans I,
f (x4 ) − f (x3 )
f (x2 ) − f (x1 )
≤
x2 − x1
x4 − x3
2. Montrer que si f est strictement convexe et continue sur I = [a, b], elle y admet un minimum
atteint en un seul point. Que devient l’inégalité précédente lorsque les points x1 , ..., x4 sont
distincts ?
3. On suppose maintenant que f est strictement convexe et continue sur I = [a, b] et on note
µ le point en lequel f atteint son minimum.
On se donne t ∈]0, 1/2[ et on partage I = [a, b] en trois intervalles de la façon suivante :

a+b


− t (b − a)
x1 =


2
I = [a, x1 ] ∪ [x1 , x2 ] ∪ [x2 , b] avec



x2 = a + b + t (b − a)
2
(a) On note p0 , p2 , p2 les pentes de f sur ces trois intervalles. Montrer les implications
suivantes :
– p0 < p1 < p2 < 0 =⇒ µ ∈ [x2 , b];
– p0 < p1 < 0 < p2 =⇒ µ ∈ [x1 , b];
– p0 < 0 < p1 < p2 =⇒ µ ∈ [a, x2 ];
– 0 < p0 < p2 < p2 =⇒ µ ∈ [a, x1 ];
(b) Déduire de cela un algorithme de calcul approché du minimum de f (programmez le
effectivement Maple, Python, Scilab...).
(c) Réduire et estimer la complexité de l’algorithme proposé (nombre d’itérations ou
nombre de calculs de f en un point pour une approximation à 10−n près par exemple).
voir corrigé en 8.0.4
17
Exercice 5 Recherche de minimums, règle d’or et gradient (L2) 7
1. Soit I = [a, b] un intervalle de R et t0 ∈ I. On considère dans cette question une fonction
f : I → R telle que
f & strictement sur ] − ∞, t0 ] ∩ I et f % strictement sur [t0 , +∞[∩I.
(a) On définit deux suites (an )n et (bn )n de la façon suivante :
– [a0 , b0 ] = [a, b];
– On suppose an et bn déjà définis et on pose λn = an + r2 `n , µn = an + r`n avec r
solution positive de x2 + x = 1 et `n = bn − an .
Si f (λn ) ≥ f (µn ) alors an+1 = λn et bn+1 = bn
Si f (λn ) ≤ f (µn ) alors an+1 = an et bn+1 = µn
Démontrer que (an )n et (bn )n convergent vers le point en lequel f atteint son minimum. Majorer `n .
(b) Programmer cet algorithme
et le tester avec f (x) = sin x sur I = [π, 2 π] puis avec la


3 − x si 0 ≤ x ≤ 1
fonction g(x) = x + 1 si 1 ≤ x ≤ 2 sur I = [0, 3]. Dans chaque cas, donner un


3 si 2 < x ≤ 3
encadrement de longueur 10−7 du réel en lequel le minimum sur I est atteint.
2. On s’intéresse maintenant à la recherche de minimum de fonctions de plusieurs variables :
on suppose que F est définie sur R2 , à valeurs réelles, de classe C 1 et que sa restriction à
une droite quelconque est minorée.
(a) Soient X ∈ R2 , et U ∈ R2 , un vecteur unitaire. On pose φ(λ) = F (X+λU ); exprimer
φ0 (0) en fonction des vecteurs U et grad(F )(X). Pour quel choix de U, φ0 (0) est elle
minimale ?
(b) Pour X0 ∈ R2 , on définit une suite de points (Xn )n par récurrence en posant :
• si grad(F )(Xn ) 6= 0,
−grad(F )(Xn )
– Un =
||grad(f )(Xn )||
– Xn+1 = Xn + λ∗n Un où λ∗n réalise le minimum de F (Xn + λUn );
• si grad(F )(Xn ) = 0, Xn est le dernier terme de la suite qui est donc finie.
Montrer que si la suite (F (Xn ))n est définie sur N, elle est convergente.
(c) On donne à titre d’exemple F (x, y) = ln 1 + x2 + y 2 + xy . Calculer son gradient ;
écrire un programme permettant le calcul des 12 premiers termes de la suite (xn , yn )
(on pourra faire appel à la fonction de la première question).
voir corrigé en 8.0.5
7. Posé à peu près sous cette forme à l’Oral Centrale-Supélec, épreuve avec Maple ou Mathematica— 2011
18
Procédé de Wolfe
Soit q : t → q(t) une fonction définie sur [0, +∞[ telle que q 0 (0) < 0,dont on souhaite évaluer
grossièrement 8 un minimum local (en pratique ce sera q(t) = f (xn + t dn )).
On définit pour cela le processus :
– on se donne m1 , m2 tels que 0 < m1 < m2 < 1;
– on se donne une valeur t > 0;
– on itère la règle de Wolfe ci-dessous, en choisissant à chaque étape un t > 0 compris entre tmin
et tmax (avec la convention que si tmax = 0, tmin < t < +∞)

q(t) − q(0)


> m1 q 0 (0)
alors tmax := t (on cherche plus petit)
si



t
−
0






q(t) − q(0)
si
≤ m1 q 0 (0) et q 0 (t) ≥ m2 q 0 (0) on s’arrête là

t
−
0








q(t) − q(0)

 si
≤ m1 q 0 (0) et q 0 (t) < m2 q 0 (0) alors tmin := t (on cherche plus grand)
t−0
8. Grossièrement, car c’est le minimum de f qui nous intéresse : c’est le procédé global qui doit nous permettre de
nous en rapprocher alors qu’un calcul fin du minimum de q à chaque itération serait inutilement pénalisant.
19
Illustration graphique de la règle de Wolfe
Les arguments, q et q1 désignent respectivement la fonction à minimiser et sa dérivée, t est
la valeur à tester...
Wolfe:=proc(q,q1,t,m1,m2)
local tv, d0,dt;
tv
d0
dt
:=(q(t)-q(0))/((t-0));
:=q1(0);
:=q1(t);
if
evalf(tv-m1*d0)>0
then ga
#pour aller à gauche
elif evalf(dt-m2*d0)>=0 then fin
else droite #pour aller à droite
fi;
end:
q := x-> 1-6*x*sin(3*x+1/2)/(1+xˆ2);
q1 := unapply(diff(q(t), t), t);
plot({m1*q1(0)*t+q(0), m2*q1(0)*t+q(0), q(t)}, t=0..4,-4..4);
Matrix([[seq(4*t/(10.), t = 1 .. 10)],
[seq(Wolfe(q, q1, 4*t*(1/10), .3, .8), t = 1 .. 10)]])
0.2
dr
0.4
dr
0.6
fin
0.8
fin
1.0
ga
1.2
ga
1.4
ga
1.6
ga
1.8
ga
20
2.0
ga
2.2
ga
2.4
fin
2.6
ga
2.8
ga
3.0
ga
3.2
ga
3.4...
ga...
• Algorithme : avec la procédure Wolfe du tableau précédent, une forme possible de l’algorithme (les variantes dépendent du domaine de définition de q (est il borné ou pas ?), de la façon
d’initialiser t, d’extrapoler lorsque tmax = 0, d’interpoler, etc...
LineSearchWolfe := proc (q, q1, t0, m1, m2)
local arret, tmax, tmin, t, w;
t
arret
tmin
tmax
:=
:=
:=
:=
t0; # pour la preuve t0>0
false;
0;
0;
while arret = false do
w := Wolfe(q, q1, t, m1, m2);
if w = fin
then
arret := true
elif w = dr
then tmin := t;
if tmax = 0
then t := 10*t
else t := (1/2)*t+(1/2)*tmax
# ou evalf((1/2)*tmin+(1/2)*tmax)
end if
else tmax := t;
t
:= (1/2)*tmin+(1/2)*tmax
# ou evalf((1/2)*tmin+(1/2)*tmax)
end if
end do;
t
end proc
21
Une trace avec la même fonction q que pour le graphe... Il va de soi que pour des exemples effectifs
on travaille en flottants et non en calcul formel comme ici.
LineSearchWolfe(q, q1, 1, m1, m2);
{--> enter LineSearchWolfe, args = q, q1, .4, .9
5
false
0
0
ga
5
5/2
ga
5/2
5/4
ga
5/4
5/8
fin
true
5/8
<-- exit LineSearchWolfe (now at top level) = 5/8}
5/8
Théorème 7 terminaison
Soit q une fonction définie et dérivable sur [0, +∞[ telle que
– q 0 (0) < 0;
– inf q(t) > −∞.
Alors, l’algorithme décrit par la fonction LineSearchWolfe termine.
Démonstration (L1+)
Si l’algorithme ne termine pas, il y a une infinité d’appels à la fonction Wolfe qui retournent soit
’dr’ soit ’ga’.
• Supposons qu’il y ait une infinité d’appels retournant ’dr’ sans que tmax ne soit jamais affecté.
q(t) − q(0)
Alors, t(k) → +∞ et comme
≤ m1 q 0 (0) < 0, cela impose lim q(t(k) = −∞ ce qui
t−0
est en contradiction avec les hypothèses.
22
• Dans les autres cas, à partir d’un certain rang, l’exposant (k) signifiant que la variable est évaluéé
(k)
(k)
à la fin de la k ième itération, on a 0 ≤ tmin < t(k) < tmax où les suites encadrantes sont adjacentes
(k)
(k)
(par construction). Notons t∗ = lim tmin = lim t(k) = lim tmax .
Comme les affectations à tmax ou tmin proviennent des deux règles

q(t) − q(0)


> m1 q 0 (0)
alors tmax := t (Wolfe retourne ’ga’)
si



t−0


q(t) − q(0)


 si
≤ m1 q 0 (0) et q 0 (t) < m2 q 0 (0)
t−0
alors tmin := t (Wolfe retourne ’dr’)
les relations qui suivent sont invariantes à partir de ce rang
(k)
0
q(t(k)
max ) > q(0) + m1 tmax q (0)
(k)
q(tmin )
≤ q(0) +
(k)
m1 tmin q 0 (0)
(4.3)
et q
0
(k)
(tmin )
0
< m2 q (0)
(4.4)
ce qui, par passage à la limite, donne
q(t∗ ) = q(0) + m1 t∗ q 0 (0) et q 0 (t∗ ) ≤ m2 q 0 (0)
(k)
(k)
Cela nous permet de comparer les taux de variations
q(tmax ) − q(t∗ )
Il vient alors à la fois q 0 (t∗ ) = m1 q 0 (0) et q 0 (t∗ ) ≤
q 0 (0) < 0.
(k)
tmax − t∗
m2 q 0 (0) ce
(4.5)
et
q(tmin ) − q(t∗ )
(k)
tmin
t∗
à m1 q 0 (0).
−
qui est contradictoire puisque
Que pouvons nous dire de q au point t ainsi obtenu ? Voyons cela lorsque q est de la forme q(t) =
f (xn + t dn ) avec des hypothèse de régularité sur f et sur son gradient, ainsi que sur le choix de
(dn )n .
23
5
5.1
Problèmes de moindres carrés
Exemples de problèmes de moindres carrés
Un problème de moindres carrés est un problème de la forme :
p
p
k=1
k=1
1X 2
1X
minimiser f (x) avec f (x) =
rk (x) =
(φ(x, tk ) − zk )2
2
2
où chaque fonction rk2 (x) = (φ(x, tk )−zk )2 représente le carré de l’écart entre la valeur théorique
d’une fonction φ dépendant des paramètres x au point tk et la valeur zk mesurée en ce même tk .
On cherche généralement dans un tel cas à estimer les paramètres inconnus à partir d’un nombre
plus ou moins grand de relevés expérimentaux. Illustrons cela de quelques exemples.
Déterminer les coefficients de marée
La hauteur de la marée dans un lieu donné (un port par exemple) dépend des caractéristiques
astronomiques que sont les trajectoires respectives de la Terre, de la Lune et du Soleil ainsi
que de la configuration des fonds marins et de la forme des côtes 9 .
Cette hauteur est donnée par une fonction de la forme :
h(t) = φ(a1 , ..., aN , ν1 , ..., νN , t) = h0 +
N
X
ai cos (ωi t + νi )
i=1
Cette expression (formule harmonique), dès lors que l’on dispose de relevés en nombre
suffisant, ce qui est le cas, se prête bien à un étude numérique. Elle est exploitée par le
service hydrographique et océanographique de la marine depuis 1992.
Les pulsations ωi sont universelles car ce sont celles des potentiels des forces de marées
d’origine lunaire et solaire. Elles sont reconnues par analyse de Fourier de relevés sur de
nombreuses années. h0 se mesure facilement car c’est la hauteur moyenne de l’eau, les
paramètres (ai )i et (νi )i dépendent du lieu considéré et sont les inconnues que l’on veut
évaluer.
9. bien entendu, la hauteur de l’eau dépend aussi de phénomènes météos : température, vents, pression atmosphérique...
24
Pour déterminer les paramètres dont la connaissance permet de prévoir la hauteur d’eau à
tout instant, on recherche ceux qui réalisent le minimum de la fonction de 2N variables :
p
p
k=1
k=1
1X
1X 2
f (a1 , ..., aN , ν1 , ..., νN ) =
(φ(a1 , ..., νN , tk ) − zk )2 =
rk (a1 , ..., νN )2
2
2
où les (zk )1≤k≤p sont les hauteurs observées en des instants (tk )1≤k≤p .
Pour les sites où la marée est importante, la prise en compte de plus d’une centaine d’ondes
composantes (ai cos(ωi t + νi )) peut être nécessaire pour un calcul précis. Ainsi la fonction
à minimiser f, peut être une fonction de 2N ≈ 200 variables.
Les paramètres sont déterminés en analysant les observations réalisées pendant une longue
période (au minimum 29 jours, correspondant à une lunaison et, là où la forme de la marée
est particulièrement complexe, une année). On a alors au moins de l’ordre de P ≈ 700
termes dans la somme.
Références :
– le site du SHOM [7] donne quelques brèves explications sur la formule harmonique (reprises dans Wikipedia).
– l’ouvrage très complet [8] de Bernard Simon (Éditions de l’Institut océanographique
de Paris) aborde les aspects physiques de l’étude de la marée, explique comment on
détermine les pulsations ωi ...
Estimer le centre d’un cercle
On veut reproduire un objet industriel de bord circulaire pour lequel on a pu relever les côtes
de quelques points situés sur la circonférence (figure). Bien entendu, l’objet est abimé, les
mesures entachées d’erreurs mêmes minimes. Comment déterminer le rayon au mieux, où
placer le centre connaissant approximativement ces points ?
Là encore on se ramène à un problème de moindres carrés :
– on note φ(A, r, M ) la projection du point M sur le cercle C(A, r);
– en notant M1 , M2 , ...Mp les p points dont les cotes ont été relevées, on considère la
fonction d’erreur
p
1X
f (A, r) =
||φ(A, r, Mk ) − Mk ||2
2
k=1
25
On recherche alors les paramètres (xA , yA , r) qui réalisent le minimum de cette fonction.
Paramétrage d’un potentiel empirique
Un exemple en économie
Les moindres carrés linéaires
A la suite d’un relevé expérimental, on dispose de N données (xk , yk ) ∈ R2 et on recherche
une fonction f, combinaison linéaire de d + 1 fonctions données (ui )0≤i≤d (ie : f (x) =
Pd
t
i=0 ai ui (x)) telle que le vecteur F = [f (x1 ), f (x2 ), ..., f (xN )] réalise le minimum de
||Y −
F ||22
=
N
X
|yk − f (xk )|2
k=1
avec Y =t |y1 , y2 , ..., yN ].
La solution de ce problème est proposée dans l’exercice qui suit.
Exercice 6 moindres carrés linéaires
1. (a) Expliciter un sous-ev V de RN auquel appartient le vecteur
F =t [f (x1 ), f (x2 ), ..., f (xN )]
lorsque f est combinaison linéaire des (ui )i . Montrer que l’on peut l’écrire F
sous la forme F = U A où U est une matrice que l’on décrira avec soin, A =t
[a0 , a1 , ..., ad ]. Exprimer la dimension de V en fonction de la matrice U.
(b) Approximation polynomiale : on choisit pour les fonctions ui , ui (x) = xi . Quelle
est la matrice U dans ce cas ?
2. Justifier que l’existence d’un vecteur F0 qui réalise le minimum de ||Y −F || est assurée
quelque soit la norme || || choisie dans RN . Pour la suite du problème, on choisit la
norme euclidienne dans RN définie par
v
uN
uX
||X||2 = (t X.X)1/2 = t
x2i
i=1
3. On pose J(A) = ||F − Y ||2 = ||U A − Y ||2 .
(a) Montrer que les propositions suivantes sont équivalentes :
– J(A) est un minimum de J sur RN ;
– pour tout B ∈ F, pour tout ε ∈ R, J(A) ≤ J(A + εB);
– pour tout B ∈ F, < U A − Y |U B >= 0.
(b) Vérifier que si M ∈ Mp,q (R), X ∈ Rp , Y ∈ Rq on a
< X|M Y >=<t M X|Y >
où les produits scalaires sont à prendre dans Rq et Rp ...
26
(c) En déduire que A réalise le minimum de J ssi tU U A −t U Y = 0. Justifier l’existence et l’unicité de la solution lorsque V est de dimension d + 1.
4. Mise en œuvre sous MAPLE : les données (présentées dans le fichier MoindresCarres.mws) sont issues de TIPE de 2004-2005 ;
voir corrigé en 8.0.6
5.2
Algorithme et matrice de Gauss-Newton
1 Pp
r2 (x), la méthode de Newton appliquée au gradient de f conduit donc
2 k=1 k
à étudier une suite récurrente donnée par Ψ(x) = x − [Dg(x)]−1 g(x) = x − [Hf (x)]−1 g(x) où
Lorsque f (x) =
P
−−→
−−→
– g(x) = grad(f )(x) = pk=1 rk (x)grad(rk )(x);
– Dg(x) = Hf (x) est la matrice carrée de taille n dont le coefficient de la ligne i colonne j est
p X
∂ 2 rk (x)
∂rk (x) ∂rk (x)
+ rk (x)
(5.1)
∂xi
∂xj
∂xi ∂xj
k=1
−−→
−−→
Cette matrice est donc la somme de p matrices de rang 1, grad(rk )tgrad(rk ), et des p matrices
rk (x)Hrk (x).


r1 (x)


• Notons J(x) la matrice jacobienne de x →  ...  , t J(x) est la matrice de Mn,p (R) dont les
rp (x)
colonnes sont les p gradients des fonctions rk et le coefficient de la ligne i colonne j de tJ(x) J(x)
est
p
X
∂rk (x) ∂rk (x)
∂xi
∂xj
k=1
On appelle matrice de Gauss-Newton associée problème de minimisation de f la matrice carrée
de taille n, tJ(x) J(x).
Illustration : t J(x) lorsque p = 4, x = 3 :

∂
∂
 ∂x1 r1 (x) ∂x1 r2 (x)
 ∂
∂

r1 (x)
r2 (x)

 ∂x2
∂x2
 ∂
∂
r1 (x)
r2 (x)
∂x3
∂x3
∂
r3 (x)
∂x1
∂
r3 (x)
∂x2
∂
r3 (x)
∂x3
∂
r4 (x)
∂x1
∂
r4 (x)
∂x2
∂
r4 (x)
∂x3







•Comme la k ième colonne de tJ(x) est le gradient de rk (x), nous réécrivons
g(x) =
p
X
−−→
rk (x) grad(rk )(x) =t J(x)r(x)
(5.2)
k=1
Exercice 7 propriétés de la matrice tJ(x) J(x).
1 Pp
r2 (x) et tJ(x) la matrice de Mn,p (R ) dont les colonnes sont
On note toujours f (x) =
2 k=1 k
les p gradients des fonctions rk .
27
1. Montrer que la matrice carrée tJ(x) J(x) est symétrique et positive.
2. Montre que tJ(x) J(x) est définie positive ssi (n ≤ p et J(x) est de rang n).
voir corrigé en 8.0.7
Méthode de Gauss-Newton (Levenberg (40’s) et Marquardt (60’s))
Elle repose sur les idées suivantes :
– On recherche des points stationnaires de f (tels que ||g|| = 0) puisqu’un minimum est nécessairement
atteint en un tel point.
– On adapte la méthode de Newton en remplaçant la matrice hessienne de f par tJ(x) J(x) plus
simple à calculer, à inverser (elle est symétrique positive et on l’espère définie positive). Cela
conduit à poser
xk+1 = xk − λ [tJ(xk ) J(xk )]−1 g(x) = [xk − λ tJ(xk ) J(xk )]−1 tJ(xk )r(xk )
– En choisissant λ réalisant un minimum de la fonction q := λ → f (x − λG−1 gx), nous nous
assurons de plus que (f (xk ))k & .
– Si nous observons la formule (5.1), nous voyons que le second terme y est d’autant plus petit
que les rk y sont proches de 0 (et que les estimations sont bonnes), ou que les dérivées secondes
sont proches de 0 (et que le modèle est proche du linéaire). Il sera peut être possible de prouver
la convergence sous certaines hypothèses.
Algorithme de Gauss-Newton
– On se donne ε > 0, 0 < m1 < m2 < 1 et x1 ;
– On initialise avec
x := x1 ;
−−→
g := grad(f )(x) =t J(x)r(x);
– Tant que ||g|| ≤ ε faire
G :=t J(x)J(x);
q := λ → f (x − λG−1 g);
λ∗ := LineSearchWolfe(q, q1, t0 , m1 , m2 );
(ou tout autre méthode de minimisation en D1)
x := x − λ∗ G−1 g;
−−→
g := grad(f )(x) =t J(x)r(x);
Fin Tant que
Pour implémenter à peu près utilement cet algorithme, il nous faudra une procédure pour le calcul
des fonctions rk , de la fonction f et de son gradient, pour construire les matrices J(x),t J(x) J(x),
la fonction q etc...
28
5.3
Mise en œuvre : MAPLE et formule harmonique
Nous choisissons d’implémenter l’algorithme pour la forme la plus générale de la fonction
f (x) =
p
X
rk2 (x)
k=1
Pour cela, avec les notations de la section (5.1), nous choisissons de représenter l’ensemble des
fonctions rk par une fonction du langage dont l’appel suit la syntaxe rk(j, X) où j est un entier,
X la suite des paramètres à estimer, de telle sorte que rk(j, x1 , ..., xn ) = rj (x1 , ..., xn ). Les fonctions à valeurs matricielles associées aux rk , X → J(X) et X →t J(X) J(X) seront construites
formellement par des appels aux procédures MAPLE, J(rk, n, p) et JJ(rk, n, p) comme décrit
dans les tableaux qui suivent. On prendra garde que JJ est une fonction qui retourne une autre
fonction : lorsque r admet la syntaxe précédemment décrite pour rk, l’appel J(r, n, p) retourne
la fonction


D2 (r) (1, x1 , ..., xn ) . . . Dn+1 (r) (1, x1 , ..., xn )


..
..
(x) → 

.
...
.
D2 (r) (p, x1 , ..., xn ) . . . Dn+1 (r) (p, x1 , ..., xn )
où x est une séquence de n variables et où Di (r)(k, x1 , ..., xn ) =
∂
r(k, x1 , ..., xn )
∂xi
Le calcul de J(x) :
J := proc (rk, n, p)
local X, x, i, k, tJ, J;
X := seq(x[i], i = 1 .. n);
seq([seq(diff(rk(k, X),x[i]), i = 1..n)], k = 1..p);
J := Matrix([%]);
unapply(%, seq(X[i], i = 1 .. n))
end proc;
h :=(k, u, v) ->u+vˆ(2*k);
J(h, 2, 3)(a, b);
J(r, 2, 3)(a, b)


1 2b
1 4 b3 
1 6 b5


D2 (r) (1, a, b) D3 (r) (1, a, b)
D2 (r) (2, a, b) D3 (r) (2, a, b)
D2 (r) (3, a, b) D3 (r) (3, a, b)
29
Le calcul de tJ J(x) : l’appel JJ(r, n, p) retourne la fonction (x) →t J(x) J(x) associée aux
rk (x) = r(k, x).
JJ := proc (rk, n, p)
local X, x, i, k, tJ, J;
X := seq(x[i], i = 1 .. n);
seq([seq(diff(rk(k, X), x[i]), i = 1 .. n)], k = 1 .. p);
J := Matrix([%]);
tJ := Transpose(%);
MatrixMatrixMultiply(tJ, J);
unapply(%, seq(X[i], i = 1 .. n))
end proc;
JJ1:= JJ(v, 2, 3)(x, y):
JJ1[1,2];
D2 (v) (1, x, y) D3 (v) (1, x, y)+D2 (v) (2, x, y) D3 (v) (2, x, y)+D2 (v) (3, x, y) D3 (v) (3, x, y)
Recherche d’un minimum 1D voir justification dans l’exercice 5
GS:=proc(f,a,b,n)
local r,alpha, beta, lambda, mu, k;
r
:=(1+sqrt(5))/2;
alpha :=a;
beta
:=b;
lambda := evalf(alpha + rˆ2*(beta-alpha));
mu
:= evalf(alpha + r*(beta-alpha));
for k from 1 to n do
if evalf( f(lambda) - f(mu)) 0
then alpha:= lambda;
else beta := mu;
fi;
lambda := evalf(alpha + rˆ2*(beta-alpha));
mu
:= evalf(alpha + r*(beta-alpha));
od;
alpha,beta;
end:
30
La méthode sous forme de procédure :
Les arguments :
– rk : fonction (syntaxeP
rk(j, x1 , ...xn ) = rj (x1 , ..., xn )) ;
– f : fonction (f (x) = pk=1 rk2 (x1 , ...xn ) ; syntaxe f (x1 , ...xn )) ;
– n tel que le nombre d’arguments attendus pour rk est 1 + n; ce sera aussi le nombre de colonnes
de J(rk, n, p);
– p nombre de termes dans la somme des résidus f (x1 , ..., xn ); ce sera aussi le nombre de lignes
de J(rk, n, p);
– eps : flottant donnant un critère d’arrêt ;
– Nmax : nombre maximal d’itérations (si l’on n’a pas atteint auparavant ||g(Xi )|| ≥ eps;
– suite (des arguments : les arguments n˚ 7 à 7 + n sont les termes x01 , ..., x0n de l’initialisation ;
comme le nombre n de ces arguments n’est pas fixe on les appelle avec args[6 + 1], ...args[6 +
n]; on aurait pu choisir de placer là un vecteur mais la gestion des dérivées partielles de rk dans
les procédures J et tJJ aurait été pénible.
−−→
La syntaxe de la valeur retournée : V, Γ (vecteur des paramètres estimé, ||grad(f )(V )||2 )
GaussNewton := proc (rk, f, n, p, eps, Nmax, suite)
local Jr, tJJr, R, g, c, G, iG, V, q, mu, Y;
Jr
:= J(rk, n, p);
tJJr := tJJ(rk, n, p);
Y := seq(args[6+i], i = 1 .. n);
R := evalf(Vector([seq(rk(k, Y), k = 1 .. p)]));
g := evalf(MatrixVectorMultiply(Transpose(Jr(Y)), R));
c := 0;
while eps<evalf(VectorNorm(g,2,conjugate=false))or Niter <Nmax do
G := evalf(tJJr(Y));
iG := MatrixInverse(G);
V := Vector([Y])- lambda*MatrixVectorMultiply(iG, g);
q := unapply(f(seq(V[i], i = 1 .. 2*N)), lambda);
mu := GS(q, 0, 1, 10);
V := Vector([Y])-mu.MatrixVectorMultiply(iG, g);
Y := seq(V[i], i = 1 .. 2*N);
R := evalf(Vector([seq(rk(k, Y), k = 1 .. P)]));
g := evalf(MatrixVectorMultiply(Transpose(Jr(Y)), R));
c := c+1
end do;
V, evalf(VectorNorm(g, 2, conjugate = false))
end proc;
31
Illustration : amplitudes et phases dans la formule harmonique pour la hauteur de marée
Rappelons brièvement le problème : h0 et les (ωi )1≤i≤N sont connus de même que les relevés
(tk )1≤k≤P et (zk )1≤k≤P (temps et hauteurs mesurés) ; la suite des paramètres à estimer est X =
(a1 , ..., aN , ν1 , ...νN ) on veut donc minimiser
f (a1 , ..., aN , ν1 , ..., νN ) =
p
p
k=1
k=1
2 1 X
1 X ~
~ ~ν )2
φ(A, ~ν , tk ) − zk =
rk2 (A,
2
2
où les (zk )1≤k≤p sont les hauteurs observées en des instants (tk )1≤k≤p . Nous notons comme dans
notre problème générique a1 , ..., aN , ν1 , ..., νN = x1 , ..., xN , xN +1 , ...x2N . Le nombre de paramètres est n = 2. le nombre d’observations est p = P.
• Comme toujours, nous allons vérifier nos procédures formellement (débuggage visuel) en explicitant les fonctions rk et f puis en testant les procédures J et tJ.
On définit donc en page 33 ces fonctions pour des ωi , νi et des tk , zk formels, ce qui permet de
vérifier et d’illustrer...
• Dans une deuxième étape nous allons tester numériquement nos algorithmes avec des des tk
et zk fictifs pour de petites valeurs de n et p (page 35). Nous verrons déjà apparaı̂tre certains
phénomènes numériques.
• Si tout se passe bien nous passerons à la mise en œuvre sur des données effectives, en l’occurrence à partir de 2160 relevés (soit chaque heure pendant 90 jours).
32
Cas particulier des coefficients de marée, représentation formelle des fonctions φ, rk et f
N (on a ici n = 2.N paramètres), P le nombre d’observations, h0 la hauteur moyenne (connue)
0mega = ω1 , ..., ωN suite des pulsations (connues), T suite des instants d’observation et Z suite
des hauteurs observées, sont des variables globales, ici formelles pour illustrer notre propos et
pour permettre de vérifier. X = a1 , ..., aN , ν1 , ..., νN est la suite des variables de φ...
N := 2;
Omega := seq(w[i], i = 1 .. N);
A
V
X
:= seq(a[i], i = 1 .. N);
:= seq(nu[i], i = 1 .. N);
:= A, V;
P
T
Z
:= 5;
:= seq(t[i], i = 1 .. P);
:= seq(z[i], i = 1 .. P);
phi:=(t, X)-> add(args[1+i]*cos(Omega[i]*t+args[N+1+i]),i =1..N);
phi(t, X);
rk :=(k, X)->(phi(T[k], seq(args[j], j = 2..nargs()))-Z[k])ˆ2;
rk(2, X);
rk(4, X);
a1 cos (w1 t2 + ν1 ) + a2 cos (w2 t2 + ν2 ) − z2
a1 cos (w1 t4 + ν1 ) + a2 cos (w2 t4 + ν2 ) − z4
f :=( ) -> (1/2)*add(rk(k, args)ˆ2, k=1..P):
f(X);
1
(a1 cos (w1 t1 + ν1 ) + a2 cos (w2 t1 + ν2 ) − z1 )2
2
1
+ (a1 cos (w1 t2 + ν1 ) + a2 cos (w2 t2 + ν2 ) − z2 )2
2
1
+ (a1 cos (w1 t3 + ν1 ) + a2 cos (w2 t3 + ν2 ) − z3 )2
2
1
+ (a1 cos (w1 t4 + ν1 ) + a2 cos (w2 t4 + ν2 ) − z4 )2
2
1
+ (a1 cos (w1 t5 + ν1 ) + a2 cos (w2 t5 + ν2 ) − z5 )2
2
33
Jr := J(rk, 2*N,
Jr(X);

cos (w1 t1 + ν1 )
cos (w1 t2 + ν1 )

cos (w1 t3 + ν1 )

cos (w1 t4 + ν1 )
cos (w1 t5 + ν1 )
P):
cos (w2 t1 + ν2 )
cos (w2 t2 + ν2 )
cos (w2 t3 + ν2 )
cos (w2 t4 + ν2 )
cos (w2 t5 + ν2 )
−a1 sin (w1 t1 + ν1 )
−a1 sin (w1 t2 + ν1 )
−a1 sin (w1 t3 + ν1 )
−a1 sin (w1 t4 + ν1 )
−a1 sin (w1 t5 + ν1 )

−a2 sin (w2 t1 + ν2 )
−a2 sin (w2 t2 + ν2 )

−a2 sin (w2 t3 + ν2 )

−a2 sin (w2 t4 + ν2 )
−a2 sin (w2 t5 + ν2 )
Test numérique en miniature
• définition des fonctions phi et rk à partir de données numériques simulées
• appel de la procédure (malgré les apparences, le couple (a1 , ν1 ) correspond bien aux valeurs test
test + 3π!)
car si a1 = −atest
1 , on aν1 = ν1
N := 2; P := 5:
Omega := 11, 12:
h0 := 50;
T := seq(k, k = 1 .. P):
phi:=(t,X)->h0+add(args[1+i]*cos(Omega[i]*t+args[N+1+i]),i=1..N);
Xt := 12, 14, 1.6, .7:
Z := NULL;
for k to P do
Z := Z, evalf(phi(T[k], Xt))
end do:
rk :=(k, X)-> phi(T[k], seq(args[j],j = 2..nargs()))-Z[k]:
f :=()->(1/2)*add(rk(k, args)ˆ2, k =1..P):
X0 := 123, 156, 12, 2: eps := 10.ˆ(-6):
X, norme := GaussNewton(rk, f, 2*N, P, eps, 10, X0):
evalf(X[3]-3*Pi);


−12.0000000036194461
 14.0000000034084344 
−12


 11.0247779606254568  2.420393334 ∗ 10
0.699999999879417301
1.59999999862546
34
Test numérique en grandeur nature
• définition des fonctions phi et rk à partir de données numériques observée à raison d’une mesure
toutes les heures pendant 90 jours (p = 24 × 90 = 2160).
• on recherche une évaluation avec n = 8 harmoniques retenues (l’écriture de la fonction f
dépasse 150 pages)
• appel de la procédure
35
5.4
Mise en œuvre : Scilab et formule harmonique
36
6
Méthode quasi-Newton (BFGS)
37
7
Annexe : historique des méthodes de moindres carrés
Pour l’instat, du vrac...
Gauss et Céres
www.scei-concours.fr/tipe/sujet 2009/mathematiques MP 2009.pdf
Cholesky : http ://www.sabix.org/bulletin/b39/vie.html
Toutes les fois que l’on fait une triangulation calculée, il y a avantage à faire également une compensation par le calcul. On est alors amené à écrire un certain nombre d’équations représentant
les relations géométriques entre les divers éléments des figures de la triangulation et comme il
y a généralement plus d’inconnues que d’équations, on lève l’indétermination en écrivant que la
somme des carrés des corrections est minima.
Brezinski http ://smf4.emath.fr/en/Publications/RevueHistoireMath/11/pdf/smf rhm 11 205-238.pdf
38
8
Correction des exercices
Corrigé n˚ 8.0.1 — corrigé de l’exercice 1.
1. C’est la partie facile, on commence par dériver le produit terme à terme, ce qui donne
n
X d
d
(A(t) × B(t))i,j =
Ai,k (t) × Bk,j (t)
dt
dt
k=1
=
n
X
A0i,k (t)Bk,j (t)
k=1
+
n
X
0
Ai,k (t)Bk,j
(t)
k=1
d’où la formule de dérivation d’un produit matriciel.
Dans le cas où B est à valeurs dans Rn ,
2. Venons en à l’inversion matricielle J
(a) GLn (R) est l’image réciproque de l’ouvert R∗ par l’application determinant qui est
continue de Mn (R) dans R (les coordonnées sont polynomiales en les mi,j )
(b) J est de classe C ∞ : ce n’est pas encore bien difficile ; on sait que
A−1 =
1 t
Com(A)
det(A)
on en déduit que chacune de n2 fonctions composantes de J dans la base canonique
est de classe C ∞ puisque c’est une fonction rationnelle en les mi,j .
(c) Les idées claires.
– pour toute matrice A ∈ GLn (R), dJ (A) est une application linéaire de Mn (R)
dans lui-même.
– Dans la base canonique de Mn (R), la matrice de dJ (A) (matrice jacobienne de
J ) admet donc n2 lignes et n2 colonnes.
∂[A−1 ]k,l
– Chacun des n4 coefficients est de la forme
, il s’agit de la dérivée de
ai,j
la composante de la ligne k, colonne l de la fonction A → A−1 par rapport à la
coordonnée ai,j (dans la base canonique).
– Les n2 dérivées partielles de J en un point M dans la base canonique sont les
matrices de Mn (R) définies par
(M + t Ei,j )−1 − M −1
∂J (A)
= lim
= lim M −1
t→0
t→0
∂mi,j
t
(In + t M Ei,j )−1 − In
t
3. Venons en au fait :
(a) Pour déterminer dJ (A) qui est donc une application linéaire de Mn (R) dans luimême, nous pouvons observer que pour toute courbe paramétrée de classe C 1 , Γ : t ∈
I ∈ R → Γ(t) ∈ GLn (R), on a, par dérivation de fonctions composées,
d(Γ(t))−1
d(J ◦ Γ)
=
(t) = dJ (Γ(t)) Γ0 (t)
dt
dt
39
(b) On dérive alors la courbe t → Γ(t) × Γ(t)−1 . Il vient avec la formule de dérivation
d’un produit et la formule que précède :
d(Γ(t))−1 × Γ(t)
d(J ◦ Γ)(t))
dΓ(t)
=
× Γ(t) + J (Γ(t)) ×
dt
dt
dt
dΓ(t)
= (dJ (Γ(t)) Γ0 (t)) × Γ(t) + +J (Γ(t)) ×
dt
Comme cette expression est nulle (dérivée d’une constante), il vient :
dJ (Γ(t)) Γ0 (t) = −Γ(t)−1 ×
dΓ(t)
× Γ(t)−1
dt
Cela nous permet de déterminer l’application linéaire dJ (A) pour A ∈ GLn (R). on
considère Γ(t) = A + t H où H est une matrice quelconque, en remplaçant et en
faisant ensuite t = 0, il vient :
dJ (A) H = −A−1 × H × A−1
Remarque : on pourrait aussi déterminer les n2 dérivées partielles de J dans la base
canonique de de Mn (R) en observant que
(M + t Ei,j )−1 − M −1
∂J (A)
= lim M −1
= lim
t→0
t→0
∂mi,j
t
est en fait −M −1 × Ei,j × A−1 ...
40
(In + t M Ei,j )−1 − In
t
Corrigé n˚ 8.0.2 — corrigé de l’exercice 2.
1. On dérive donc en adaptant la formule générique de l’exercice 1
dA(t)V (t)
= A0 (t).V (t) + A(t).V 0 (t)
dt
dans laquelle A(t) devient A(X(t)), ... et on obtient par dérivation des fonctions composées
d
d
d
A(X(t))V (X(t)) =
A(X(t)) .V (X(t)) + A(X(t)).
V (X(t))
dt
dt
dt
= (dA(X(t)).X 0 (t)).V (X(t)) + A(X(t)).(dV (X(t)).X 0 (t))
Précisons comme l’énoncé nous y invite la nature de chacun des objets que nous avons
introduits :
– dA(X(t)) est une application linéaire de Rn dans Mn (R);
– comme X 0 (t) ∈ Rn , dA(X(t)).X 0 (t) est donc une matrice de Mn (R);
– dA(X(t)).X 0 (t)).V (X(t)) est alors un vecteur de Rn ;
– dV (X(t)) est une application linéaire de Rn dans lui-même ;
– dV (X(t)).X 0 (t) ∈ Rn de même que A(X(t)).(dV (X(t)).X 0 (t)).
2. Considérons alors la courbe X : t → x0 + t.h, notons A.V l’application x → A(x).V (x).
Il vient, en dérivant la fonction composée (A.V ) ◦ X et en rapprochant de ce qui précède :
d
A(X(t))V (X(t)) = d(A.V )(X(t)).X 0 (t)
dt
d
A(X(t))V (X(t)) = (dA(X(t)).X 0 (t)).V (X(t)) + A(X(t)).(dV (X(t)).X 0 (t))
dt
ce qui, lorsque t = 0, donne
d(A.V )(x0 )h = dA(x0 ).h.V (x0 ) + A(x0 ).V (x0 ).h
41
Corrigé n˚ 8.0.3 — corrigé de l’exercice 3
1. La fonction f est de classe C 2 , φ : x → det df (x) est donc de classe C 1 et F est définie là
où ce déterminant ne s’annule pas. Or l’image réciproque de R∗ par φ est un ouvert contenu
dans Ω.
Par ailleurs, en utilisant en partie le résultat de l’exercice 2, nous avons
F (x) = x − (J ◦ df )(x).f (x)
dF (x) = In − {d(J ◦ df ))(x).f (x) + (J ◦ df )(x).df (x)}
= In − {d(J ◦ df ))(x).f (x) + In }
Sans aller plus loin dans les calculs, avec f (c) = 0 on a F (c) = c et dF (c) = 0 ∈ L(Rn ).
2. Comme dF (c) = 0 et comme dF est continue, il existe δ1 > 0 tel que sur B1 = B̄(c, δ1 )
|||dF (x)||| ≤ 1.
(a) Pour x = c + h ∈ B1 , nous avons
Z
1
F (c + h) − F (c) =
0
Z
d
F (c + t h) dt
dt
1
=
dF (c + t h) h dt
0
Z
||F (c + h) − F (c)|| =
1
|||dF (c + t h)||| ||h|| dt dt
0
Ainsi, ||F (c + h) − c|| ≤ ||h|| ≤ δ1 , et cette boule est bien stable par F.
(b) On reprend la démonstration vue en dimension 1, on écrit
xn+1 − c = xn − c − [Df (xn )]−1 .f (xn )
−1
= −[Df (xn )]
(f (xn ) + Df (xn )(c − xn ))
(8.1)
(8.2)
Ecrivons la formule de Taylor à l’ordre 2 au voisinage d’un point x ∈ B,
1
f (c) =h→0 f (x) + Df (x).(c − x) + D2 f (x)(c − x, c − x) + ε(c − x) ||(c − x)||2
2
Elle permet d’écrire sur la boule B1 privée de c,
−||c − x||2
c−x
c−x
2
f (x) + Df (x).(c − x) =
D f (x)
,
+ ~ε(c − x)
h→0
2
||c − x|| ||c − x||
c−x
c−x
2
** L’expression D f (x)
,
+ ~ε(c − x) est bornée sur B1 privée
||c − x|| ||c − x||
de c. En effet,
– (x, h, h) → D2 f (x)(h, h) est continue ; l’expression donnée page 11 le montre
clairement.
42
– Elle est donc bornée sur B1 × Sn−1 × Sn−1 qui est un compact de Rn × Rn × Rn .
– Enfin, x → ~ε(c−x) a pour limite 0 en c. Elle est donc bornée sur une boule B̄(0, δ2 ).
On note alors B = B̄(0, min(δ1 , δ2 ) = B̄(0, δ). Cette boule est encore stable par F
(puisque |||DF (x)||| y est encore majorée par 1) et, en reprenant la formule (8.1) pour
une suite non stationnaire,
−1
||xn+1 − c|| = |||Df (xn )]
2
||c − xn ||2
c − xn
c − xn
||| D f (x)
+ ~ε(c − xn )
,
||c − xn || ||c − xn ||
2
ce qui conduit à la majoration attendue avec
K=
1
max |||Df (x)]−1 || × max ||D2 f (x)(h, h) + ~ε(h)||
2 x∈B
x∈B,||h||=1
43
Corrigé n˚ 8.0.4 — corrigé de l’exercice 4.
Soit f : I → R une fonction définie sur un intervalle I de R.
1. Nous allons procéder en deux étapes avant de conclure.
• Étape 1 : On suppose tout d’abord que x1 < x2 = x3 < x4 . La relation du théorème
devient :
f (x2 ) − f (x1 )
f (x4 ) − f (x2 )
≤
.
x2 − x1
x4 − x2
(8.3)
Comme les dénominateurs sont strictement positifs, on multiplie par chacun d’eux ce qui
nous donne la relation équivalente :
(f (x2 ) − f (x1 ))(x4 − x2 ) ≤ (f (x4 ) − f (x2 ))(x2 − x1 )
elle-même équivalente à
f (x2 ) ≤
x4 − x2
x4 − x1
f (x1 ) +
x2 − x1
x4 − x1
f (x4 ).
Il s’agit là de la définition même de la convexité de f puisque
x2 − x1
x4 − x2
x1 +
x4 .
x2 =
x4 − x1
x4 − x1
Cela montre que f est convexe ssi (8.3).
• Étape 2 :
Si (x1 , x2 , x2 , x4 ) ∈ I 4 est tel que x1 < x2 ≤ x3 < x4 , on a en appliquant deux fois le
résultat (8.3)
f (x2 ) − f (x1 )
f (x3 ) − f (x2 )
f (x4 ) − f (x3 )
≤
≤
.
x2 − x1
x3 − x2
x4 − x3
(8.4)
Comme (8.3) est un cas particulier de (8.4), on a aussi (8.3)⇔ (8.4).
• Ainsi f convexe ⇔ (8.3)⇔ (8.4).
2. On suppose f est strictement convexe et continue sur I = [a, b]. Elle y admet un minimum
puisqu’elle est continue sur un segment (compact).
Montrons que ce minimum est atteint en un point au plus en raisonnant par l’absurde : du
fait de la stricte convexité, si ce minimum est atteint en deux points distincts, x1 et x2 avec
f (x1 ) = f (x2 ) = min f (x) = µ,
x∈[a,b]
on aura en particulier,
f
1
1
x1 + x2
2
2
1
1
< f (x1 ) + f (x2 ) = µ.
2
2
Cela contredit la définition du minimum.
44
3. On se donne t ∈]0, 1/2[ et on partage I = [a, b] en trois intervalles de la façon suivante :

a+b


x =
− t (b − a)

 1
2
I = [a, x1 ] ∪ [x1 , x2 ] ∪ [x2 , b] avec



x2 = a + b + t (b − a)
2
(a) On note p0 , p2 , p2 les pentes de f sur ces trois intervalles.
– Montrons que p0 ≤ p1 ≤ p2 ≤ 0 =⇒ µ ∈ [x2 , b];
On suppose donc que
p0 =
f (b) − f (x2 )
f (x1 ) − f (a)
f (x2 ) − f (x1 )
< p2 =
< 0.
< p1 =
x1 − a
x2 − x1
b − x2
(8.5)
f (b) − f (x2 )
≤ 0, d’après le résultat de la première question, sur
b − x2
[a, x2 ] le taux de variation de f est strictement négatif et f décroı̂t strictement sur
cet intervalle. Donc, si x ∈ [a, x2 ],
Comme p2 =
f (x) > f (x2 ) ≥ min f (t)
t∈[a,b]
le minimum n’est donc pas atteint sur [a, x2 ], il l’est nécessairement sur [x2 , b].
– Montrons que p0 ≤ p1 < 0 =⇒ µ ∈ [x1 , b].
Toujours d’après le résultat de la première question, comme p1 < 0, sur [a, x1 ]
le taux de variation de f est strictement négatif, f décroı̂t sur x ∈ [a, x1 ] et si
x ∈ [a, x1 ]
f (x) > f (x1 ) ≥ min f (t)
t∈[a,b]
de cela on déduit que le minimum est atteint sur [x1 , b] puisqu’il ne peut l’être sur
[a, x1 ].
– Montrons que p0 < 0 < p1 < p2 =⇒ µ ∈ [a, x2 ].
Comme p2 > 0, sur [x2 , b] le taux de variation de f est strictement positif et f est
strictement croissante. Donc, pour x ∈ [x2 , b], on a :
min f (t) ≤ f (x2 ) < f (x).
t∈[a,b]
Le minimum ne saurait être atteint sur [x2 , b] il est donc atteint sur [a, x2 ].
– on montre de la même façon que 0 ≤ p0 ≤ p2 ≤ p2 =⇒ µ ∈ [a, x1 ]...
(b) Voir pour cela le chapitre 6 de [1].
45
Corrigé n˚ 8.0.5 — corrigé de l’exercice 5
1. I = [a, b] et f & strict. sur ] − ∞, t0 ] ∩ I et f % strict. sur [t0 , +∞[∩I.
√
5−1
(a) Observons que si r est la solution positive de
+ x = 1, r =
∈]0, 1[,
2
√
3− 5
r2 = 1 − r =
∈]0, 1[, ce qui assure que an ≤ λn ≤ µn ≤ bn lorsque
2
λn = an + r2 `n et µn = an + r`n , avec `n = bn − an .
x2
Nous allons montrer par récurrence sur n que t0 ∈ [an , bn ].
C’est évident lorsque n = 0. Supposons que t0 ∈ [an , bn ]. Deux cas se présentant
alors :
• Soit f (λn ) ≥ f (µn ).
Cela exclut que t0 ∈ [an , λn [, sinon, f strictement croissante sur [t0 , bn ] on aurait
f (t0 ) ≤ f (λn ) < f (µn ) ce qui est incompatible avec l’hypothèses.
Comme on pose dans ce cas an+1 = λn et bn+1 = bn la relation t0 ∈ [an+1 , bn+1 ] est
établie.
• Si f (λn ) ≤ f (µn ) on ne peut avoir t0 ∈ [µn , bn ] pour une raison analogue et comme
an+1 = an et bn+1 = µn la relation t0 ∈ [an+1 , bn+1 ] est établie.
Convergence :
on a `n+1 ≤ max{r, r2 } = r`n donc `n ≤ rn `0 et les suites (an )n croissante, et (bn )n
décroissante sont adjacentes et encadrent t0 ..
(b)
GS:=proc(f,a,b,n)
global r;
local alpha,beta,lambda,mu, k;
alpha
beta
:=a;
:=b;
lambda := evalf(alpha + rˆ2*(beta-alpha));
mu
:= evalf(alpha + r*(beta-alpha));
for k from 1 to n do
if evalf( f(lambda) - f(mu)) 0
then alpha:= lambda;
else beta := mu;
fi;
lambda := evalf(alpha + rˆ2*(beta-alpha));
mu
:= evalf(alpha + r*(beta-alpha));
od;
alpha,beta;
end:
46
g:=proc(x)
if x<=1 then 3-x
elif x <=2 then x+1
else 3;
fi;
end;
plot(g,0..3,0..3);
fsolve(3*rˆn=10ˆ(-5));
GS(g,0,3,27);
g := proc (x) if x <= 1 then 3−x elif x <= 2 then x+1 else 3 end if end proc
26.20787166
0.9999971839, 1.000004014
2. Minimum de fonctions de plusieurs variables
F est définie sur un ouvert U convexe de R2 , à valeurs réelles, de classe C 1 .
(a)
dφ(λ)
∂F (x + λu) d(x1 + λu1 ) ∂F (x + λu) d(x2 + λu2 )
=
+
=< grad(F )(x+λu)|u >
dλ
∂x1
dλ
∂x2
dλ
(règle de la chaı̂ne)
Ainsi, φ0 (0) =< grad(F )(x)|u >= ||grad(F )(x)||.||u||. cos(θ), expression dans lagrad(F )(x)
quelle seule θ est variable : φ0 (0) est minimale lorsque θ = π et u = −
.
||grad(F )(x)||
(b) On définit la suite avec
• si grad(F )(xn ) 6= 0,
−grad(F )(xn )
– un =
||grad(f )(xn )||
– xn+1 = xn + λ∗n un où λ∗n réalise le minimum de F (xn + λun ).
47
• si grad(F )(xn ) = 0, xn est le dernier terme de la suite qui est donc finie.
F (xn+1 ) = F (xn + λ∗n un ) ≤ F (xn + 0un ) = F (xn ), la suite (F (xn ))n est donc
décroissante et minorée (puisque F est minorée) et elle est convergente.
(c) Exemple F (x, y) = ln 1 + x2 + y 2 + xy .
f:=(x,y)->ln(1+xˆ2+yˆ2+x*y);
plot3d(f(x,y),x=-1..1,y=-1..1);
[diff(f(x,y),x),diff(f(x,y),y)];
g:=unapply(%,(x,y));
(x, y) 7→ [
2x + y
2y + x
,
]
1 + x2 + y 2 + xy 1 + x2 + y 2 + xy
n:=12;
X:=[1.,3];
for k from 1 to n do
u
:= normalize(g(X[1],X[2]));
phi
:= lambda - f( X[1] + lambda*u[1],
m
:= GS(phi,-5,5,15);
lambdaStar := (m[1]+m[2])/2;
X
:= evalm(X+lambdaStar*u);
f(X[1],X[2]);
od;
n := 12
X := [1., 3]
u := [0.5812381936, 0.8137334712]
48
X[2] + lambda*u[2]);
φ := λ− > f (X[1] + λu[1], X[2] + λu[2])
m := −2.921626370, −2.914294996
lambdaStar := −2.917960683
X := [−0.696030196, 0.625557725]
0.3649024098
..
.
X := [−0.001860518352, 0.0008530456106]
0.260299661210−5
49
Corrigé n˚ 8.0.6 corrigé de l’exercice 6 Approximation discrète au sens des moindres carrés
1. Généralités
(a) Si f est combinaison linéaire des d + 1 fonctions (ui )0≤i≤d , il existe (ai )i ∈ Kd+1 tel
P
que f (x) = di=0 ai ui (x) et alors

  Pd



f (x1 )
ui (x1 )
d
i=0 ai ui (x1 )

 
 X  .. 
..
F =  ...  = 
ai  .  .
=
.
Pd
i=0
f (xN )
ui (xN )
i=0 ai ui (xN )


ui (x1 )


Ainsi le vecteur F est combinaison linéaire des d + 1 vecteurs  ...  . Nous
ui (xN )
noterons V le sous-espace de K N engendré par ces d+1 vecteurs. On peut exprimer
matriciellement :


u0 (x1 ) u1 (x1 ) . . . ud (x1 )  
 u0 (x2 ) u1 (x2 ) . . . ud (x2 )  a0



 a1 

 
F = UA =  .
  .. 
.
.
.
.
.
 .
 
.
. 

 .

 ad
u0 (xN ) u1 (xN ) . . . ud (xN )
avec U ∈ MN,d+1 et A ∈ Kd+1 . V apparaı̂t alors comme étant l’image de U dans
K N . Cette image a pour dimension le rang de U qui est au plus d + 1.
(b) Lorsque la fonction f est polynomiale de degré ≤ d, elle est combinaison linéaire
des fonctions monômes ui (x) = xi et la matrice U est la matrice de Vandermonde
(tronquée) :




1 x1 . . . xd1
u0 (x1 ) u1 (x1 ) . . . ud (x1 )
d

 u0 (x2 ) u1 (x2 ) . . . ud (x2 )  1 x2 . . . x2 

 


 


 

U = .
=
.
..
..  

 ..


.
.
.
.
.
.
.
.

 .

.
.






u0 (xN ) u1 (xN ) . . . ud (xN )
d
1 xN . . . x N
2. Considérons une norme || || dans KN . D’après les préliminaires topologiques, pour tout
Y ∈ K N , il existe un vecteur F0 ∈ V (non nécessairement unique) de V sev de KN tel que
||Y − F0 || = inf ||Y − F ||.
F ∈V
3. On pose J(A) = ||F − Y ||2 = ||U A − Y ||2 .
(a) Numérotons :
i. J(A) est un minimum de J sur RN ;
50
ii. pour tout B ∈ F, pour tout ε ∈ R, J(A) ≤ J(A + εB);
iii. pour tout B ∈ F, < U A − Y |U B >= 0.
(1) ⇒ (2) est immédiat.
(2) ⇒ (3) : la fonction de la variable réelle ε → J(A + εB) = ||U (A + εB) − Y ||22
s’exprime :
J(A + εB) = ||U (A + εB) − Y ||22 = ||U B||2 ε2 + 2ε < U B|U A − Y > +J(A).
Si pour tout ε, J(A) ≤ J(A + εB), on a aussi pour tout ε > 0,
||U B||2 ε + 2 < U B|U A − Y >≥ 0.
Cela impose (par exemple en passant à la limite) < U B|U A − Y >≥ 0.
De la même façon, si ε < 0,
||U B||2 ε + 2 < U B|U A − Y >≤ 0,
ce qui impose < U B|U A − Y >≤ 0.
(3) ⇒ (1) : on suppose que pour tout B ∈ KN , < U B|U A − Y >= 0. On a alors
pour X ∈ Kd+1 quelconque
J(X) = J(A+(X−A)) = ||U (X−A)||2 +2 < U (X−A)|U A−Y > +J(A) ≥ J(A).
(b) Soient M ∈ Mp,q (R), X ∈ Rp , Y ∈ Rq ; on a M Y ∈ Rp et
!
!
p
q
p
q
X
X
X
X
mi,k xi yk .
< X|M Y >=
xi
mi,k yk =
i=1
t
< M X|Y >=
q
X
k=1
i=1
k=1
yk
p
X
(t m)k,i xi
i=1
!
=
k=1
q
p
X
X
k=1
!
mi,k xi yk
i=1
où les deux expressions sont égales.
(c) La relation < U A − Y |U B >= 0 qui devient <t U (U A − Y )|B >= 0. Comme B
est quelconque, F = U A réalise le minimum de ||F − Y || ssi tU U A −t U Y = 0.
Une telle équation admet une solution A et une seule lorsque tU U est inversible. Or
la matrice carrée tU U a le même noyau que U. Elle est inversible dans Md+1 (R) dès
lors que rg(U ) = dimV = d + 1.
Vérifions que ker(U ) = ker(t U U ).
U ∈ MN,d+1 (R),t U U ∈ Md+1 (R) considérons X ∈ Rd + 1.
-X ∈ ker(U ) implique que pour tout Y, < U X|U Y >=<t U U X|Y >= 0. Ainsi
t U U X = 0.
- Réciproquement, si t U U X = 0, <t U U X|X >=< U X|U X >= ||U X||2 = 0 et
X ∈ ker(U ).
Remarque : l’existence est assurée quelque soit le rang de U ou la dimension de V
pour des raisons topologiques.
51
Corrigé n˚ 8.0.7 corrigé de l’exercice 7
1 Pp
On note toujours f (x) =
r2 (x) et tJ(x) la matrice de Mn,p (R ) dont les colonnes sont
2 k=1 k
les p gradients des fonctions rk .
1. Montrer que la matrice carrée tJ(x) J(x) est symétrique et positive.
2. Montre que tJ(x) J(x) est définie positive ssi (n ≤ p et J(x) est de rang n).
52
Références
[1] T HIERRY AUDIBERT, A MAR O USSALAH
Informatique, Programmation et Calcul Scientifique
Ellipses, 2013
[2] M. B ERGONIOUX .
Optimisation et contrôle des systèmes linéaires
Dunod, 2001
[3] J.F R ÉD ÉRIC B ONNANS , J.C HARLES G ILBERT, C LAUDE L EMAR ÉCHAL , C LAUDIA A. S A GASTZ ÁBAL .
Numerical Optimisation
Springer, 2006
[4] C LAUDE B REZINSKI , M ICHELA R EDIVO -Z AGLIA .
Méthodes numériques itératives
Ellipse, 2006
[5] J.P. D EMAILLY .
Analyse numérique et équations différentielles
PUG, 1996
[6] R ICHARD A. H OLMGREN .
A first course in dynamical systems
Springer, 2000
[7] SHOM .
http ://www.shom.fr/fr page/fr act oceano/maree/ondes.htm
la page du SHOM, Service hydrographique de la Marine
[8] B ERNARD S IMON .
La marée 1. La Marée océanique cotière
Institut océanographique Collection : SYNTHESES (2007)
[9] JAN A. S NYMAN .
Practical Mathematical Optimisation
Springer, 2005
53
Index
attractif
point fixe, 6
moindres carrés
problème, 24
bassin d’attraction, 5, 22
Newton
quasi (méthodes), 16
norme
subordonnée, 14
Cholesky
moindres carrés, 38
convergence
géométrique, 5
linéaire, 5
quadratique, 5
vitesse de, 5
différentielle, 10, 11
de l’inversion matricielle, 12
seconde, 11
formule
de Taylor, 10, 11
Gauss-Newton
matrice de, 27
hessienne, 10
jacobienne, 10
ligne de descente
règle d’or, 30
règle de Wolfe, 19
ordre de convergence, 5
méthode de Newton, 7
méthode du point fixe, 6
point fixe
attractif, 6
super attractif, 2
régression
linéaire
une variable, 26
règle
d’or (rech. minimum), 18
système
dynamique, 5
Taylor
formule de, 10, 11
Wolfe
procédé (rech. minimum), 19
méthode
quasi Newton, 16
méthode de Newton
plusieurs variables, 14
une variable, 2
matrice
de Gauss-Newton, 27
hessienne, 10
jacobienne, 10
minimum
fonction convexe, 17
ligne de descente
règle d’or, 30
règle de Wolfe, 19
règle d’or, 18
54
Téléchargement