標籤:

複數矩陣求導的轉置和共軛轉置問題?(MMSE預編碼器推導)

看到一些資料,例如:Matrix calculus,給出的矩陣求導的公式都包含矩陣的轉置,這是對於實數矩陣而言么?如果是複數矩陣,可以直接將轉置換成共軛轉置么?
下面是一篇論文中MMSE預編碼器的推導過程。不明白最後一步的推導過程。


找了一上午資料,終於得到了一個比較靠譜的結果,過來回答自己的問題。
ps:特別感謝 @hu zhi , 在知乎上只問過兩個問題,您都快速準確地給出了答案。
關於複數矩陣求導的問題,推薦書目:Complex-Valued Matrix Derivatives。
對於像我一樣只想套用公式,不想去自行推導的小朋友可以直接參考如下表格:

所以問題中描述的MMSE precoder的矩陣導數推導過程如下:


記得這個主要是涉及到對複數求導的定義,和複變函數里的定義有些不同。 以前在張賢達的矩陣論里看到過。憑記憶寫。邏輯上大約是這樣的:

z = x + i y

定義 df/dz = 1/2 ( df/dx - i df/dy)

之所以這麼定義,是因為可以滿足 dz/dz = 1

從而也很容易發現 dz*/dz = 0

因此可以認為 z* 和 z在求導過程中是兩個無關的變數

然後結合d tr(AB)/dA = B^T, Tr(AB) = Tr(BA)

題主的問題就很好解了,也不用記那麼多公式。



我曾經也糾結過這個問題,這個最初要規定好,不然很容易弄亂。個人建議你從微分著手,然後利用vec(ABC)這個公式以及vec和trace的關係,最後轉化為d(L)/d(vec(X))。


推薦閱讀:

MATLAB的稀疏矩陣有什麼應用?
卡西歐計算機991cnx怎麼計算矩陣?
MATLAB、R之類軟體中向量化計算是如何實現的?
如何寫出比 MATLAB 更快的矩陣運算程序?

TAG:矩陣運算 |