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
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
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
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 ?
Bonjour,
en utilisant la distributivité du produit scalaire on a :
Il est clair que
On on regarde alors
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'.
Bonjour,
Pour t'y retrouver, tu peux donner un accroissement à :
et tu vois que l'accroissement au premier ordre est
ce qui montre que le gradient est .
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
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :