Неправильное значение из функции atan2 в Excel
Я пытаюсь вычислить угол между двумя широтами и долготами, но получаю неправильный результат atan2(X,Y)
при использовании в Excel.
β = atan2(X,Y) = atan2(0.05967668696, -0.00681261948)
Он должен быть 1,68 рад (96,51°), но в Excel он показывает -0,113666736 (-6,512624235°)
β = atan2(X,Y),
где X и Y две величины и могут быть рассчитаны как:
- X =
cos θb * sin ∆L
Y =
cos θa * sin θb – sin θa * cos θb * cos ∆L
Широта / Долгота (1): (Lat1,Lon1)= 39,099912, -94,581213
Широта / Долгота (2): (Lat2,Lon2)= 38,627089, -90.200203
‘L’ be the longitude, ‘∆L=lon2-lon1’ be the difference of longitude, ‘θ’ be latitude, ‘β‘ be Bearing
2 ответа
Проблема в том, что Excel использует функцию Atan2(y , x), а не (x, y). В C Atan2 использует параметры ( x , y ), которые дадут вам ожидаемый ответ. Просто измените параметры.
На добрые шесть лет опоздали с ответом, но, надеюсь, кто-нибудь найдет это полезным, лол.
В этом нет ничего плохого
atan2(X,Y)
Функция в Excel: указанная вами точка '(0.05967668696, -0.00681261948)' лежит в четвертом квадранте, то есть ее угол действительно равен -6.51°.Но если вы хотите рассчитать "абсолютное" значение угла между двумя географическими точками, вам следует использовать и абсолютную разницу между координатами:
β=ATAN2(ABS(0.05967668696), ABS(-0.00681261948))
Имейте в виду, что, если это вычисление для сферы (Земли), это приближение из-за кругового треугольника. Это нормально для небольших углов.