Я так понимаю, этот метод не будет гарантировать, что для любой точки полученная аппроксимация будет удовлетворять условию точности.
Условия точности всё же обычно не рассматриваются как жёсткие неравенства. Ваше

может трактоваться как

. Или можно в алгоритмах положить дельту типа 0.8 от заданной, для подстраховки.
Если Вы нашли, например, максимум последовательности в 7-й точке, то максимум функции можно уточнить квадратичной интерполяцией по точкам 6,7,8.
Ведь у Вас, похоже, хорошо конкретизированная задача, и это может как-то упростить дело.
Короче, я Вам предложил
тупой способ прореживания точек: типа считаем их тыщу, потом оставляем первую, десятую, двадцать вторую итд.
И я совсем упустил из виду, что раз Вы можете вполне точно (практически, с компьютерной точностью) сосчитать координаты точек (а ещё и знать в каждой точке касательные, а то и кривизны), то задачу прореживания можно организовать
несколько умнее. Сам придумал --- сам забыл. И Вы, как я понял, аппроксимируете не функцию, а плоскую кривую.
Посмотрите пока
сюда. Там окружностями аппроксимировалось с заданной точностью, а у Вас прямыми. Малость подправить будет несложно, думаю.