Какова приблизительная погрешность теоремы Пифагора и формулы Хаверсина при измерении расстояний на сфере в различных масштабах?


31

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

Чаще всего люди отвечают: «Нет, теорема Пифагора работает только на евклидовой плоскости 2D». Однако редко люди упоминают влияние масштаба и местоположения на сферу на то, насколько неточна теорема Пифагора.

Основная идея заключается в том, что в очень малых масштабах поверхность сферы очень похожа на плоскость. В очень больших масштабах его расстояния вдоль поверхности более изогнуты, и поэтому разница между неверной теоремой Пифагора и правильной формулой Хаверсина больше.

Кто-нибудь знает формулу или эмпирическое правило, которое говорит вам разницу между двумя мерами расстояния на основе шкалы расстояния, которое вы пытаетесь измерить?

Я думаю, что это явно поможет в:

  1. объяснение, почему теорема Пифагора не идеальна; а также
  2. давая людям, которые ищут более «грубые» расстояния, знать, когда Пифагор действительно будет служить их целям.

Ответы:


35

Использование формулы Пифагора для позиций, заданных по широте и долготе, имеет такой же смысл, как, скажем, вычисление площади круга с использованием формулы для квадрата: хотя оно дает число, нет никаких оснований полагать, что оно должно работать.

Хотя в небольших масштабах любая гладкая поверхность выглядит как плоскость, точность формулы Пифагора зависит от используемых координат . Когда эти координаты являются широтой и долготой на сфере (или эллипсоиде), мы можем ожидать, что

  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
Для таких ответов действительно должен быть функционал «любимого ответа».
Девдатта Тенгше

2
@DevdattaTengshe: он явно требует, чтобы это было вменяемым: «где dx - это разница в долготах (выраженная между -180 и 180), а dy - это разница в широтах, как в градусах».
lynxlynxlynx

1
Это 2, так как 2 * 179 больше 180?
lynxlynxlynx

1
@whuber: Я знаю это, и вы знаете это, но большинство людей, которые слепо пытаются использовать пифагорейскую / евклидову геометрию, даже не думают или не знают об этом. Было бы полезно, если бы этот факт (вы должны использовать Mod 360) присутствовал в вашем ответе.
Девдатта Тенгше

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 и сделать оценку только требующей A.
lynxlynxlynx

Можете ли вы уточнить выражение, которое вы в конечном итоге? Как этот A ^ 3/24 * R вышел?
любопытно

Разверните sin (A / 2) для Small, используя 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.