Оптимизировать с использованием мемоизации для задач типа построения графиков (т.е. многократный вызов функции в разных точках)
Использовать метод трапеций с постоянным шагом.
Показать прирост производительности с помощью time.
Обеспечить покрытие тестами.