Dérivation matricielle

Bonjour,

N'étant pas un grand spécialiste de ces techniques, je me pose pas mal de questions sur la dérivation de fonctions de matrices par rapport à des matrices.
J'ai par exemple la fonction $f:\mathbb{R}^n \rightarrow \mathbb{R}$ définie pour un vecteur $x\in\mathbb{R}^n$ par
\[f(x) = u^T X(A-XBX)^{-1}Xu\]
où $u$ est un vecteur fixé de $\mathbb{R}^n$, $A,B$ sont des matrices $n\times n$ symétriques définies positives et $X$ est la matrice diagonale de diagonale principale égale à $x$.
Je souhaite calculer la dérivée de $f$ par rapport à $x$. J'ai fait le calcul en utilisant des règles de dérivation trouvées par-ci par-là sur le web, en revanche je ne suis pas du tout sûr de ce que j'ai fait.
Pour information, je trouve une dérivée égale à
\[\frac{df}{dx} = 2 u^T X(A-XBX)^{-1} \circ u^T X(A-XBX)^{-1} AX^{-1} \]
où $\circ$ désigne le produit de Hadamard (multiplication terme à terme).
Quelqu'un pourrait-il confirmer ou infirmer ce résultat ? Si oui, y-a-t'il un moyen rapide de faire ce calcul (ma solution est laborieuse ...) ?

J'ai également un autre calcul à faire, sur la fonction $g:\mathbb{R}^n \rightarrow \mathbb{R}$ définie par
\[g(x) = \det(I-XAXB).\]
J'ai utilisé une règle assez simple pour calculer la dérivée de $g$ comme fonction de $X$ par rapport à $X$, en ne supposant aucune structure particulière sur $X$. Or $X$ est diagonale, et j'ai lu qu'il faut prendre en compte cette information dans la dérivée. Comment en déduire la dérivée sous cette contrainte ? Puis, dans un second temps, comment obtenir la dérivée de $g$ comme fonction du vecteur $x$ ?

D'avance merci pour toute aide.

Amicalement,

Réponses

  • Bonjour,
    pour la deuxième question, ne peut-on pas définir une application $\varphi : \mathbb R^n\rightarrow\mathcal{M}_n\left(\mathbb R\right)$ qui au vecteur $\begin{pmatrix}x_1,&\cdots,&x_n\end{pmatrix}$ associe la matrice de terme général $a_{ij}=\delta_{ij}x_i$?
    Cette application est linéaire et bijective ce qui devrait faciliter le calcul.
  • La dérivée en question est une différentielle. Dans ce cas, le plus simple me semble-t-il est de calculer un développement limité de $f(x+h)$ en $h=0$. Tu obtiendra a priori une somme d'au moins trois termes et j'ai donc des doutes sur la validité de ta formule...
  • Voici ce que donne le calcul de développement limité. On part de
    $$f(x+h)=u^T(X+H)(A-(X+H)B(X+H))^{-1}(X+H)u.$$
    On a
    $$A-(X+H)B(X+H)=A-XBX-HBX-XBH+o(H)$$
    donc
    \begin{align*}(A-(X+H)B(X+H))^{-1}&=(A-XBX)^{-1}(I-(A-XBX)^{-1}(HBX+XBH)+o(H))^{-1}\\
    &=(A-XBX)^{-1}(I+(A-XBX)^{-1}(HBX+XBH)+o(H))\\
    &=(A-XBX)^{-1}+(A-XBX)^{-2}(HBX+XBH)+o(H))\end{align*}
    Reportant dans l'expression de départ, on obtient
    \begin{multline*}
    f(x+h)=f(x)+u^TH(A-XBX)^{-1}Xu+u^T X(A-XBX)^{-2}(HBX+XBH)Xu\\
    +u^T X(A-XBX)^{-1}Hu+o(H)
    \end{multline*}
    d'où
    $$Df(x)H=u^TH(A-XBX)^{-1}Xu+u^T X(A-XBX)^{-2}(HBX+XBH)Xu
    +u^T X(A-XBX)^{-1}Hu.$$
  • La differentielle de $f$ au point $X$ est l'application lineaire $H\mapsto Df(X)(H)$
    définie par

    $$ Df(X)(H) = u^T H(A-XBX)^{-1}Xu + u^T X(A-XBX)^{-1}Hu + u^T X(A-XBX)^{-1} (HBX+XBH)(A-XBX)^{-1}Xu$$

    (On utilise $D(U\mapsto U^{-1}) = -U^{-1} DU U^{-1}$ obtenu en dérivant simplement $U.U^{-1}= I$.)

    Donc typiquement si tu cherches la derivée partielle par rapport a la i-eme coordonnée de x
    il faut prendre pour $H$ une constante fois la matrice diagonale n'ayant qu'un seul 1 a
    la i-eme ligne (et donc i-eme colonne).



    Pour $g(x) = \det(I-XAXB)$ on utilise que la differentielle du deteminant au point $A$
    est la forme lineaire $H\mapsto tr[{^t}Com(A) H]$ ou $Com(A)$ est la comatrice de $A$, ou
    encore si $A$ est inversible $H\mapsto det(A) tr[A^{-1} H]$.

    Ca donne $Dg(X)(H) = -g(X)tr[(I-XAXB)^{-1}(HAXB+XAHB)]$

    a+

    eric



    ps: remarque a été plus rapide je vois.
  • Oui, mais je me suis gouré dans l'ordre des termes.:-( C'est ta formule qui est la bonne, ie
    $$Df(x)H=u^TH(A-XBX)^{-1}Xu+u^T X(A-XBX)^{-1}(HBX+XBH)(A-XBX)^{-1}Xu
    +u^T X(A-XBX)^{-1}Hu.$$
  • Merci beaucoup pour vos réponses rapides.
    Effectivement l'approche par développement limité est simple et facile à comprendre (je m'en veux de ne pas l'avoir utilisée au lieu de m'embourber dans des choses compliquées). Je vais vérifier tout ça, en espérant que ça ressemble au final à ce que j'avais déjà calculé, histoire de me rassurer même si je n'y crois pas.

    Encore merci.
Connectez-vous ou Inscrivez-vous pour répondre.