Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Constraining the element-wise magnitudes of a matrix

  1. Oct 28, 2011 #1
    I have a complex matrix, [itex]\textbf{A}[/itex], and I want to left-multiply it by a unitary matrix, [itex]\textbf{U}[/itex] (i.e. [itex]\textbf{U}[/itex] is square and [itex]\textbf{U}^H\textbf{U}=\textbf{I}[/itex]).

    The goal is to find the [itex]\textbf{U}[/itex] which yields the optimal solution [itex]\textbf{B}_{opt} \triangleq \textbf{U}\textbf{A}[/itex], where [itex]\textbf{B}_{opt}[/itex] is optimal in the sense that its element-wise magnitudes are all simultaneously as close as possible to unity.

    That is, I would like to minimise something like: [itex]\underline{1}^T \left|\left(\left|\textbf{B}_{opt}\right|^2 - \underline{1}\underline{1}^T\right)\right|^2 \underline{1}[/itex] (subject to [itex]\textbf{U}^H\textbf{U}=\textbf{I}[/itex]), where [itex] \left|\textbf{B}_{opt}\right|[/itex] denotes the element-by-element absolute value of [itex]\textbf{B}_{opt}[/itex] and [itex]\underline{1}[/itex] is a column vector of ones.

    How can I approach this problem? I have tried to find a solution using Lagrange multipliers, but I can't seem to gain any insight into how to design [itex]\textbf{U}[/itex]. What other sorts of methods are available for this type of problem?

    Any advice is greatly appreciated!
  2. jcsd
  3. Oct 28, 2011 #2

    Ben Niehoff

    User Avatar
    Science Advisor
    Gold Member

    The "element-by-element magnitude squared" can be written

    [tex]\mathrm{tr} \, (A^\dagger A)[/tex]

    This might be useful.
  4. Oct 29, 2011 #3
    Ah yes - I have been using that expression (sum of element-by-element magnitude squared is the Frobenius norm). It is particularly useful because matrix traces tend to be easy to differentiate.

    However, I run into trouble with the [itex]\left|\textbf{B}_{opt}\right|^2[/itex] term, which is not summed. I wrote it as [itex]\left( \textbf{B}_{opt} \odot \textbf{B}_{opt}^* \right)[/itex], where [itex]\odot[/itex] is the Hadamard (element-by-element) product. When differentiated (w.r.t. [itex]\textbf{U}^*[/itex]) this produces an ugly expression with several Hadamard products that I find difficult to work with.

    Furthermore, differentiating the constraint term in the Lagrange function seems to give strange results (or perhaps I have made an error)... so I'm looking for any fresh ideas or insights!
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook