Рассчитать средние значения (температуру) на основе значений в определенные c раз - PullRequest
0 голосов
/ 28 марта 2020

Дано: Набор температур с отметкой времени каждого. Расстояние между временными метками варьируется.

Предположение: Я предполагаю, что температура линейно переходила от одного измерения к другому.

Цель: I хочу вычислить среднюю температуру.

example graph showing the problem

Что я получил до сих пор:

  • Мне нужно использовать Интегральный расчет для который. К сожалению, информация покинула мою голову. Со времени школы прошло несколько лет ...
  • Я мог бы каким-то образом создать математические функции для каждых двух пар меток времени и значений, а затем рассчитать среднее значение на основе этого.

Я использую эликсир и postgresql. Но любая подсказка о том, как подойти к этому на любом языке, очень приветствуется. Если есть библиотека, которую я пропустил, или общий пошаговый подход. Может быть, есть даже функция postgresql?

Я также привожу некоторые примеры данных:

[{~N[2020-03-28 13:08:32], 23.1}, {~N[2020-03-28 13:10:00], 23.3}, {~N[2020-03-28 23:08:32], 6.3}, {~N[2020-03-29 00:00:32], 2.1}, {~N[2020-03-29 04:00:00], 3.8}]

Представьте, что я хочу вычислить среднюю температуру между ~N[2020-03-28 13:30:00] и ~N[2020-03-29 03:00:00] на основе этих значений.

РЕДАКТИРОВАТЬ : мое понимание расчетов, предложенных High Performance Mark.

triangle calculation

  1. Рассчитать розовый треугольник
  2. Рассчитать зеленый квадрат под треугольником
  3. Сделать это для всех точек
  4. Суммировать все из них
  5. Разделите его на временной интервал (ось x)

Как получить краевые случаи?

1 Ответ

1 голос
/ 28 марта 2020

Если температура изменяется по прямой в пределах интервала, средняя температура в этом интервале является просто средним значением конечных точек интервала.

Например, в этом интервале:

{~N[2020-03-28 13:08:32], 23.1}, {~N[2020-03-28 13:10:00], 23.3}

Среднее значение (23,1 + 23,3) / 2 = 23,2.

Теперь, что если у вас есть период, состоящий из двух или более интервалов?

Вам нужно взять «средневзвешенное значение»: умножьте среднее значение каждого интервала на длину интервала, сложите их вместе и разделите на длину всего периода.

Конкретный пример:

Предположим, у вас есть 3 точки данных:

  • t = 0 температура = 4
  • t = 2 температура = 2
  • t = 5 температура = 8

Это два интервала. Первый имеет длину 2 и среднюю температуру (4 + 2) / 2 = 3 . Второй имеет длину 3 и среднюю температуру (2 + 8) / 2 = 5 .

Среднее значение за весь период составляет (2 * 3 + 3 * 5 ) / (2 + 3) = 4,2.

...