How do I optimize a rotation of the roots of unity?

48 Views Asked by At

Any rotation of the $m$th roots of unity is a finite normalized tight frame (FNTF) of $\mathbb{R}^2$. According to Benedetto and Fickus, every minimizer $\{x_i\}_{i=1}^{m}$ of the "frame potential" $$FP(\{x_i\}_{i=1}^{m}) = \sum_{i,j=1}^m |\langle x_i, x_j \rangle|^2$$ is a FNTF of $\mathbb{R}^d$.

Given a random initial set $\{x^{(0)}_i\}_{i=1}^{m}$, I would like to produce some rotation of the roots of unity by minimizing $FP$ via gradient descent in the case of $d=2$.

However, when I numerically minimize the (hopefully transparent) function

def FP(phases):
phase_diffs = phases - phases.transpose(1,0)
return (torch.abs(torch.cos(phase_diffs))**2).sum()

where phases are the angles of $\{x_i\}_{i=1}^{3}$ measured counter-clockwise from the x-axis, I see

enter image description here

which are evidently not roots of unity.

Have I misunderstood the frame potential or is this an optimization problem or both? I can provide more details about the solver if necessary.

Thanks in advance!

1

There are 1 best solutions below

1
On

$$ FP (\{ x_i \}_{i=1}^m) = \sum_{i,j=1}^m \mid \langle x_i , x_j \rangle \mid^2\\ $$

Let $\alpha_i$ be $\pm 1$ chosen independently.

$$ FP (\{ \alpha_i x_i \}_{i=1}^m) = \sum_{i,j=1}^m \mid \langle \alpha_i x_i , \alpha_j x_j \rangle \mid^2\\ = \sum_{i,j=1}^m \mid \alpha_i \alpha_j \langle x_i , x_j \rangle \mid^2\\ = \sum_{i,j=1}^m \mid \langle x_i , x_j \rangle \mid^2\\ = FP (\{ x_i \}_{i=1}^m) $$

So you see that the solution you got starts with the third roots of unity, but then messes with the signs by $\alpha_1=-1$ and $\alpha_2=\alpha_3=+1$.

When you minimize FP, you don't know a priori what these signs are.