Similar to the idealistic model described in Section 4.1, the location of the observer can be obtained by determining the intersection point(s) of the three rotational hyperboloids defined by Equation 9. However, since the observed virtual beam width now additionally depends on the height of the observer, we have to take into account the exact lighthouse positions. Figure 6, which shows an extended version of Figure 3, illustrates this. The marks on the coordinate axes show the positions of the lighthouse center (as defined in Section 4.2.2) of each of the three lighthouses. That is, the coordinates of the observer are with respect to the origin formed by the intersection of the three lighthouse rotation axes. In order to obtain approximations for the values , , and , we have to solve the following equation system:
The indices indicate which lighthouse the values are associated with. As with equation system 4, this system does not necessarily have a solution, since the parameters are only approximations obtained by measurements. Therefore, minimum mean square error (MMSE) methods have to be used to obtain approximations for the . However, if the equation system 10 has a solution, we can approximately solve it by simple iteration. For this, we first transform each of the six equations of equation system 10 in order to obtain the following fixpoint form:
Note that we did not show arguments of the (i.e., , ) that do not change during iterative evaluation of the equation system. By using appropriate values for , and , we can obtain approximate solutions for with the following algorithm:
while (true) { if () break; }
At first, the are initialized to the start values . Using the , new approximations are computed. We are finished if the new values are reasonably close to the original . Otherwise we update the to the new values and do another iteration. For good convergence of this algorithm the partial derivatives of the in the environment of the solution should be small, which is typically true. In our prototype implementation we use cm and cm. With this configuration, the algorithm typically performs 4-6 iterations.