Processing math: 100%

Matrix product trace differentiation

In this appendix, I provide proof for two statements:

(1) ddA(tr(AB))=BT
(2) ddA(tr(ABAT))=2AB (for symmetric B)

Statement 1

Given two matrices A(m×n) and B(n×m). The product of two matrices:

AB=[a11a1nam1amn][b11b1mbn1bnm]=[ni=1a1ibi1ni=1a1ibimni=1amibi1ni=1amibim]

The trace of AB is the sum of the main diagonal:

tr(AB)=ni=1a1ibi1++ni=1amibim=ni=1mj=1ajibij

Differentiate using the function of gradient:

f(X)X=[f(X)x11f(X)x1nf(X)xm1f(X)xmn]

tr(AB)A=[(ni=1mj=1ajibij)a11(ni=1mj=1ajibij)a1n(ni=1mj=1ajibij)am1(ni=1mj=1ajibij)amn]=

=[b11bn1b1mbnm]=BT

Statement 2

Given two matrices A(m×n) and B(n×n).

ABAT=[a11a1nam1amn][b11b1nbn1bnn][a11am1a1namn]=

=[ni=1a1ibi1ni=1a1ibinni=1amibi1ni=1amibin][a11am1a1namn]=

=[nj=1ni=1a1ibija1jnj=1ni=1a1ibijamjnj=1ni=1amibija1jnj=1ni=1amibijamj]

The trace of ABAT is the sum of the main diagonal:

tr(ABAT)=nj=1ni=1a1ibija1j++nj=1ni=1amibijamj=mk=1nj=1ni=1akibijakj

tr(ABAT)A=[(nk=1nj=1ni=1akibijakj)a11(nk=1nj=1ni=1akibijakj)a1n(nk=1nj=1ni=1akibijakj)am1(nk=1nj=1ni=1akibijakj)amn]=

=[nj=1b1ja1j+ni=1a1ibi1nj=1bnja1j+ni=1a1ibinnj=1b1jamj+ni=1amibi1nj=1bnjamj+ni=1amibin]=

=[nj=1a1jb1jnj=1a1jbnjnj=1amjb1jnj=1amjbnj]+[ni=1a1ibi1ni=1a1ibinni=1amibi1ni=1amibin]=

=[a11a1nam1amn][b11bn1b1nbnn]+[a11a1nam1amn][b11b1nbn1bnn]=

=ABT+AB

If B is symmetric, B=BT:

tr(ABAT)A=ABT+AB=AB+AB=2AB

Back

Cookies

This website uses Google Analytics third-party cookies to analyze web traffic. Read more about cookies