Рассматривается задача сжатия данных без потерь при помощи разложения функции в ряд Фурье.
Дано: Функция, заданная в

точках

:

Пусть, для наглядности, значения

будут целыми от 0 до 255. То есть для хранения

значений функции потребуется

байт.
Требуется построить алгоритм, позволяющий сжать(уменьшить число байт, необходимых для хранения значений функции) и формулу для распаковки того, что сжали:).
Разложим функцию в ряд Фурье. (доопределив её так, как нам нужно)

;

;

после некоторых выкладок получим:

К сожалению сумму

свернуть не удалось. Разложив её в ряд Маклорена и перегруппировав получаем:

или

ну и, наконец,

Применение формулы.
Дано

значений функции(файл), например,

вычисляем нужное число сумм

,например,

. Сохраняем

в файл-это будет архив. Когда нужно разархивировать используем последнюю формулу.
Значения функции

могут быть и большими, в архиве хранится будут только

сумм

Придется использовать вычисления с большими числами.
В данное время пытаюсь оценить:
0. Применимо ли всё это на практике.(программу написал без Маклорена всё отлично сходится, теперь нужно с большими числами и разрядностью проверить)
1. Сколько сумм

хранить в архиве при различных ОДЗ

2. Какой должен быть

, чтобы можно было остановить процесс разархивации.
Пишите кому интересно..