Имеется последовательность чисел, заданная рекурсивно: A(n+1) = A(n) * (1 - k) + T * k Что происходит? Выражение справа от "равно" - это всем известная функция lerp. Имеется некоторое начальное значение A(0), которое каждую итерацию линейно интерполируется к значению T (от слова target - целевое) на константное значение интерполяционного параметра (в моем случае это k, на вики это t). A(0), T, k - константы. k находится на отрезке [0; 1]. Для примера - рисунок. На рисунке - первые 50 значений последовательности A(n) при A(0) = 2, T = 1, k = 0.1. По-простому - это первые 50 шагов линейной инторполяции из 2 в 1 с шагом lerp-параметра в 0.1. Задача - найти аналитическое обобщение этой последовательности (в общем виде). Иными словами - чтобы это была не дискретная последовательность, а непрерывная функция. Как факториал и гамма-функция. Я остановился на следующем: A(n) можно выразить через A(0), k и T следующим образом: A(n) = A(0) * (k - 1)^n - k * t * Sum(i = [0; n - 1]) [ (-1)^(i+1) * k^i * C(i, n) ], где C(i, n) - биномиальный коэффициент из n по i. Вероятно, первое слогаемое можно как-то засунуть в сумму и записать это все как-то более красиво. Но так или иначе - биномиальные коэффициенты и знакочередование не дают по-легкому превратить последовательность в аналитическую функцию. Вспоминается, что биномиальные коэффициенты были, кажется, в каких-то разложениях в ряд Тейлора, думаю поискать аналоги там. Но может быть все уже украдено до нас? Может есть уже готовое решение, или просто есть какие-то идеи? Заранее спасибо. PS. Для админов: в предварительном просмотре не работают математические формулы! Я честно пытался, но решил что лучше вообще без форматирования, чем непонятно как. --- Сообщение объединено, 27 фев 2019 --- Чисто интуитивно тыкнул пальцем в несколько мест в небе, и обобщение нашлось o_O A(n) = A(0) * (1 - k)^n + T * (1 - (1 - k)^n) = lerp(A(0), T, 1 - (1 - k)^n)
а в чём проблема? замени n на х и ты получишь непрерывную функу, пересекающуюся со всеми точками дискретной цепочки. можно взять полином энной степени с эн минус один коэффициентами == реши этот полином относительно эн заданных точек и опять получаешь, что тебе надо. практически любым дикобразом можно получать такую конвертацию. Вопрос лишь в ресурсоёмкости.
UbIvItS, процитированная формула - и есть обобщение, которое мне удалось угадать. Просто посты склеились.
_DEN_, если я правильно понял - дело постепенно движется в сторну интерполяции B-сплайнами, черт бы их побрал? Которые мне, в свое время, "всю плешь проели". Как-то приходилось вспоминать и разбираться с дискретным и быстрым преобразованием Фурье. Разобрался. Потом понадобилось преобразование Лапласа. Чуть, на мой взгляд, сложнее, но тоже разобрался. А на этой долбаной интерполяции B-сплайнами - застрял. Плюнул и отложил до лучших времен, когда будет побольше свободного времени.
Ваша функция - угасающая экспонента. Выражение очень похоже на формулу выходного сигнала рекурсивного фильтра нижних частот: A(t+1) = A(t)*(1-k) + S(t)*k. A(t) - выходной сигнал S(t) - входной сигнал Только у вас S(t) - константа и равно T.
_DEN_, забыл спросить. Вы программами Maple, Mathematica, MatLab случайно не пользуетесь, когда занимаетесь математикой? Какой-нибудь одной из этих трех.