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

где предполагается, что функция f(x) дифференцируемая n + 1 раз, а точка

На практике f
(n+1)(c) оценивать непросто, поэтому при малых dx приближенно полагают:

и тогда получается следующая формула

Мы будем пользоваться формулой (2), а впоследствии и формулой (3), в зависимости от конкретной задачи и тех сложностей, которые могут возникнуть при составлении программ.
Используя эти формулы, составим функцию для вычисления первой производной. Точность вычисления eps задается пользователем, а первоначальная величина промежутка dx устанавливается 1, а затем, для уточнения вычисления - делится на 2. Впрочем, читатель может предложить другие способы изменения промежутка dx, когда значительно быстрее достигается вычисление производной с заданной степенью точности.
{ Вычисление 1-й производной и опред. точности ее вычислен.}
{ derivative - производная }
Function derivat1(x0, eps : real) : real;
var
dx, dy, dy2 : real;
begin
dx := 1;
repeat
dx := dx/2;
dy := fx(x0 + dx/2) - fx(x0 - dx/2);
dy2 := fx(5*x0/4 + dx) - 2*fx(5*x0/4);
dy2 := dy2 + fx(5*x0/4 - dx)
until abs(dy2/(2*dx)) < eps;
derivat1 := dy/dx
end;
Здесь, для определения точности вычисления, используется вторая производная в точке

Запись ее вычисления выполнена в две строки только из-за лучшей наглядности написания программы.
Возможен и другой вариант написания функции с использованием формулы (3) для оценки точности вычисления.