Приветствую! Не могу найти алгоритм, с помощью которого можно реализовать вот такой базис https://university.prognoz.ru/biu/ru/Экспоненциальное_сглаживание А мозгов и познаний в математике не хватает. Если кто может, помогите? Спасибо за внимание
пару дней назад отвечал тут как раз по теме. Проще простого, пусть у вас средняя Xav, постоянная сглаживания n, получаете значение Xi , тогда Xav= Xav+2(Xi-Xav)/(1+n) т.е. при каждом новом измерении вы добавляете к среднему 2(Xi-Xav) /(1+n), (Xi-Xav) - просто разница между полученным значением и средним, хранящимся в памяти. Нулевое значение (в начале работы программы) можно просто выставить равным полученному значению. И при каждой итерации (при получении нового значения Xi) считаете новое экспоненциальное скользящее среднее Xav. Самом собой, чтобы средняя была точно экспоненциально сглаженная, периоды пересчета Xav должны быть постоянными.
Я правильно понимаю, в зависимости от n ... меняется на сколько агрессивно реагирует средняя на отклонения в ряде чисел? а она какой вид может иметь? от 1 и выше?
ну термин "агрессивно" наверное вряд ли подходит, но в общем вы поняли правильно. Например, при n=0 у вас всегда будет Xav=Xi, т.е. всегда будет усредненная (если так можно назвать) =полученному значению. n выбирается если уж совсем грубо - насколько вы хотите уменьшить шум, с ростом n шум усредняется и становится меньше примерно как корень из n
Все работает ... Правда добавил знак * Xav = Xav + 2 * (Xi — Xav) / (1 + n); вот так поехало хорошо. Спасибо огромное! Низкий поклон
Да, конечно *, а то ведь в алгебре когда сомножители пишут - подразумевают знак умножения, вот по привычке.... Ну и конечно поехало, куда оно денется!