Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Ableitung von x^T A x nach x

Ableitung von x^T A x nach x

Universität / Fachhochschule

Matrizenrechnung

Tags: Matrizenrechnung

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
freiheit85

freiheit85 aktiv_icon

09:44 Uhr, 31.05.2011

Antworten

Hi Leute,

eine kurze Frage:

ich habe y=xTAx mit A als Matrix, x als Vektor
jetz will ich y nach x ableiten, also δδxxTAx.
Dann muss ich doch die Kettenregel anwenden:

δxTAδxx+xTδAxδx=Ax+xTAT

das geht aber gar nicht, weil x + x^T ein Zeilenvektor + ein Spaltenvektor ist... und außerdem kommt raus: (A+AT)x

Wie gehe ich denn hier mit der Kettenregel um? (Möglichst einfach und schnell, dass man es nicht komponentenweise aufschreiben muss...)

Danke

Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich bräuchte bitte einen kompletten Lösungsweg." (setzt voraus, dass der Fragesteller alle seine Lösungsversuche zur Frage hinzufügt und sich aktiv an der Problemlösung beteiligt.)
Hierzu passend bei OnlineMathe:
Ableitung (Mathematischer Grundbegriff)
Differenzenquotient (Mathematischer Grundbegriff)
Differenzierbarkeit (Mathematischer Grundbegriff)
Ableitung einer Funktion an einer Stelle (Mathematischer Grundbegriff)
Ableitungsfunktion (Mathematischer Grundbegriff)
Ableitungsregeln (Mathematischer Grundbegriff)
Online-Nachhilfe in Mathematik
Antwort
ericsatie76

ericsatie76 aktiv_icon

17:22 Uhr, 01.06.2011

Antworten
Hallo,

es muss lauten:

δ(xTAx)δx=δxTAδxx+xTδAxδx=Ax+xTA=Ax+ATx=(A+AT)x

Lg Jan
freiheit85

freiheit85 aktiv_icon

06:09 Uhr, 02.06.2011

Antworten
Dann wäre xTA=ATx? Ich kenne nur die Regel xTA=(ATx)T
Antwort
Gerd30.1

Gerd30.1 aktiv_icon

09:56 Uhr, 02.06.2011

Antworten
ich bekomme: (xTAx)xi=xTxiAx+xTAxix+xTAxxi=
xTxiAx+xTAxxi=2xTAxxi
Antwort
ericsatie76

ericsatie76 aktiv_icon

11:26 Uhr, 02.06.2011

Antworten
Hm...

(Ax)i=j=1naijxj

f(x)=xT(Ax)=i=1nxi(Ax)i=i=1nxij=1naijxj

δf(x)δxk=δi=1nxi(aikxk+j=1,jknaijxj)δxi
=δ(xk(akkxk+j=1,jknakjxj)+i=1,iknxi(aikxk+j=1,jknaijxj))δxk

=δ(akkxk2+xkj=1,jknakjxj+i=1,iknxi(aikxk+j=1,jknaijxj))δxk

δakkxk2δxk=2akkxk
δxkj=1,jknakjxjδxk=j=1,jknakjxj
δi=1,iknxi(aikxk+j=1,jknaijxj)δxk=δi=1,iknxiaikxkδxk+δi=1,iknxij=1,jknaijxjδxk
=i=1,iknxiaik

Der zweite Term ist in der Ableitung =0, da in ihm kein xk vorkommt.

δf(x)δxk=2akkxk+j=1,jknakjxj+i=1,iknxiaik

=akkxk+j=1,jknakjxj+akkxk+i=1,iknxiaik=j=1nakjxj+i=1nxiaik

mit ji

i=1nakixi+i=1nxiaik=i=1n(aki+aik)xi

Bei aki+aik handelt es sich um (A)ki+(A)ik=(A)ki+(AT)ki

δf(x)δxk=((A+AT)x)k

LG Jan
Antwort
ericsatie76

ericsatie76 aktiv_icon

11:32 Uhr, 02.06.2011

Antworten
Zu xTA=ATx lässt sich so erklären, dass bei xTA die Spalten von A mit der Zeile von xT multipliziert wird. Daher muss beim vertauschen beider, die Zeilen von der Matrix mit der Spalte von x mutlipliziert werden. Damit beide dasselbe ergeben muss A transponiert werden. Oder, hier der Beweis:

(xTA)i=(j=1)nxj(A)ji

Da (A)ji=(AT)ijxTA=j=1nxj(A)ji=j=1nxj(AT)ij=ATx

Lg Jan
Antwort
ericsatie76

ericsatie76 aktiv_icon

11:37 Uhr, 02.06.2011

Antworten
Noch etwas xTA(ATx)T, weil sei b=xTA ein Spaltenvektor und c=ATx auch ein Spaltenvektor. Dann ist aber (ATx)T=cT ein Zeilenvektor b

Lg Jan
freiheit85

freiheit85 aktiv_icon

11:46 Uhr, 02.06.2011

Antworten
b=x^TA ist doch ein Zeilenvektor, da x^T ein Zeilenvektor ist. Genau das ist ja das Problem...
Antwort
ericsatie76

ericsatie76 aktiv_icon

12:03 Uhr, 02.06.2011

Antworten
@gerdware: Kleiner Fehler im letzten Schritt:

(δxTδxi)j=1 für j=i, sonst 0, gleiches gilt für (δxδxi)i

δxTδxiAx+xTAδxδxi=j=1n(A)ijxj+j=1nxj(A)ji=j=1n(A)ijxj+j=1n(AT)ijxj=j=1n(A+AT)ijxj

δxTAxδx=(A+AT)x

Lg Jan
Antwort
ericsatie76

ericsatie76 aktiv_icon

12:05 Uhr, 02.06.2011

Antworten
Aber xTA ergibt einen Spaltenvektor und Bx auch. Damit xTA=BxB=AT
Antwort
ericsatie76

ericsatie76 aktiv_icon

12:11 Uhr, 02.06.2011

Antworten
Ein Beispiel:

Sei A=(a11a12a21a22) und xT=(x1,x2)
Sei B=(b11b12b21b22)

xTA=(x1a11+x2a21,x1a12+x2a22)T

und Bx=(x1b11+x2b12,x1b21+x2b22)T

Damit xTA=Bx(x1a11+x2a21,x1a12+x2a22)T
=(x1b11+x2b12,x1b21+x2b22)T

a11=b11,a21=b12,a12=b21 und a22=b22

B=(a11a21a12a22)=AT
freiheit85

freiheit85 aktiv_icon

12:15 Uhr, 02.06.2011

Antworten
Wir reden an einander vorbei... Ich bin der Meinung, dass x ein Spaltenvektor ist und x^T ein Zeilenvektor. Zeilenvektor multipliziert mit Matrix nxn, ergibt Zeilenvektor!

Matlab-Bsp.:
>> A

A =

1 3 5
3 4 2
5 2 9

>> x

x =

2
9
4

>> transpose(x)*A

ans =

49 50 64

>>
Antwort
ericsatie76

ericsatie76 aktiv_icon

16:07 Uhr, 02.06.2011

Antworten
Ja, das stimmt. Da muss ich mich korrigieren. Schon zu lange her. Jetzt verstehe ich auch Dein Problem.

Wie dem auch sei xTAx ergibt ein Skalar. Daher muss xTAx partiell abgeleitet werden, was letztendlich den Gradienten von xTAx ergibt.

Und nach der etwas langen Beweisführung ist anscheinend dxTAxdx=(A+AT)x

Ich denke aber über eine Ableitungsregel nach...
Antwort
ericsatie76

ericsatie76 aktiv_icon

16:33 Uhr, 02.06.2011

Antworten
Mann oh Mann, ich habe es gefunden. ddx=(δδx1δδx2δδx3...),d.h. d(xTAx)dx=(δxTAxδx1δxTAxδx2δxTAxδx3...)

und δxTAxδxi=δxTAδxix+xTδAxδxi=(0,...,1i,...,0)Ax+xTA(0...1i...0)

Wobei 1i,1 an der i-ten Stelle bedeutet. Sei 1i nun der Vektor mit 1 an der i-ten Stelle

δxTAxδxi=1iTAx+xTA1i

xTA1i=xT(1iTAT)T=(((1iTAT)T)Tx)T=(1iTATx)T

Da aber 1iTATx ein Skalar ist (1iTATx)T=1iTATx

1iTAx+xTA1i=1iTAx+1iTATx=1iT(A+AT)x


und das führt zu dxTAxdx=(A+AT)x

Lg Jan
Diese Frage wurde automatisch geschlossen, da der Fragesteller kein Interesse mehr an der Frage gezeigt hat.