Análisis Numéricos.

5. Ejercicio ortodrómica

Objetivo

Escribir un programa en C++ que calcule la ortodrómica, dada la latitud y longitud de ambas ubicaciones.

Marco teórico

La ortodrómica (del griego orthos "recto" y dromos "carrera") es el camino más corto (distancia) entre dos puntos de la superficie terrestre; es el arco del círculo máximo que los une, menor de 180 grados. [Wikipedia]
Suponiendo un radio terrestre constante de 6371 km, la ortodrómica se puede calcular de la siguiente manera:


 d=r\Delta\hat{\sigma}

donde r es el radio de la Tierra y \Delta\hat{\sigma} es el ángulo central entre ambos puntos, que se puede obtener utilizando la ley esférica del coseno:

\Delta\hat{\sigma}=\arccos(\text{sen}\phi_{i}\:\text{sen}\phi_{f}+\cos\phi_{i}\:\cos\phi_{f}\:\cos\Delta\lambda)

C++ cuenta con una librería que incluye funciones trigonométricas (cmath), pero por cuestiones didácticas, aproximaremos por series de Taylor.

\text{sen}(x)=\sum_{n=0}^{\infty}\frac{(-1)^{n}}{(2n+1)!}x^{2n+1}=x-\frac{x^{3}}{3!}+\frac{x^{5}}{5!}-\cdots

\cos(x)=\sum_{n=0}^{\infty}\frac{(-1)^{n}}{(2n)!}x^{2n}=1-\frac{x^{2}}{2!}+\frac{x^{4}}{4!}-\cdots

\arccos(x)=\frac{\pi}{2}-\sum_{n=0}^{\infty}\frac{(2n)!}{4^{n}(n!)^{2}(2n+1)}x^{2n+1}

Sugerencias

  • Además de las funciones seno, coseno y arco coseno, utilice funciones para calcular potencia y factorial.
  • Utilizando de 6 a 10 términos en las series, se obtiene una muy buena aproximación.
  • Defina una variable con el valor de pi.
  • Para mejorar la precisión, utilice variables del tipo double.
  • Para apreciar el resultado, defina la cantidad de decimales que se muestran en pantalla con:
    cout.precision(15);