distances.online

Стаття в блозі

Калькулятор гаверсинусів: формула крок за кроком, з картою

Чому здається, що літаки летять дугою? Математичне пояснення крок за кроком, з калькулятором та інтерактивною картою.

Опубліковано: Оновлено: Усі статті

Завантаження карти…

Перетягніть маркер A або B у будь-яке місце карти. Синя лінія — найкоротший шлях по глобусу, сіра — пряма на пласкій карті; відстань і кожен крок формули перераховуються, щойно ви їх переміщуєте.

Точка A
Точка B
Відстань
5 576,5 км
5 576 462 м

Координати також можна ввести тут.

Формула крок за кроком для двох точок вище

КрокФормулаЗначення
Широта A в радіанахφ₁ = lat(A) · π / 1800,710572 рад
Широта B в радіанахφ₂ = lat(B) · π / 1800,898974 рад
Різниця широтΔφ = φ₂ − φ₁0,188401 рад
Різниця довготΔλ = λ₂ − λ₁1,289418 рад
Значення гаверсинусаa = sin²(Δφ/2) + cos φ₁ · cos φ₂ · sin²(Δλ/2)0,17923643
Центральний кутc = 2 · atan2(√a, √(1 − a))0,874309 рад
Відстаньd = R · c (R = 6 378,137 км)5 576,5 км

Коли ви вводите в калькулятор Нью-Йорк і Лондон, першим з’являється число 5 576 км. Для нього не перевіряли жодних доріг і жодних розкладів рейсів: це найкоротший можливий шлях поверхнею Землі між центрами двох міст, і він випливає з невеликого фрагмента тригонометрії, який називають формулою гаверсинусів. У цій статті формулу записано повністю, крок за кроком розібрано саме це обчислення Нью-Йорк — Лондон, а на карті можна перетягувати дві точки й бачити, як кожен крок оновлюється наживо. Якщо спершу хочете зрозуміти ідею без рівнянь, почніть зі вступу простими словами.

Чому лінійка на пласкій карті бреше

На карті маршрут далекого польоту майже ніколи не має вигляду прямої лінії — лише дуги. Здається, що це обхідний шлях, але насправді він найкоротший.

Щоб це перевірити, досить глобуса й шматка нитки. Притисніть один кінець до Лондона, а другий — до Нью-Йорка й натягніть нитку: вона не йде паралеллю на захід, а піднімається над Атлантикою, проходить поблизу Гренландії й знову спускається. Саме так летять літаки. Такий шлях називають великим колом (ортодромією): це край, який виходить, якщо розрізати глобус навпіл через центр. На кулі це найпряміша можлива лінія. Лінія, яку калькулятор малює між двома містами, — це саме ця дуга, перенесена на пласку карту.

Той самий маршрут на глобусі (ліворуч) і на пласкій карті (праворуч). На сфері це найпряміша з можливих ліній; на карті вона вигинається на північ, а сіра лінія — те, що провела б лінійка. Натисніть на зображення, щоб збільшити його.

Проблеми починаються, коли кулю переносять на площину, як у більшості карт: пропорції спотворюються. Біля екватора пласка карта майже не відрізняється від кулі, але що ближче до полюсів, то сильніше вона розтягується. На найпоширенішій карті Гренландія здається майже такою ж великою, як Африка, хоча насправді Африка приблизно в чотирнадцять разів більша.

Тому що далі від екватора пролягає траєкторія польоту, то вигнутішою вона здається на площині. Маршрут Лондон — Нью-Йорк утворює виразну дугу, а Мадрид — Буенос-Айрес, який перетинає екватор, майже прямий.

Тож, щоб виміряти правильно, ми відкладаємо карту й працюємо на самій кулі — із широтами та довготами. Саме це й робить формула гаверсинусів.

Формула

Назвімо дві точки A і B. Кожна має широту φ (фі) і довготу λ (лямбда) — два кути, що визначають її положення на глобусі. Широта показує, наскільки точка розташована на північ чи на південь від екватора; довгота — наскільки на схід чи на захід від Гринвіцького меридіана.

a= sin2 (Δφ2) + cos⁡φ1 · cos⁡φ2 · sin2 (Δλ2)
c= 2·atan2⁡ (a,1−a)
d=R·c

Розберімо рядок за рядком:

  • Δφ (дельта фі) — різниця широт між A і B, а Δλ (дельта лямбда) — різниця довгот. Обидві мають бути в радіанах, а не в градусах: помножте градуси на π і поділіть на 180.
  • a — «гаверсинус» центрального кута. Він поєднує відстань північ–південь із відстанню схід–захід, масштабуючи складову схід–захід косинусами обох широт, бо що ближче до полюса, то коротший градус довготи (на екваторі один градус довготи — це приблизно 111 км; на 60° північної широти — лише 56 км).
  • c перетворює це число на кут у радіанах між двома точками, якщо дивитися з центру Землі. На практиці використовують форму з atan2: вона залишається точною, навіть коли точки розташовані надзвичайно близько або рівно одна навпроти одної.
  • d — відстань: цей кут, помножений на радіус Землі R. Якщо R у кілометрах, результат теж у кілометрах.

Слово гаверсинус (англ. haversine) — скорочення від «half the versed sine», тобто половина синус-верзуса, тригонометричної функції, яку моряки з XIX століття мали в друкованих таблицях, бо вона дозволяла легко виконати саме цей розрахунок уручну, на кораблі. Сучасна комп’ютерна версія — та сама ідея, записана через sin².

Від Нью-Йорка до Лондона, крок за кроком

Калькулятор використовує такі координати центрів міст: Нью-Йорк — широта 40,7128°, довгота −74,0060° (захід від’ємний), Лондон — широта 51,5074°, довгота −0,1278°. Якщо підставити їх у формулу з тим самим радіусом Землі, що й у калькуляторі, 6378,137 км, отримаємо:

КрокФормулаЗначення
Широта Нью-Йорка в радіанахφ₁ = 40,7128 · π / 1800,710572 rad
Широта Лондона в радіанахφ₂ = 51,5074 · π / 1800,898974 rad
Різниця широтΔφ = φ₂ − φ₁0,188401 rad
Різниця довготΔλ = (−0,1278 − (−74,0060)) · π / 1801,289418 rad
Гаверсинус центрального кутаa = sin²(Δφ/2) + cos φ₁ · cos φ₂ · sin²(Δλ/2)0,17923643
Центральний кутc = 2 · atan2(√a, √(1 − a))0,874309 rad
Відстаньd = 6378,137 км · c5 576,5 км

Зверніть увагу на дві речі. Центральний кут становить близько 50 градусів — сьому частину повного оберту, тому дуга між Нью-Йорком і Лондоном так помітно вигинається на пласкій карті. А різниця довгот (1,2894 rad, близько 74°) важить значно більше, ніж різниця широт (0,1884 rad, близько 11°): міста лежать приблизно на одній широті, тож більша частина відстані припадає на напрямок схід–захід.

Наскільки точна формула гаверсинусів?

Формула виходить із того, що Земля — ідеальна куля. Це не так: на екваторі вона трохи роздута, а на полюсах сплюснута, приблизно на одну трьохсоту. Відстань від центру до екватора — 6378,1 км, до полюсів — 6356,8 км.

Це має два практичні наслідки:

  1. Обраний радіус змінює результат. Цей сайт використовує екваторіальний радіус, 6378,137 км, і отримує для маршруту Нью-Йорк — Лондон 5 576,5 км. Багато джерел натомість беруть середній радіус 6371 км і отримують 5 570,2 км. Обидва результати — «та сама» відстань за формулою гаверсинусів; різниця між ними — близько 0,1 %.
  2. Порівняно з реальною формою Землі формула гаверсинусів може давати похибку приблизно до 0,5 %. Для маршруту Нью-Йорк — Лондон це до 28 км. Для маршруту Лондон — Сідней завдовжки близько 17 000 км — 50 км і більше. Методи на кшталт формул Вінсенті працюють на еліпсоїді й дають точність до міліметрів, але ціною значно важчих обчислень і того, що для майже діаметрально протилежних точок вони іноді не збігаються.

Для калькулятора відстаней чи бігового трекера пів відсотка — це шум, і формула гаверсинусів — правильний інструмент: кілька операцій, жодних ітерацій, жодних випадків збою. Геодезисти й навігаційні системи, для яких важать сантиметри, використовують еліпсоїдальні методи.