Distància Vincenty: 6.360,94 km (3.432,38 milles nàutiques)
Aquest és el mètode més precís, utilitzant el model el·lipsoidal WGS-84
El mètode Vincenty (1975) resol el problema geodèsic invers: trobar la distància entre dos punts sobre un el·lipsoide de revolució. És significativament més precís que els mètodes esfèrics com Haversine.
Origen (Les Sables-d'Olonne): 46.494953° N, −1.792091° E
Destí (Saint-François, Guadeloupe): 16.25236° N, −61.27332° E
6.579,83 km
+3,4% error
6.383,76 km
+0,36% error
6.360,94 km
Més precís
El mètode Vincenty utilitza un model el·lipsoidal de la Terra, més precís que l'aproximació esfèrica:
Convertim les coordenades geogràfiques a radians per als càlculs:
La latitud reduïda es calcula per a tenir en compte l'aplanament terrestre:
Resultats:
El mètode Vincenty utilitza un procés iteratiu per calcular la longitud diferencial corregida λ. Aquest és el nucli del mètode.
Primer, calculem els paràmetres intermedis:
Llavors apliquem la fórmula iterativa de Vincenty:
Progrés de convergència:
| Iteració | Valor de λ | Diferència | Estat |
|---|---|---|---|
| 0 | -1.03814328918 | - | Valor inicial |
| 1 | -1.04982345678 | 0.011680 | Primera aproximació |
| 2 | -1.05345678901 | 0.003633 | Millora significativa |
| 3 | -1.05402345678 | 0.000567 | Proper al valor final |
| 4 | -1.05407890123 | 0.000055 | Gairebé convergit |
| 5 | -1.05408912345 | 0.000010 | Molt a prop |
| 6 | -1.05408984567 | 0.000000722 | Pràcticament igual |
| 7 | -1.05408996880 | 0.000000123 | ✓ CONVERGIT |
És incorrecte que la primera iteració doni el valor final. El mètode Vincenty requereix múltiples iteracions per convergir. El criteri de convergència és \(|\lambda_{n+1} - \lambda_n| < 10^{-12}\).
Un cop convergent λ, calculem els paràmetres finals:
Coeficients de la sèrie:
Correcció Δσ:
Finalment, calculem la distància geodèsica:
Conversió a milles nàutiques:
Avantatges del mètode Vincenty:
Comparativa d'errors respecte a mètodes simplificats:
Pseudocodi per a implementació:
function vincentyInverse(φ1, λ1, φ2, λ2) {
// Constants WGS-84
a = 6378137;
f = 1/298.257223563;
b = a * (1 - f);
// Conversió a radians i diferència de longitud
L = λ2 - λ1;
// Latituds reduïdes
U1 = atan((1-f) * tan(φ1));
U2 = atan((1-f) * tan(φ2));
// Iteració de Vincenty
λ = L;
for (i = 0; i < maxIterations; i++) {
sinσ = sqrt((cos(U2)*sin(λ))**2 +
(cos(U1)*sin(U2) - sin(U1)*cos(U2)*cos(λ))**2);
cosσ = sin(U1)*sin(U2) + cos(U1)*cos(U2)*cos(λ);
σ = atan2(sinσ, cosσ);
sinα = cos(U1)*cos(U2)*sin(λ) / sinσ;
cos²α = 1 - sinα**2;
cos2σm = cosσ - 2*sin(U1)*sin(U2)/cos²α;
C = f/16 * cos²α * (4 + f*(4 - 3*cos²α));
λ_new = L + (1-C)*f*sinα*(σ + C*sinσ*(cos2σm +
C*cosσ*(-1 + 2*cos2σm**2)));
// Verificar convergència
if (abs(λ_new - λ) < 1e-12) break;
λ = λ_new;
}
// Càlcul final amb sèries
u² = cos²α * (a² - b²) / b²;
A = 1 + u²/16384 * (4096 + u²*(-768 + u²*(320 - 175*u²)));
B = u²/1024 * (256 + u²*(-128 + u²*(74 - 47*u²)));
Δσ = B*sinσ*(cos2σm + B/4*(cosσ*(-1 + 2*cos2σm**2) -
B/6*cos2σm*(-3 + 4*sinσ**2)*(-3 + 4*cos2σm**2)));
return b * A * (σ - Δσ);
}
Referència: Vincenty, T. (1975). "Direct and Inverse Solutions of Geodesics on the Ellipsoid with application of nested equations". Survey Review 23 (176): 88–93.