Ableitung nach der j-ten Variable von f(x)=x^TAx?
Hallo,
sei f(x)=x^TAx , A∈ℝ^(nxn). Ich möchte nun D_j f(x) bestimmen. Ich habe mir gedacht, dass man auf f(x)=(x^T)(Ax) die Produktregel anwenden kann. Das ist auch in der Musterlösung so, die da lautet:
Ich habe verstanden, warum die j-te Ableitung von x dann e_j ist. Aber das ganze Hin und Her mit dem Transponierten, was auch lustig von a_j^T auf x^T überspringt, komme ich nicht klar. Außerdem verstehe ich nicht, dass Ae_j=a_j^T ist - könnte da jemand vielleicht etwas Licht ins Dunkle bringen?
4 Antworten
Hier die allgemeine Ableitung nach dem Vektor x:
f(x) = x^T * A * x
--> Df(x) = D(x^T * A * x) + D(x^T * A * x)
wobei hier die Produktregel angewandt wird. Beachte:
g(x) = y^T*x = x^T * y ---> Dg(x) = y^T mit Vektoren y und x.
Entsprechend folgt hier:
(i) D(x^T * A * x) = D(x^T * A^T * x) = x^T *A (y = x^T A^T)
(ii) D(x^T * A * x) = x^T * A (y = x^T * A)
Wir erhalten also insgesamt:
Df(x) = x^T*(A + A^T)
Alternativ bestimme durch Definition der linearen Approximation:
f(x+h) = f(x) + Df(x)*h + o(||h||^2)
Hier folgt:
f(x + h) = (x + h)^T * A * (x + h) = x^T*A*x + h^T*A*x + x^T*A*h + h^T*A*h
mit h^T*A*x = x^T*A^T*h folgt dann:
f(x + h) = f(x) + x^T*(A + A^T)*h + o(||h||^2)
--> Df(x) = x^T*(A + A^T)
Licht in das Dunkel bekommst du z.B., wenn du mal im Fall n=2 die Funktion f konkret hinschreibst. Dann ergibt sich nämlich
was man sehr leicht partiell ableiten kann.
So, und nun das Ganze mal mit n statt 2 und Summenzeichen statt +.
Hat man "bodenständig" erkannt, was da los ist, kann man auch nach einer eleganten Form suchen, wenn der sofortige Schritt dahin einem unheimlich ist.
Steh ich jetzt nicht komplett auf dem Schlauch, dann fehlt tatsächlich eine Voraussetzung für die Musterlösung. Tatsächlich gilt die Musterlösung nur, wenn A symmetrisch ist.
Dieses *herumspringen* der Transponierten ist eine einfache Eigenschaft:
https://de.wikipedia.org/wiki/Transponierte_Matrix#Eigenschaften
Damit müsstest du dir jetzt die einzelnen Rechenschritte leicht klar machen sollen.
Für x, e in lR ist:
<x + e, A(x + e)>
= <x,Ax> + <x,Ae> + <e,Ax> + <e,Ae>
= <x,Ax> + <x,Ae> + <Ae,x> + <e,Ae>
Nun ist wegen
<e,Ae>/||e|| <= ||A||*||e|| -> 0 für e -> 0
also Df = (A^T + A)x
und nur wenn A auch symmetrisch ist, gilt dann auch:
Df = 2*Ax.