Яка приблизна похибка теореми Піфагора проти Формули Гаверсіна при вимірюванні відстаней на кулі в різних масштабах?


30

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

Найчастіше люди відповідають "ні, теорема Піфагора працює лише в 2D евклідовій площині". Однак рідко люди згадують про вплив масштабу та розташування на сферу на те, наскільки неточна теорема Піфагора.

Основна ідея, будучи в дуже малих масштабах, поверхня кулі дуже схожа на площину. У дуже великих масштабах відстані вздовж поверхні більш вигнуті, тому різниця між неправильною теоремою Піфагора та правильною формулою Гаверсина більша.

Хтось знає формулу або правило, яке говорить вам про різницю між двома мірами відстані на основі шкали відстані, яку ви намагаєтеся виміряти?

Я думаю, що це явно допоможе:

  1. пояснення, чому теорема Піфагора не є досконалою; і
  2. дозволяючи людям, які шукають більш "грубі" відстані, знати, коли Піфагор насправді буде служити їхнім цілям.

Відповіді:


34

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

Хоча на малих масштабах будь-яка гладка поверхня виглядає як площина, точність формули Піфагора залежить від використовуваних координат . Коли ці координати - це широта і довгота на кулі (або еліпсоїд), ми можемо цього очікувати

  1. Відстані по лініях довготи будуть досить точними.

  2. Відстані вздовж екватора будуть досить точними.

  3. Усі інші відстані будуть помилковими, приблизно пропорційно різниці у широті та довготі.

Похибка залежить від початкової та кінцевої точки розрахунків відстані. Однак, оскільки і сфера, і еліпсоїд мають кругову симетрію навколо осі, похибка залежить лише від різниці довжин, тому для вивчення цієї похибки ми можемо також взяти точку виникнення на первинному меридіані. Оскільки і сфера, і еліпсоїд симетричні під відображенням північ-південь, нам потрібно лише вивчити точки походження в південній півкулі. Для будь-якої такої точки ми можемо скласти контурну карту відносної похибки, рівну [розрахунку Піфагора] / [Істинна відстань].

Формула Піфагора, використовуючи середній радіус землі, є

Pythagorean distance =  6371000. * Sqrt[dx^2 + dy^2]] * pi / 180 meters

де dx - різниця довжин, а dy - різниця широт, як у градусах. (Різниця в значеннях довготи зменшується по модулю 360, щоб дати правильне значення dx при перетині антимерідіана; не робити цього, було б введено штучно великі помилки, які нічого не говорять про саму формулу Піфагора.)

Наступні графіки показують відносну похибку порівняно з правильною відстані на еліпсоїді WGS 84 для широт від -70 до 0 з кроком 10 градусів. Горизонтальна координата - це різниця довжин, а вертикальна - широта пункту призначення. Світлі регіони мають порівняно невелику похибку: контурні лінії знаходяться на рівні 1, 1,01, 1,02, 1,05, 1,1, 1,2, 1,5, 2 тощо. (Чисті білі ділянки в кутах - це місця, де похибка виходить за межі цих контурів .) Червоні точки показують точку походження.

Сюжети

Вертикальні білі смуги свідчать про правильність очікування (1): Піфагорейські відстані точні, коли є невелика різниця у довготах. Горизонтальні білі смуги на низьких широтах підтверджують очікування (2): поблизу екватора горизонтальні відстані досить точні. В іншому випадку, як свідчать великі темніші регіони, на всіх інших відстанях піфагорейська формула погана.


Ми можемо зробити кількісні оцінки максимумупомилка, отримана для пар сусідніх точок (скажімо, в декількох сотнях кілометрів один від одного). Масштаб - використовуючи відповідне значення для радіуса - вірно вздовж меридіана, але по колу широти він помиляється приблизно на секан широти. Наприклад, на широті 40 градусів сеанс становить 1,31, то, маючи на увазі, формула Піфагора дасть відстані приблизно на 31% у напрямку схід-захід. (Це видно на верхньому правому контурному ділянці для точки походження на -40 градусів широти, де область, що знаходиться безпосередньо на схід-захід від червоної точки, лежить між контурами 1,2 та 1,5.) Короткі відстані у всіх інших напрямках будуть занадто великий на деяку суму від 0% до 31%; довші відстані можуть помилятися ще більше (як показують контурні графіки).


1
Дійсно, має бути функція "улюблена відповідь" для таких відповідей.
Devdatta Tengshe

2
@DevdattaTengshe: він прямо вимагає, щоб це було здоровим: "де dx - різниця довжин (виражена між -180 та 180), а dy - різниця у широтах, як у градусах".
lynxlynxlynx

1
Це 2, оскільки 2 * 179 більше 180?
lynxlynxlynx

1
@whuber: Я це знаю, і ти це знаєш, але більшість людей, які сліпо намагаються використовувати піфагорійську / евклідову геометрію, навіть не думають і не знають про це. Це допоможе, якби цей факт (ви повинні використовувати Mod 360) був присутній у вашій відповіді.
Devdatta Tengshe

1
@ToolmakerSteve Це добре - я часто використовую цю корекцію - але сподіваюся, що її користувач розуміє, що це наближення, і для великих відстаней та кількох інших обставин це може бути далеко від позначки.
whuber

8

Я інтерпретував "піфагонську відстань" як "евклідову відстань". Тоді відповідь така ж, як "яка різниця між довжиною хорди кола та підстереним периметром?" Нехай радіус R, підрядний кут - A (радіани).

perimeter = L = A*R
chord = C = 2*sin(A/2)*R
diff = D = L - C
     = (A-2*sin(A/2))*R
     = A^3/24 * R  (for A small)
     = L^3/(24*R^2) (eliminating A)
relative error = D/L
               = (L/R)^2/24

Для землі замініть R = 6400 км. До речі, називайте це "велика відстань кола" (що це таке), а не "гаверсина відстань" (як вона обчислюється). (Це схоже на відмінність відстані Піфагора від евклідової відстані.)


Виходячи з ваших міркувань, ви можете додатково замінити L і зробити оцінку потрібно лише А.
lynxlynxlynx

Чи можете ви розробити вираз, який ви закінчуєте? Як вийшов цей A ^ 3/24 * R?
цікаво

Розкрийте гріх (A / 2) для малого, використовуючи sin (x) = x - x ^ 3/6, і ви отримаєте цей результат.
cffk

5

Щоб отримати повну і сувору відповідь, подивіться на відповідь Валера вище. Я збираюся відповісти більш наочно і базово.

Причина, за якою планарні / піфагорейські обчислення є невідповідними, полягає в тому, що розрахунки покладаються на те, що переміщення на один крок у будь-якому напрямку - це постійна зміна величини незалежно від того, де ви знаходитесь на графіку.

звичайний графік

Довгота не відповідає цій вимозі. Лінії довготи сходяться на полюсах.

глобус, що показує конвергенцію

Ось чому, коли ми сплющуємо Землю для відображення правил плоского графа, ми отримуємо спотворення.

Карта проекції Меркатора

Якщо подивитися на цю карту, то виглядає так, ніби Гренландія приблизно розміром Африки, а Антарктида приблизно розміром Євразії. Звичайно, це неправда. І Гренландія, і Антарктида надзвичайно спотворені, оскільки вони близькі до полюсів, де сходяться довготи.

Вид земної кулі на північній півкулі

Як бачите, Гренландія приблизно розміром з Мексики.

Вид рукавички на південній півкулі

А Антарктида - це розмір південної Африки (а не Південної Африки).

Як ви бачите помилки, які ви отримаєте при застосуванні піфагорових формул, більше залежать від місця, де точки, ніж відстані між точками. З важливим застереженням, що більші відстані дозволять збільшити будь-які помилки. Ось чому планарні рішення, хоча і спокусливі, є поганим вибором. Перекоси будуть кусати вас, і це не так просто, як компенсування. Помилки є результатом викривлення землі відповідно до невідповідних правил.


Власне, те, що ви показуєте, - це різний тип помилок. Якщо правильно використати, теорема піфагора обчислює відстань довготи на основі довжини по лінії широти, на якій ви знаходитесь, та множимо наcos(lat) . Використовуваний таким чином, помилки невеликі для невеликих відстаней у будь-якій точці сфери (за винятком випадків, коли проходять полюс N або S). Те, що ви показуєте, - це спотворення проекції всієї землі, де неминуче деякі регіони сильно спотворені. "помилки, які ви отримаєте .. більше залежать від того, де .. ніж відстань", неправда, якщо використовується * cos(lat).
ToolmakerSteve
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.