Ableiten von Matrizen < Matrizen < Lineare Algebra < Hochschule < Mathe < Vorhilfe
|
Hallo
Ich habe eine Frage zur Matrizenrechnung. Die Schreibweise ist im Matlab style. Und zwar wenn man [mm] (1/2)norm(A*x-b)^2 [/mm] + m'*(C*x-d) nach x ableitet, dann sollte man A'(Ax-b) + C'*m kriegen, aber ich weiss nicht genau wieso. A und C sind Matrixen, alles andere Vektoren.
Ich denke man kann die normalen Ableitungsregeln anwenden. Also [mm] (1/2)*norm*(A*x-b)^2 [/mm] abgeleitet gibt 2*(A*x-b) * innere Ableitung was ja eigentlich A wäre, allerdings kriegt man A' in der Lösung. Wenn man m'*(Cx-d) nach x ableitet, hat man ja m'*(Cx-d) = m'*C*x - m'*d. Ich würde da auf m'*C kommen in der Lösung ist es aber gerade andersrum, also C'*m.
Kan da jemand helfen?
|
|
|
|
Erst einmal der vordere Teil: [mm]f(x) = \left\| Ax - b \right\|^2[/mm]. Man kann [mm]f[/mm] als Verkettung [mm]f = g \circ \varphi[/mm] auffassen, wenn man
[mm]g(t) = \left\| t \right\|^2 \, , \ \ \varphi(x) = Ax - b[/mm]
setzt. Die Vektoren [mm]b,x,t[/mm] werden hier als Spalten geschrieben. Für [mm]g(t)[/mm] gilt, wenn die [mm]t_j[/mm] die Koordinaten von [mm]t[/mm] sind:
[mm]g(t) = \sum_j {t_j}^2[/mm]
Die partielle Ableitung nach [mm]t_j[/mm] ist daher [mm]2t_j[/mm]. Die partiellen Ableitungen zusammen bestimmen [mm]g'(t)[/mm], also den Gradienten. Im Matrizenkalkül wird er als Zeile geschrieben (nur dann hat man zum Beispiel bei der Kettenregel die Analogie zum eindimensionalen Fall). Ich verwende hier den Strich für die Ableitung. Damit es zu keiner Konfusion kommt, nehme ich dann ein hochgestelltes [mm]{}^{\top}[/mm] für das Transponieren:
[mm]g'(t) = 2t^{\top}[/mm]
Und für [mm]\varphi(x)[/mm] hat man, wenn die [mm]b_j,x_j,a_{ij}[/mm] die Koordinaten bzw. Matrixelemente von [mm]b,x,A[/mm] sind:
[mm]\varphi(x) = \begin{pmatrix} -b_1 + \sum_j a_{1j} x_j \\ \vdots \\ -b_n + \sum_j a_{nj} x_j \end{pmatrix}[/mm]
Für die Ableitung [mm]\varphi'(x)[/mm] muß man in jeder Zeile den Gradienten bilden. Der lautet aber in der ersten Zeile [mm]\begin{pmatrix} a_{11} & a_{12} & \ldots & a_{1n} \end{pmatrix}[/mm]. Bei den anderen Zeilen geht das entsprechend. Alle Gradienten zusammen bilden die Matrix [mm]A[/mm]. Somit gilt
[mm]\varphi'(x) = A[/mm]
Jetzt die Kettenregel:
[mm]f'(x) = g' \left( \varphi(x) \right) \cdot \varphi'(x) = 2 \left( Ax - b \right)^{\top} \cdot A = 2 \left( x^{\top} A^{\top} - b^{\top} \right) \cdot A = 2 x^{\top} A^{\top} A - 2 b^{\top} A[/mm]
Für die Anwendung im Kalkül der Kettenregel ist es wichtig, ob man eine Zeile oder Spalte schreibt. Wenn aber die Arbeit getan ist, kann man nachträglich [mm]f'(x)[/mm] wieder als Spalte schreiben. Man muß es aber nicht, das ist eine Frage des Geschmacks oder davon, was man mit dem Ergebnis weiter vorhat. Wenn man es jedenfalls tut, dann lautet das Ergebnis so:
[mm]f'(x) = 2 A^{\top} A x - 2 A^{\top}b [/mm]
|
|
|
|