• Aucun résultat trouvé

Soit F : R d → R une fonction de classe C 2 . a/ Montrer que

N/A
N/A
Protected

Academic year: 2022

Partager "Soit F : R d → R une fonction de classe C 2 . a/ Montrer que"

Copied!
5
0
0

Texte intégral

(1)

Correction du TD5.

MNO, L3, Dauphine, 2020-2021 D. Gontier, gontier@ceremade.dauphine.fr

Échauffement

Exercice 1.

Soit F : R d → R une fonction de classe C 2 . a/ Montrer que

F (x + h) = F(x) + h∇F (x), hi + hh, Z 1

0

(1 − t)H F (x + th)dt

hi.

b/ Montrer que

∇F (x + h) = ∇F(x) + Z 1

0

H F (x + th)dt

h.

a/ C’est le développement de Taylor classique.

b/ On peut par exemple faire un développement limité de ∂ x

i

F à l’ordre 1. On a

∂ x

i

F (x + h) = ∂ x

i

F(x) + Z 1

0

h∇ (∂ x

i

F(x + th)) , hidt

Or

h∇ (∂ x

i

F(x + th)) , hi =

n

X

j=1

x

j

x

i

F (x + th)h j =

n

X

j=1

[H F (x + th)] ij h j

On reconnaît la i-ème ligne de la multiplication H F h. En regroupant les lignes dans un vecteur, on obtient le résultat.

Exercice 2.

Soit F : R d → R une fonction de classe C 1 .

a/ (Cours) Montrer que h est une direction de descente en x si et seulement si h∇F(x), hi < 0.

b/ Montrer que pour tout A ∈ S d ++ ( R ), le vecteur h A := −A(∇F (x)) est une direction de descente en x.

a/ Voir cours.

b/ Si λ 1 > 0 est la première valeur propre de A, on a

h∇F(x), h A i = −h∇F, A∇F i ≤ −λ 1 k∇F k 2 < 0,

donc A∇F (x) est une direction de descente.

Problèmes d’optimisation

Exercice 3. Pseudo-inverse, Examen 2019

Soit m, n ∈ N , et soit A ∈ M m,n ( R ). On dit que A est injective si Ker A = {0}.

a/ Montrer que A est injective si et seulement si les colonnes de A sont indépendantes.

b/ Montrer que si A est injective, alors rg A = n, et m ≥ n.

c/ Montrer que A est injective si et seulement si A T A ∈ S n ++ .

On suppose dans la suite que A est injective, et on note A := (A T A) −1 A T (pseudo inverse).

d/ Exemple : Calculer B , où

B :=

 0 0 0 1 1 1

 .

e/ Montrer que A A = I n . Montrer que AA = I m si et seulement si m = n.

Soit b ∈ R m . On s’intéresse au problème de minimisation suivant

x = argmin {kAx − bk R

m

, x ∈ R n } (P).

(2)

f/ Montrer qu’il existe S ∈ S n ++ et c ∈ R n qu’on explicitera tel que x = argmin

1

2 x T Sx − c T x, x ∈ R n

.

g/ En déduire que x = A b.

h/ Montrer que si A n’est pas injective, alors le problème (P ) admet plusieurs minimiseurs.

a/ Soit a 1 , a 2 , . . . , a n ∈ R m les colonnes de A. On raisonne par contradiction. Si A n’est pas injective, alors il existe u 6= 0 tel que Au = 0. Alors

0 = Au = u 1 a 1 + u 2 a 2 + · · · + u n a n , (1) et la famille (a k ) n’est pas libre. Réciproquement, si la famille n’est pas libre, il existe une combinaison linéaire u 1 a 1 + u 2 a 2 + · · · + u n a n = 0, avec u := (u 1 , · · · u n ) T 6= 0. Alors Au = 0, et A n’est pas injective.

b/ La famille (a 1 , . . . , a n ) est une famille de n vecteurs dans R m . Si m < n, cette famille est forcément liée. Si A est injective, la famille est libre, et m ≥ n. Dans ce cas, par définition du rang (dimension de l’espace d’arrivée

= dimension de l’espace engendrée par les colonnes), rgA = n.

c/ Pour toute matrice A ∈ M m,n ( R ) (pas forcément injective), la matrice A T A est symétrique, car (A T A) T = A T A, et

∀u ∈ R n , hu, A T Aui = hAu, Aui = kAuk 2 ≥ 0,

donc A T A ∈ S n + . Montrons que cette matrice est inversible ssi A est injective. Si A est injective, on a, d’après la ligne précédente,

∀u ∈ R n , hu, A T Aui = 0 = ⇒ kAuk 2 = 0 = ⇒ Au = 0 = ⇒ u = 0,

donc A T A ∈ S n ++ ( R ). Réciproquement, si A T A ∈ S n ++ ( R ), alors

Au = 0 = ⇒ kAuk 2 = 0 = ⇒ hu, A T Aui = 0 = ⇒ u = 0,

et A est injective. On a bien montré que A est injective ssi A T A ∈ S n ++ . d/ On trouve

B =

0 0 1 0 1 1

 0 0 0 1 1 1

−1

0 0 1 0 1 1

= 1 1

1 2 −1

0 0 1 0 1 1

=

2 −1

−1 1

0 0 1 0 1 1

=

0 −1 1

0 1 0

.

e/ On a A A = (A T A) −1 A T A = I n . Par ailleurs, si m > n, alors A est de rang au plus n, et donc AA est une matrice de taille m × m, qui est aussi de rang au plus n. En particulier, elle ne peut pas être inversible.

f/ Le minimiseur de kAx − bk est aussi le minimiseur de 1

2 kAx − bk 2 = 1

2 x T A T Ax − b T Ax + 1 2 b T b.

En posant S = A T A et c = A T b, et en remarquant que le terme 1 2 b T b ne dépend pas de x, c’est aussi le minimiseur de

1

2 x T Sx − c T x.

f/ Comme A est injective, S = A T A est dans S n ++ . On cherche à optimiser une fonctionnelle quadratique strictement coercive sur tout l’espace. D’après le cours, le minimum est

x = S −1 c ou encore x = (A T A) −1 A T b = A b.

g/ Si A n’est pas injective, alors KerA 6= 0. Si x est un minimiseur de (P), alors tous les éléments de x + KerA sont des minimiseurs : il y a une infinité de minimiseurs.

Exercice 4. Régularisation de Tichonov

Soit A ∈ S d ++ ( R ) et b ∈ R d . Pour α ≥ 0, on s’intéresse au problème de minimisation de Q α sur R d , où Q α (x) := kAx − bk 2 + αkxk 2 .

2

(3)

a/ Dans le cas α = 0, quel est le minimiseur de Q α=0 ?

b/ Dans ce cas, que se passe-t-il si b est bruité (b = b 0 + w avec w ∈ R d un bruit aléatoire), et si A a des petites valeurs propres ?

c/ On suppose maintenant α > 0. Montrer que, pour tout x, y ∈ R d avec x 6= y,

∀0 < t < 1, Q α (tx + (1 − t)y) < tQ α (x) + (1 − t)Q α (y) (Q α est strictement convexe).

d/ Montrer que Q α est coercive (Q α (x) → ∞ si kxk → ∞). En déduire que Q α a un unique minimiseur x ∈ R d . e/ Montrer que x vérifie (A 2 + α)x = Ab.

f/ Reprendre la question b/ (on pourra regarder ce qui se passe dans une base de diagonalisation de A).

a/ Si α = 0, on a ∇Q 0 (x) = 2A[(Ax) − b], qui s’annule uniquement pour x = A −1 b.

b/ Si A a des petites valeurs propres, alors A −1 a des grandes valeurs propres. Celles-ci peuvent amplifier un bruit initial.

c/ La fonction x 7→ kxk 2 est strictement convexe, et on a

kt(Ax − b) + (1 − t)(Ay − b)k 2 − tkAx − bk 2 − (1 − t)kAy − bk =

= t(t − 1)kAx − bk 2 + t(t − 1)kAy − bk 2 + 2t(1 − t)hAx − b, Ay − bi

= t(t − 1)k(Ax − b) − (Ay − b)k 2 ≤ 0.

d/ On a Q α (x) ≥ αkxk 2 , qui tend vers +∞ lorsque x tend vers +∞. Donc Q α est coercive. De plus Q α est continue, donc atteint son minimum.

Rappel de la preuve En effet, on a Q α (0) = kbk 2 , et il existe A > 0 tel que pour tout kxk > A, on a Q α (x) > kbk 2 = Q α (0). En particulier, on a inf{Q α (x), x ∈ R d } = inf{Q α (x), x ∈ B(0, A)}. Le dernier pro- blème est le minimum d’une fonction continue sur un compact.

e/ Le gradient de Q α est ∇ x Q α (x) = A(Ax − b) + αx. Le minimum x vérifie donc (A 2 + α)x = Ab.

f/ Si A est diagonal, on a x i = λ

2

λ

i

i

+α b i . Si λ → 0 (petite valeur propre), alors λ

2

λ

i

i

+α → 0. La régularisation de Tichonov permet d’atténuer les effets de bruits du aux petites valeurs propres.

Exercice 5. Régression polynômiale

Soit g : [0, 1] → R . On cherche le meilleur polynôme P ∈ R n [X ] qui approxime g au sens L 2 , c’est à dire qu’on veut résoudre

argmin Z 1

0

|g(x) − P(x)| 2 dx, P ∈ R n [X ]

. (∗)

Pour a := (a 0 , a 1 , · · · , a n ) T ∈ R n+1 , on note P a (X) := a 0 + a 1 X + · · · + a n X n ∈ R n [X ].

a/ Soit M ∈ S n+1 ( R ) la matrice définie par M ij := i+j−1 1 pour tout 1 ≤ i, j ≤ (n + 1). Montrer que

∀a ∈ R n+1 , Z 1

0

|P a (x)| 2 dx = ha, Mai R

n+1

.

b/ En déduire que M est une matrice définie positive (donc inversible).

c/Soit b = (b 0 , b 1 , · · · , b n ) T ∈ R n+1 le vecteur définie par b i := R 1

0 g(x)x i dx pour 0 ≤ i ≤ n. Montrer que

∀a ∈ R n+1 , Z 1

0

g(x)P a (x) = hb, ai R

n+1

.

Le vecteur b s’appelle parfois le vecteur des moments de g.

d/ Montrer que pour résoudre (*), il suffit de résoudre un problème de type argmin{ 1 2 a T M a −b T a, a ∈ R n+1 }.

e/ En déduire que le polynôme optimal est P a

avec a := M −1 b.

a/ On a Z 1

0

|P a (x)| 2 dx = Z 1

0 n

X

i=0

a i x i

! 2 dx =

n

X

i=0 n

X

j=0

a i a j

Z 1 0

x i x j dx =

n+1

X

i=1 n+1

X

j=1

a i−1 a j−1 m ij .

(attention au changement d’indice dans la dernière ligne). Le résultat s’en déduit. b/ Pour tout a ∈ R d , on a ha, Mai =

Z 1 0

|P a | 2 dx ≥ 0,

(4)

avec égalité ssi P a ≡ 0, ou encore a = 0. Donc M est définie positive.

c/ De même, on a

Z 1 0

f (x)P a (x)dx =

n

X

i=0

a i Z 1

0

f (x)x i dx =

n+1

X

i=1

a i−1 b i = ha, bi.

d/ On a

Z 1 0

|f − P a | 2 = Z 1

0

f 2 − 2 Z 1

0

f P a + Z 1

0

|P a | 2 . Le terme R 1

0 f 2 est une constant indépendante de a, donc ne joue aucun rôle dans la minimisation. En retirant ce terme, et en divisant par 2, on a que

argmin Z 1

0

|f − P a |

= argmin 1

2 ha, Mai − ha, bi

.

e/ C’est du cours.

Un peu de code

Exercice 6. Multiplication matrice/vecteur, Partiel 2019

a/ Chacun des codes suivants correspond à une multiplication matrice/vecteur, où x ∈ R d est le vecteur.

Indiquer dans chaque cas de quelle matrice il s’agit.

1 d e f m u l t A 0( x ) : r e t u r n x

1 d e f m u l t A 1( x ) : r e t u r n b * x # Ici , b = a r r a y ( [ b_1 , b_2 , ... b_d ] )

1 d e f m u l t A 2( x ) :

2 y = z e r o s ( l e n( x ) ) # len ( x ) r e n v o i e la t a i l l e du v e c t e u r x , d o n c ici l ’ e n t i e r d . 3 y [0] = s u m( x )

4 r e t u r n y

1 d e f m u l t A 3( x ) : r e t u r n x [ 0 ] * o n e s ( l e n( x ) )

1 d e f m u l t A 4( x ) : r e t u r n r o l l ( x , 1) # r o l l ( x ,1) r e n v o i e le v e c t e u r [ x_d , x_1 , x_2 , ... , x_ { d - 1 } ]

1 d e f m u l t A 5( x ) :

2 y = z e r o s ( l e n( x ) )

3 f o r i in r a n g e ( l e n( x ) ) : 4 y [ i ] = s u m ( x [ i :])

5 r e t u r n y

La matrice A 0 est l’identité. Puis

A 1 =

b 1 0 · · · 0 0 b 2 · · · 0 .. . .. . . . . .. . 0 0 · · · b d

, A 2 =

1 1 · · · 1 0 0 · · · 0 .. . .. . . . . .. . 0 0 · · · 0

, A 3 =

1 0 · · · 0 1 0 · · · 0 .. . .. . . . . .. . 1 0 · · · 0

 ,

puis

A 4 =

0 0 · · · 0 1 1 0 · · · 0 0 0 1 · · · 0 0 .. . .. . . . . .. . .. . 0 0 · · · 1 0

, A 5 =

1 1 · · · 1 1 0 1 · · · 1 1 0 0 · · · 1 1 .. . .. . . . . .. . .. . 0 0 · · · 0 1

 .

Exercice 7. Correction de code, Partiel 2019

Le code suivant comprend plusieurs erreurs. Écrivez un code corrigé.

1 d e f G r a d i e n t P a s C o n s t a n t ( df , x0 , tau , tol =1 e -6 , N i t e r = 1 0 0 0 )

2 xn = x0

3 f o r n in l i n s p a c e ( N i t e r ) :

4 if df ( xn ) < tol :

5 r e t u r n xn

6 xn = xn + tau * df ( xn )

7 r e t u r n xn

4

(5)

Le bon code est

1 d e f G r a d i e n t P a s C o n s t a n t ( df , x0 , tau , tol =1 e -6 , N i t e r = 1 0 0 0 ) : # a v e c les 2 p o i n t s

2 xn = x0

3 f o r n in r a n g e ( N i t e r ) : # r a n g e au l i e u de l i n s p a c e 4 if n o r m ( df ( xn ) ) < tol : # il f a u t r a j o u t e r la n o r m e 5 r e t u r n xn # a t t e n t i o n à l ’ i n d e n t a t i o n

6 xn = xn - tau * df ( xn ) # un s i g n e - , pas un s i g n e +

7 r e t u r n xn

Exercice 8. Que se passe-t-il dans un ordinateur ?

On a posé xx = linspace(0, 1, int(1e8)). Voici le temps mis pour faire les opérations suivantes :

1 A = [ x **2 f o r x in xx ] # e n v i r o n 35 s . 2 B = [ x * x f o r x in xx ] # e n v i r o n 17 s . 3 C = xx **2 # e n v i r o n 1 . 2 3 s .

4 D = xx * xx # e n v i r o n 1 . 2 4 s .

Comment expliquer ces résultats à votre avis ?

La différence entre A et B vient probablement du fait que la fonction xx**2 est une fonction software (codée), alors que la multiplication x*x est une fonction hardware (avec une puce dédiée).

La différence entre A/B et C/D vient de la parallélisation intelligente de Python. Il peut traiter plus de cas en même temps sans la boucle for.

Pour C et D, ce n’est pas clair... Peut-être Python fait des copies du vecteur xx lorsqu’il effectue xx*xx, d’où l’absence de gain de vitesse dans ce cas.

On retiendra en tout cas qu’il faut éviter les boucles for au maximum lorsqu’on travaille avec des grands

vecteurs !

Références

Documents relatifs

La figure C montre un point d’équilibre asymptotiquement stable, ce qui correspond au cas où les valeurs propres de la matrice sont toutes les deux de partie réelle

Le code suivant comprend

On considre 10 fonctions drivables sur leur ensemble de drivabilit (qu’on ne demande pas de dterminer) dont on fournit une expression algbrique. Donner l’expression

1) Donner un tableau de variations complet (ensemble de définition, variations et limites) de la courbe paramétrée. 2) Etudier le comportement asymptotique de la courbe

(Ederiv21.tex) Soit f une fonction deux fois d´ erivable dont la d´ eriv´ ee ne s’anulle pas dans un intervalle I... (Ederiv14.tex) Le th´ eor` eme de la limite de la d´ eriv´ ee

Ecrire l’in´ egalit´ e des accroissements finis pour une fonction holomorphe sur un ouvert U en terme de sa C d´

[r]

[r]