Finding solution angles that are a fixed distance apart based upon an initial angle set

50 Views Asked by At

I have three angles between $0^\circ$ and $360^\circ$ that are all close to being $120^\circ$ apart. E.g. [$50^\circ$, $183^\circ$, $310^\circ$].

How can I mathematically find values that best fit these points but are exactly $120^\circ$ apart? [$50^\circ$, $183^\circ$, $344^\circ$] --> [$55^\circ$, $175^\circ$, $295^\circ$] (this was an example solution and probably not correct)

2

There are 2 best solutions below

1
On

I would find the phase angle needed to rotate an isosceles triangle in order to meet the target angles.

In radians the angles of an isoceles triangle are $ 120° (i-1) = \tfrac{2 \pi}{3} (i-1)$ for $i=1\ldots 3$

Each target angle $\theta_1$, $\theta_2$ and $\theta_3$ needs a phase shift of $\varphi$ defined by

$$ \varphi_i = \theta_i - \tfrac{2\pi}{3} (i-1) - n\, 2\pi $$ for $n=0$ or $n=1$

choose the wraparound integer $n$ such that it makes all three $\varphi$ as close as possible.

Now you can take the average phase shift as a best fit

$$ \varphi = \frac{ \varphi_1 + \varphi_2 + \varphi_3}{3} $$

If all $n=0$ and no wraparound is needed then

$$ \varphi = \frac{ \theta_1 + \theta_2 + \theta_3 - 2\pi}{3} $$

But if you need to specify some wraparound integers $n_1$, $n_2$ and $n_3$ which might be 0 or 1 then

$$ \varphi = \frac{ \theta_1 + \theta_2 + \theta_3 - 2\pi (1+ n_1 + n_2 + n_3) }{3} $$

For the example in the op you have

$$ \varphi = \frac{ 50° + 183° + 295° - 360°}{3} = 56° $$

and find the three angles as

$$ \theta_i' = \varphi + \tfrac{2\pi}{3} (i-1) $$

for the example above this is

$$ \begin{aligned} \theta_1 &= 56° & \theta_2 & = 176° & \theta_3 & = 296° \end{aligned}$$


To find the difference between two angles, without having to worry about wrapping around 360° you do

$$\Delta \phi = \cos^{-1}\left( \cos \left( \phi_1 - \phi_2 \right) \right) $$

this is derived from the dot product of two vectors on the unit circle.

1
On

Sort the angles (no wrapping around). So assuming this, the angle are: $[x,x+120,x+240]$. Now find $x$ which minimizes $||x[1,1,1]+[0,120,240]-[50,183,310]||$. As one of the comments said, u need to pick a norm $||.||$ to solve this. If the norm is $\ell_2$, then the solution is $x=\frac{(50+(183-120)+(310-240))}{3} = 61$. So for $\ell_2$ norm, ur solution is: $[61,61+120,61+240] = [61,181,301]$. I do not think u need to bother about wrapping around property of angles here as your angles are far away from boundary points $0,360$.