Partiel (L3) Méthodes Numériques : Optimisation.
9 mars 2021 D. Gontier, gontier@ceremade.dauphine.fr
Deux heures. Les documents et calculatrices ne sont pas autorisés.
1 page recto-verso.
On rappelle que S
d( R ) est l’ensemble des matrices symétriques. On rappelle aussi la formule de Taylor-Young à l’ordre 2 :
f (x + h) = f (x) + f
0(x)h + 1
2 f
00(x + c)h
2, pour un c ∈ (0, h).
Exercice 1. (Méthode de Steffensen)
Soit f : R → R une fonction de classe C
∞, et soit x
∗∈ R tel que f (x
∗) = 0 et f
0(x
∗) 6= 0.
On considère la suite
x
n+1= Φ(x
n), avec Φ(x) := x − f (x)
2f (x + f(x)) − f (x) . a/ On rappelle le développement limité à l’ordre 1 de f , de la forme
f (x
∗+ h) = f
0(x
∗)h + O(h
2).
Calculer le développement limité (prendre son temps...) : a1/ à l’ordre 1 de f (x
∗+ h + f (x
∗+ h)).
a2/ à l’ordre 2 de f (x
∗+ h)
2. b/ En déduire que
Φ(x
∗+ h) = x
∗+ O(h
2).
c/ Montrer que Φ(x
∗) = x
∗et que Φ
0(x
∗) = 0.
d/ On suppose qu’il existe 0 < ε < 1 tel que max
x∈B(x∗,ε)
|Φ
00(x)| ≤ 2.
On suppose aussi que x
0∈ B(x
∗, ε). Montrer que toute la suite (x
n) est dans B(x
∗, ε), et que
|x
n+1− x
∗| ≤ |x
n− x
∗|
2. e/ Quelle est la vitesse de convergence de (x
n) vers x
∗?
f/ Quel est le lien entre la méthode de Newton, la méthode de Steffensen, et les différences finies ? a/ Pour a1, on a
f (x
∗+ h + f (x
∗+ h)) = f x
∗+ h + f
0(x
∗)h + O(h
2)
= f
0(x
∗) [h + f
0(x
∗)h] + O(h
2)
= f
0(x
∗)h + f
0(x
∗)
2h + O(h
2).
Pour a2, on a
f
2(x
∗+ h) = f
0(x
∗)h + O(h
2)
2= f
0(x
∗)
2h
2+ O(h
3).
b/ Pour commencer, on remarque que
f (x
∗+ h + f (x
∗+ h)) − f (x
∗+ h) = f
0(x
∗)
2h + O(h
2).
donc
f
2(x
∗+ h)
f (x
∗+ h + f (x
∗+ h)) − f (x
∗+ h) = f
0(x
∗)
2h
2+ O(h
3) f
0(x
∗)
2h + O(h
2) =
h + O(h
2) 1 + O(h)
= h + O(h
2).
Enfin, on trouve
Φ(x
∗+ h) = x
∗+ h − h + O(h
2) = x
∗+ O(h
2).
c/ Le développement limité de Φ peut aussi s’écrire Φ(x
∗+ h) = Φ(x
∗) + Φ
0(x
∗)h + O(h
2). Par identification, on a Φ(x
∗) = x
∗et Φ
0(x
∗) = 0.
d/ D’après Taylor-Young, pour tout x ∈ R , il existe c ∈ (x
∗, x) tel que Φ(x) − Φ(x
∗) − Φ
0(x
∗)
| {z }
=0
(x − x
∗) = 1
2 Φ
00(c)(x − x
∗)
2.
Supposons x
n∈ B(x
∗, ε). On a
|x
n+1− x
∗| = |Φ(x
n) − Φ(x
∗)| = 1
2 |Φ
00(c)| · |x
n− x
∗|
2≤ 1 2 max
c∈B(x∗,ε)
|Φ
00(c)| · |x
n− x
∗|
2≤ |x
n− x
∗|
2.
En particulier, on a |x
n+1− x
∗| ≤ ε
2≤ ε (car 0 < ε < 1), donc x
n+1∈ B(x
∗, ε). Par récurrence, toute la suite (x
n) est dans B(x
∗, ε).
e/ On obtient alors
|x
n− x
∗| ≤ |x
n−1− x
∗|
2≤ |x
n−2− x
∗|
22≤ · · · ≤ |x
0− x
∗|
2n, et on reconnaît une vitesse quadratique.
f/ On remarque que la méthode de Steffensen est une méthode de Newton, où on a fait l’approximation f
0(x) ≈ f (x + h) − f(x)
h , avec h = f (x).
Si x
nconverge vers x
∗, on a f (x
n) → 0, et le pas de la différence finie converge vers 0 : l’approximation est de plus en plus précise.
On remarquera que, comparé à la méthode de Newton, la méthode de Steffensen ne nécessite pas d’évaluer f
0.
Exercice 2. (Perturbation de matrices diagonales)
Soit A ∈ S
d( R ). On suppose que A est de la forme A = D + E, où D est une matrice diagonale diag(λ
1, · · · , λ
d) avec 0 < λ
1≤ · · · ≤ λ
d, et E ∈ S
d( R ) vérifie kEk
op< λ
1. On pose √
D := diag( √
λ
1, · · · , √ λ
d).
a/ Montrer que √
D est inversible, et que √ D √
D = D. Que vaut k √
D
−1k
op? b/ Montrer que A = √
D I
d+ √
D
−1E √
D
−1√ D.
c/ Montrer que, pour tout x ∈ R
d, on a
−kEk
opkxk
2≤ hx, Exi ≤ kEk
opkxk
2, et que k √
D
−1xk
2≤ 1 λ
1kxk
2.
d/ Montrer que pour tout x ∈ R
davec kxk = 1, on a
1 − kEk
opλ
1≤ hx, I
d+ √
D
−1E √ D
−1xi ≤
1 + kEk
opλ
1. En déduire que A est inversible.
e/ Montrer que pour résoudre l’équation Ax = b, il suffit de résoudre : (A) √
D b e = b, (B) I
d+ √
D
−1E √ D
−1e x = e b, (C) √
Dx = x. e
f/ Pourquoi les problèmes (A) et (C) sont "faciles" à résoudre ?
g/ On veut résoudre (B) avec une méthode de gradient à pas constant. On prend le pas égale à τ = 1. Quelle est la vitesse de convergence ?
h/ Que se passe-t-il si kEk
opλ
1? a/ √
D est une matrice diagonale, où tous les termes diagonaux sont non-nuls, donc √
D est diagonal. On a
√ D
√
D = diag( p
λ
1, · · · , p
λ
d) × diag( p
λ
1, · · · , p
λ
d) = diag(λ
1, · · · , λ
d) = D.
Les valeurs propres de √
D
−1sont 0 ≤
λ1d
≤ · · · ≤
λ11
. On en déduit que k √
D
−1k
op= 1 λ
1. b/ Il suffit de développer le terme de droite. On a
√ D
I
d+ √
D
−1E √
D
−1√ D = √
D √
D + E = D + E = A.
c/ Pour la première inégalité, on a
λ
1(E)kxk
2≤ hx, Exi ≤ λ
d(E)kxk
2.
Or |λ
1| ≤ kEk
opet |λ
d| ≤ kEk
op, ce qui donne le résultat. Pour la deuxième égalité, on remarque que √ D est symétrique, donc
k √
Dxk
2= h √ Dx, √
Dxi = √
Dx
T√
Dx = x
T√ D
T√
Dx = x
TDx = hx, Dxi.
2
d/ Pour tout x ∈ R
davec kxk = 1, on a, car √
D est symétrique, hx, √
D
−1E √
D
−1xi = hy, Eyi, avec y = √ D
−1x.
Avec les inégalités précédentes, on obtient
|hy, Eyi| ≤ kEk
opkyk
2, et kyk
2≤ 1 λ
1.
Donc
− kEk
opλ
1≤ hx, √
D
−1E √
D
−1xi ≤ kEk
opλ
1.
et le résultat suit.
En particulier, comme kEk
op< λ
1, on a 1 −
kEkλop1
> 0. On en déduit que (1 − √
D
−1E √
D
1) est définie positive, donc inversible. A est le produit de trois matrices inversibles, donc A est inversible.
e/ On vérifie que
√ D
I
d− √ D
−1E
√ D
1√
Dx
| {z }
ex
=
√ D
I
d− √ D
−1E
√ D
1e x
| {z }
eb
=
√
De b = b.
f/ Pour résoudre (A) et (C), il suffit d’inverser une matrice diagonale, ce qui est triviale (l’inverse est diag( √
λ
1−1
, · · · , √ λ
d−1
).
g/ On veut résoudre Ax e = b avec A e = I
d− √
D
−1E √ D
1. Avec le gradient à pas constant, d’après le cours, on a une convergence linéaire à taux α = max{|1 − τ λ
1( A)|, e |1 − τ λ
d( A)|}. D’après la question d/, on a e
1 − kEk
opλ
1≤ λ
1( A) e ≤ · · · ≤ λ
dA e
≤ 1 + kEk
opλ
1. Avec τ = 1, on obtient α ≤ kEk
opλ
1, qui est bien plus petit que 1.
h/ Si kEk
opλ
11, on a α 1, et la convergence est très rapide.
Exercice 3. (Exponentielle) Soit λ ∈ R
+. On pose
x
n:=
n−1
X
k=0
λ
kk! (somme partielle), et x
∗= exp(λ).
a/ Montrer que, pour n ≥ λ, on a λ
nn! ≤ |x
∗− x
n| ≤ λ
nn!
1 + λ
n + λ
2n
2+ λ
3n
3+ · · ·
= λ
nn!
n n − λ
.
En déduire qu’on a l’équivalence |x
∗− x
n| ∼
λn!npour n grand.
b/ On rappelle la formule de Stirling, qui dit que n! ∼ √
2πn
nen. Montrer que la suite (x
n) converge vers x
∗super-linéairement.
c/ On suppose qu’on a codé la fonction exponentielle. On veut maintenant calculer log(a) pour a > 0. Pour cela, on cherche à résoudre exp(x) = a avec la méthode de Newton. Quelle est la formule d’itération dans ce cas ?
a/ On a
x
∗− x
n=
∞
X
k=n
λ
kk! . C’est une somme de termes positifs. On a donc |x
∗− x
n| ≤ λ
nn! (le premier terme). Pour l’autre inégalité, on écrit que
|x
∗− x
n| = λ
nn!
1 + λ
(n + 1) + λ
2(n + 1)(n + 2) + · · ·
≤ λ
nn!
1 + λ
n + λ
2n
2+ · · ·
.
On reconnait la série géométrique de raison
λn. Comme on a supposé n ≥ λ, la raison est plus petite que 1, et la série converge. On a
1 + λ
n + λ
2n
2+ · · ·
= 1
1 −
λn= n n − λ . On a donc
λ
nn! ≤ |x
n− x
∗| ≤ λ
nn!
n n − λ
, avec
n n − λ
−−−−→
n→∞
1, et on en déduit que |x
n− x
∗| ∼
λn!n.
b/ Avec la formule de Stirling, on obtient
|x
n− x
∗| ∼ 1
√ 2πn
eλ n
n≤ eλ
n
n.
Pour tout α > 0, il existe n
0tel que eλ/n
0< α. Pour n > n
0, on a donc
|x
n− x
∗| ≤ eλ
n
n≤ α
n.
Donc x
nconverge vers x
∗à taux au plus α. Ceci étant vrai pour tout α > 0, on a bien que (x
n) converge vers x
∗super-linéairement.
c/ On pose f (x) = e
x− a. La formule de Newton s’écrit x
n+1= x
n− f (x
n)
f
0(x
n) = x
n− e
xn− a
e
xn= x
n− 1 + ae
−xn.
Exercice 4. (Un peu de code)
Voici un algorithme pour la méthode de Steffensen (cf Exercice 1)
1 d e f s t e f f e n s e n( f , x0 ) :
2 xn , L = x0 , []
3 f o r n in r a n g e( 1 0 0 0 ) :
4 fxn = f ( xn )
5 if a b s( fxn ) < 1 e - 1 0 :
6 r e t u r n xn , L
7 L . a p p e n d ( xn )
8 xn = xn - fxn * * 2 / ( f ( xn + fxn ) - fxn )
a/ Combien d’appels à la fonction f fait-on par itérations ? b/ Quel est le rôle de la ligne 5 ?
On veut calculer √
5. On utilise le code suivant :
1 d e f f( x ) : r e t u r n x **2 - 5 2 xstar , L = s t e f f e n s e n ( f , 1 0 0 )
3 p l o t ([a b s( xn - s q r t (5) ) f o r xn in L ]) # On a f f i c h e les e r r e u r s