Какая допустимая погрешность в исчислении производной по общей формуле и по частной?

Допустим, у нас есть функция с одной переменной:

f(x) = np.log((x + 1)**2 + 1)

Нам нужно исчислить ее производную в каждой точке на промежутке от -50 до 50.

Мы можем найти ее производную(частную), ее формула:

f'(x) = 2 * (x + 1) / (x**2 +1)

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

f'(x) = (f(x + e) - f(x))/ e  

(при е = 0.01, примерно)

Погрешность(разница модулей частной и общей формулы производной, в одинаковых точках) в значении от краев промежутка( - 50 и 50) к нулю равняется -+ 0.0016( на краях промежутка) и до -1.211 ( в точке 1)

Вопрос: Допустима ли такая погрешность в исчислении? Допускается ли такая погрешность ОБЩЕЙ ФОРМУЛЫ ПРОИЗВОДНОЙ, если ее использовать в поиске минимума функции(градиентный спуск)


Ответы (1 шт):

Автор решения: George

В случае градиентного спуска лучше использовать частную формулу, так как это быстрее и точнее, тем более если вы это используете в нейросети. Но не надо считать общую формулу ненужной. К примеру для проверки верности алгоритма частной производной функции перед ее использованием, мы можем сравнить ее с общей производной функции. И если они похожи, то алгоритм верен.

Но если вам необходимо использовать общую производную функции или вы не можете использовать частную, то берите "е" поменьше и ждите пока все будет просчитываться (это будет долго), но +- достаточно точно.

Та погрешность которая у вас не самая лучшая, я бы взял "е" меньше. Если возник еще вопрос задавай.

→ Ссылка