Inscription / Connexion Nouveau Sujet
Niveau Master Maths
Partager :

Gradient d'un produit scalaire

Posté par
Okoto
23-10-23 à 21:02

Bonjour,

Je cherche à comprendre comment calculer le gradient d'un produit scalaire ou plus généralement, comment calculer le gradient d'une fonction de R^n -> R  sans avoir à la développer composante par composante.

Par exemple grad(<Ax,x>) avec A une matrice constante de taille n*n et x un vecteur de R^n ?

je vous remercie pour votre aide

Posté par
Razes
re : Gradient d'un produit scalaire 23-10-23 à 22:05

Bonsoir,
Peux tu donner l'expression de ce produit scalaire en fonction des x_k et des a_{i,j} ?

Posté par
Okoto
re : Gradient d'un produit scalaire 23-10-23 à 22:17

Je ne doute pas qu'en développant de cette façon je réussisse à retrouver le gradient que je cherche mais justement j'aimerais savoir le calculer sans développer l'expression

Posté par
Okoto
re : Gradient d'un produit scalaire 23-10-23 à 22:51

Je trouve A^T*x + A*x en bricolant mais je ne parviens pas à déceler une méthode claire

Posté par
Okoto
re : Gradient d'un produit scalaire 23-10-23 à 23:00

Et je me demande à quel point le gradient fonctionne comme les dérivées pour les fonctions de R->R

Par exemple si je peux dire que grad<Ax,x> = grad((x^T)Ax) = grad(x^T)Ax + x^T*grad(AX) = Idn*Ax+x^T*A = Ax+(x^T)*A = Ax+(A^T)x

Posté par
Okoto
re : Gradient d'un produit scalaire 23-10-23 à 23:23

Je pense avoir trouvé une méthode  :

je pars du fait que grad<u , v> = <u' , v> + <u , v'>  je dérive comme si j'étais dans R  et je me dis que <u.a> = a*u et <u, A> = A^T*u avec a un scalaire et A une matrice  même si ce sont des aberrations.

Donc pour le calcule de grad<Ax,x> on a :
<Ax,x> = <A,x>+<Ax,1> = A^T*x + Ax

vous en pensez quoi ? C'est une méthode qui fonctionne ?

Posté par
verdurin
re : Gradient d'un produit scalaire 24-10-23 à 08:07

Bonjour,
en utilisant la distributivité du produit scalaire on a :

\langle A\,(x+h)\,\vert\, x+h \rangle =\langle A\,x\,\vert\, x\rangle+\langle A\,x\,\vert\, h\rangle+\langle A\,h\,\vert\, x\rangle+\langle Ah\,\vert\, h\rangle

Il est clair que \langle Ah\,\vert\, h\rangle=o(\lVert h \rVert)

On on regarde alors
\langle A\,x\,\vert\, h\rangle+\langle A\,h\,\vert\, x\rangle=x^TA^Th+x^TA\,h=\bigl(x^TA^T+x^TA\bigr)h=\bigl\langle Ax+A^Tx\,\vert\,h\bigr\rangle

D'où la conclusion.
On peut remarquer que c'est en effet le même schéma de démonstration que celui de (uv)'=u'v+uv'.

Posté par
GBZM
re : Gradient d'un produit scalaire 24-10-23 à 08:22

Bonjour,
Pour t'y retrouver, tu peux donner un accroissement h à x :
\large\langle A(x+h),x+h\rangle=\langle Ax,x\rangle + \langle Ah,x\rangle + \langle Ax,h\rangle+ \langle Ah,h\rangle
et tu vois que l'accroissement au premier ordre est
\large \langle Ah,x\rangle+\langle Ax,h\rangle=\langle A^{\mathsf T}x,h\rangle+\langle Ax,h\rangle=\langle A^{\mathsf T}x+Ax,h\rangle
ce qui montre que le gradient est  A^{\mathsf T}x+Ax.

Posté par
Okoto
re : Gradient d'un produit scalaire 24-10-23 à 16:16

Ah oui si je comprend bien vous appliquez la formule de Tyalor-Young sur f(x) = <Ax,x>
f(a+h) = <A(a+h),a+h> = <Aa,a> + <Aa,h> + <Ah,a> + <Ah,h> =
on reconnaît f(a) = <Aa,a> et <Ah,h>=o(N(h))
On a alors dfa(h)= <Aa,h> + <Ah,a> = <Aa,h> + <A^Ta,h> = <Aa+A^Ta,h>
et donc  <grad(f(a)),h>  = dfa(h) = <Aa+A^T,h>  => grad(f(a)) = Aa+A^Ta
Merci beaucoup pour votre aide

Posté par
verdurin
re : Gradient d'un produit scalaire 24-10-23 à 19:00

Service



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !