Vincenty — Exposició clara i unificada (pas a pas)

Aquest fitxer calcula la **distància geodèsica inversa** entre dos punts sobre l'el·lipsoide WGS‑84 i mostra **tots** els paràmetres intermedi i com s'obtenen (incloent correccions angulars).

1) Coordenades — exemple

Origen (Les Sables‑d'Olonne): 46.494953° N, −1.792091°
Arribada (Saint‑François): 16.252360° N, −61.273320°

ValorUnitat
φ₁ (rad)0.8114900154
φ₂ (rad)0.2836571932
Δλ = L (rad)−1.03814328918

2) Constants WGS‑84

a = 6378137.0 m
f = 1/298.257223563
b = a*(1-f) = 6356752.314245179 m

(a = semieix major, b = semieix menor, f = aplatament)

3) Latitud reduïda (U)

Per cada latitud: tan U = (1−f)·tan φ. Aquesta transformació "aplana" la latitud sobre l'el·lipsoide per poder treballar amb trigonometria similar a la esfera.

VariableFórmulaValor
U₁atan((1−f)·tan φ₁)0.8046711232 rad
U₂atan((1−f)·tan φ₂)0.2798844412 rad

4) Iteració sobre λ (explicació visual)

Vincenty usa una fòrmula iterativa per trobar l'angle λ (la diferència de longitud corregida). Comencem amb λ₀ = L i calculem elements auxiliars, després actualitzem λ fins a convergir.

Formules per iteració (per a λn+1)

sinσ = sqrt((cosU₂·sinλ)² + (cosU₁·sinU₂ − sinU₁·cosU₂·cosλ)²)
cosσ = sinU₁·sinU₂ + cosU₁·cosU₂·cosλ
σ = atan2(sinσ, cosσ)
sinα = (cosU₁·cosU₂·sinλ) / sinσ
cos²α = 1 − sin²α
cos2σ_m = cosσ − 2·sinU₁·sinU₂ / 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²)))

Atenció: on apareixen divisions per sinσ o cos²α cal tractar casos especials (p. ej. punts antipòdics o equatorials exactes).

Taula d'iteracions (λ)

Aquí tens els primers passos fins convergència (tolerància 1e‑12 rad):

Iter.λ (rad)Delta
1−1.04041711351446060.0022738243344606612
2−1.04042141420160750.000004300687146852056
3−1.04042142233110668.12949907391669e-09
4−1.04042142234647361.5367040973046642e-11
5−1.04042142234650272.90878432451791e-14

Convergència aconseguida en 5 iteracions per aquest exemple.

5) Variables finals i com es deriven (amb valors)

Després de la convergència (λ final = −1.0404214223465027), calculem:

QuantitatFórmula / explicacióValor
sinσsqrt((cosU₂·sinλ)² + (cosU₁·sinU₂ − sinU₁·cosU₂·cosλ)²)0.8490818742
cosσsinU₁·sinU₂ + cosU₁·cosU₂·cosλ0.5282612714
σatan2(sinσ, cosσ) — longitud central reduïda1.01424484398 rad
sinα(cosU₁·cosU₂·sinλ)/sinσ — sin del rumb−0.6823541685
cos²α1 − sin²α0.5343927888
cos2σₘcosσ − (2·sinU₁·sinU₂)/cos²α — mitjana angular−0.2167434823

Notes sobre signes: sinα pot ser negatiu; el signe determina la direcció del rumb. Per obtenir el rumb inicial en graus (0…360°) cal usar atan2 i normalitzar.

6) Correccions el·lipsoidals (u², A, B, Δσ)

Aquestes quantitats ajusten la distància per l’aplanament de l’el·lipsoide.

FórmulaValor
u² = cos²α · (a² − b²) / b²0.003601538459174671
A = 1 + u²/16384·(4096 + u²(−768 + u²(320 − 175u²)))1.0008997775060744
B = u²/1024·(256 + u²(−128 + u²(74 − 47u²)))0.000898766598111629
Δσ = B·sinσ·[cos2σₘ + B/4·(cosσ(−1 + 2cos2σₘ²) − B/6·cos2σₘ(−3 + 4sin²σ)(−3 + 4cos2σₘ²))]−0.00016548474700496725

Observació: Δσ pot ser negatiu (petits ajustos cap amunt o avall depenent de la geometria); serveix per corregir la longitud central σ abans de multiplicar pels semieixos.

7) Distància geodèsica i rumbs

Fórmula final:

s = b · A · (σ − Δσ)
ResultatValor
σ − Δσ1.0144103287315907 rad
s (metres)6,388,165.05 m
s (km)6,388.16505 km
s (NM)(s/1852) = 3449.93 NM

Rumbs (bearing)

Rumb inicial (α₁): atan2(...)259.78° (des de l'origen cap a l'arribada)
Rumb final (α₂): 225.23° (al arribar; apuntant en sentit oposat del geodèsic)

8) Explicació didàctica de les correccions d'angles

  1. Per què usar U? — L'ús de la latitud reduïda U converteix el problema sobre l'el·lipsoide en un conjunt d'expressions trigonomètriques molt semblants a les de l'esfera però amb factors que incorporen l'aplanament f.
  2. σ (sigma) — és la "distància angular" entre els punts sobre una esfera auxiliar definida per U. Sense correccions, σ·a aproximaria la distància; però l'el·lipsoide exigeix l’ajust Δσ.
  3. sinα i cos²α — el rumb apareix com una funció trigonomètrica: sinα és la component transversal del vector geodèsic. cos²α mesura quant de "tall" té la trajectòria respecte als meridians i entra en fórmules de correcció perquè la curvatura varia amb la latitud.
  4. cos2σₘ — mesura l'angle mitjà ("mitja longitud central") i condueix termes de sèries que ajusten la simetria al llarg de la ruta.
  5. u², A, B, Δσ — vénen d'una expansió en sèries (Vincenty) que corregeix la separació angular per l’aplanament. A i B són polinomis en u²; Δσ és la correcció concreta aplicada a σ.

En resum: la iteració sobre λ converteix la diferència de longitud en la seva versió "geodèsica". A continuació, trigonometria directa sobre U retorna una σ que s'ajusta amb Δσ (que depèn de l'aplanament) i finalment es multiplica per b·A per obtenir metres.

9) Taula resum — totes les quantitats (precisió)

SymbolValor (aprox.)
a6,378,137.000 m
b6,356,752.314245179 m
f1/298.257223563
U₁0.8046711232 rad
U₂0.2798844412 rad
λ (final)−1.0404214223465027 rad
σ1.0142448439845857 rad
Δσ−0.00016548474700496725 rad
A1.0008997775060744
B0.000898766598111629
0.003601538459174671
s6,388,165.05 m (≈ 6,388.17 km)
rumb inicial α₁259.78°
rumb final α₂225.23°

10) Notes implementatives i advertències

Vols alguna cosa més?

Puc: generar una versió imprimible, afegir gràfics (mapa + geodèsica), exportar un CSV amb els passos d'iteració, o crear una implementació en JavaScript que calculi tot automàticament dins d'aquesta pàgina.