Для синтеза звука необходимы (в каждый момент времени) значения функции

Вычислять их прямо каждую

долю секунды слишком жирно.
Вот решил составить рекуррентную формулу, чтобы по 1-2 предыдущим
значениям получать очередное.
Взяв производную по времени, видим, что:

Заменяя производную разностным соотношением и учитывая, что

, получим:


Такой процесс работает, но при больших n становится неустойчивым.
Я попробовал в правой части использовать не

, а

и получил

Этот процесс оказался очень устойчивым, но ведет себя в высшей степени странно -
в зависимости от показателя

, он "развивается" то в положительной, то в отрицательной полуплоскости.
В последнем случае график оказывается просто отраженным относительно оси

.
Сама форма графика отлично передает поведение искомой функции.
Хотел бы услышать мнения о корректности такого метода.
Любопытно также то, что

, но процесс начать с нулевого значения не получится.
Я выбираю "разумные" значения

типа

, при этом меняется масштаб графика ( с сохранением пропорций).
Какое стартовое значение нужно брать, чтобы получать правильные значения функции?
И, наконец, если все это полный бред, хотел бы узнать, реально ли
вообще получать разностные соотношения для сложных функций и как.