Вычисление второй производной по разным переменным
Материал из MachineLearning.
Содержание |
Введение
Постановка математической задачи
Допустим, что в некоторой точке у функции существует производная 2-го порядка , которую точно вычислить либо не удаётся, либо слишком сложно. В этом случае для приближенного нахождения производной функции требуется использовать методы численного дифференцирования.
Изложение метода
Рассмотрим формулу =. Сведем задачу нахождения смешанной производной по двум разным переменным к задачам нахождения производной по одной переменной. Производную по одной переменной будем находить следующим образом - =. Получается что для нахождения смешанной производной достаточно найти три одномерные производные и вычислить значение исходной функции в четырех точках.
- Для начала найдем две производные по y в точках и
Затем найдем искомую производную по формуле ==
Примеры работы метода
=. Результаты для точки M(0,0), где значение второй смешанной производной ,подсчитанной аналитически, равно 1, для приведены в таблице.
Значение Абсолютная ошибка Относительная ошибка 1e-1 3.3e-3 3.3e-3 1e-3 3.3e-7 3.3e-7 1e-5 3.3e-11 3.3e-11 1e-7 0 0 1e-9 0 0
Вычисления проводились в стандартном типе double (позволяет хранить 15 значащих десятичных цифр) языка C++.
Рекомендации программисту
Пример кода на C++
typedef double func(double ,double); double SecondDerivative(func f,double x,double y,double hx,double hy) { return (f(x+hx,y+hy)-f(x+hx,y-hy)-f(x-hx,y+hy)+f(x-hx,y-hy))/(4*hx*hy); }