Вы можете приблизить производную, посмотрев на градиент через небольшой интервал. Например,
const double DELTA=0.0001;
double dfbydx(int x) {
return (f(x+DELTA) - f(x)) / DELTA;
}
В зависимости от того, где вы оцениваете функцию, вы можете получить лучшие результаты от (f(x+DELTA) - f(x-DELTA)) / 2*DELTA
.
(Я предполагаю, что 'int' в вашем вопросе было опечаткой. Если они действительно используют целые числа, у вас могут возникнуть проблемы с точностью при этом.)