Усреднение углов ... Опять - PullRequest
18 голосов
/ 28 ноября 2009

Я хочу вычислить среднее значение набора углов, , которое представляет исходный азимут (от 0 до 360 градусов) - (аналогично направлению ветра)

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

.

Однако этот ответ определяет среднее не интуитивно понятным способом. Среднее значение 0, 0 и 90 будет atan ((sin (0) + sin (0) + sin (90)) / (cos (0) + cos (0) + cos (90))) = атан (1/2) = 26,56 град.

Я бы ожидал, что среднее значение 0, 0 и 90 будет 30 градусов.

Поэтому я думаю, что было бы справедливо задать вопрос еще раз: как бы вы рассчитали среднее значение, поэтому такие примеры дадут интуитивный ожидаемый ответ.

Изменить 2014:

Задав этот вопрос, я опубликовал статью о CodeProject , в которой предлагается тщательный анализ. В статье рассматриваются следующие справочные задачи:

  • Приведенное время суток [00: 00-24: 00) для каждого рождения, произошедшего в США в 2000 году - Рассчитать среднее время рождения при рождении
  • С учетом мультимножества измерений направления от стационарного передатчика к стационарному приемнику, используя методику измерения с обернутой нормальной распределенной ошибкой - Оцените направление.
  • С учетом мультимножества оценок азимута между двумя точками, сделанных «обычными» людьми (при условии, что они подверглись усеченной усеченной нормальной распределенной ошибке) - Оцените направление.

Ответы [ 11 ]

0 голосов
/ 28 ноября 2009

Что плохого в том, чтобы принимать набор углов в качестве реальных значений и просто вычислять среднее арифметическое этих чисел? Тогда вы получите интуитивный (0 + 0 + 90) / 3 = 30 град.

Редактировать : Спасибо за полезные комментарии и указание, что углы могут превышать 360. Я считаю, что ответом может быть обычное среднее арифметическое значение, уменьшенное по модулю 360: мы суммируем все значения, разделив их на число углов, а затем вычтите / сложите кратное 360, чтобы результат находился в интервале [0..360).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...