Unconstrained quartic optimization

85 Views Asked by At

I am working on antenna array pattern synthesis algorithms, and am trying to minimize the following expression with respect to $\mathbf{v}$

$$ \int_\Omega \Big[ \big( \mathbf{v}^H \mathbf{Y}(\vartheta, \varphi) \mathbf{v} \big)^2 - \mathbf{v}^H \mathbf{X}(\vartheta, \varphi) \mathbf{v} \Big] \text{d} \Omega$$

where the integral is over the unit sphere, $\mathbf{Y}$ and $\mathbf{X}$ are positive semidefinite, $n \times n$ hermitian, complex matrices ($\mathbf{Y}$ is 99% sure positive definite), and $\mathbf{v}$ is a complex vector.

What I have at this point is that this expression can be written as a quartic - quadratic form

$$ ... = A_{a b c d} v_a^{*} v_b v_c^{*} v_d - B_{e f} v_e^{*} v_f$$

where $\mathbf{B} = \int \mathbf{X}$ and I believe that $\mathbf{A} = \int \mathbf{Y} \otimes \mathbf{Y}$, and we're using Einstein's summation convention.

It is also possible to calculate the gradient of this expression, though I may err here, using the symmetry of the tensors, it should be along the lines of

$$ F_d = [\Delta f]_d = 4 A_{abcd} v_a^{*} v_b v_c^{*} - 2 B_{df} v_f^{*} $$.

so the seeking the critical points leads to a system of $n$ cubic equations (not very fun)

And that's about it. I would be perfectly content with a useable numerical scheme, however, generally I'd want $\mathbf{v}$ to be large (on the order of 10 - 100 elements), so I have the feeling that I really need some tricks to get going with the problem.

Some interesting trivia: the eigenvector of $\mathbf{B}$ corresponding to the largest eigenvalue seems to lead to a relatively good solution, however, I can't really prove, only guess, why this is.


Edit:

I found a paper which deals with the real version of the problem (http://ira.lib.polyu.edu.hk/bitstream/10397/4765/1/Qi_Global_minimization_normal.pdf). Could this be generalized for complex search as well?

I also found a solver package which can find local minima of similar problems (https://julianlsolvers.github.io/Optim.jl/stable/#algo/complex/). This method will inevitably get stuck in the local minima, however, by generating several starting points (random search), I can get an acceptable solution for some simpler versions of the problem. Are there any tricks which could be used to help here?