Вычисление второй производной по разным переменным
Материал из MachineLearning.
(→Изложение метода) |
(→Изложение метода) |
||
Строка 9: | Строка 9: | ||
::<tex>f(x_0-h_x,y_0)_y' = \frac{f(x_0-h_x,y_0+h_y)-f(x_0-h_x,y_0-h_y)}{2h_y}</tex> | ::<tex>f(x_0-h_x,y_0)_y' = \frac{f(x_0-h_x,y_0+h_y)-f(x_0-h_x,y_0-h_y)}{2h_y}</tex> | ||
Затем найдем искомую производную по формуле <tex>f'(x_0)</tex>=<tex>\frac{f(x_0+h_x) - f(x_0-h_x)}{2h_x}</tex>=<tex>\frac{f(M)-f(N)}{2h_x}</tex> | Затем найдем искомую производную по формуле <tex>f'(x_0)</tex>=<tex>\frac{f(x_0+h_x) - f(x_0-h_x)}{2h_x}</tex>=<tex>\frac{f(M)-f(N)}{2h_x}</tex> | ||
+ | == Примеры работы метода == | ||
+ | 1)<tex>f(x)</tex>=<tex>sin(x)sin(y)</tex>. | ||
+ | Результаты приведены в таблице. | ||
+ | ::{| border=1 | ||
+ | ! Значение <tex>h_x</tex>|| Значение <tex>h_y</tex>|| Относительная ошибка || | ||
+ | |- | ||
+ | | 1e-2 || 1.7e-5 || 2e-15 | ||
+ | |- | ||
+ | | 1e-4 || 1.7e-9 || 4e-11 | ||
+ | |- | ||
+ | | 1e-6 || 2.2e-5 || 5e-5 | ||
+ | |- | ||
+ | | 1e-8 || 0.8 || 1.6 | ||
+ | |- | ||
+ | | 1e-9 || 0.97 || 0.98 | ||
+ | |} | ||
+ | Вычисления проводились в стандартном типе [http://en.wikipedia.org/wiki/Double_precision double] (позволяет хранить 15 значащих десятичных цифр) языка [http://ru.wikipedia.org/wiki/C%2B%2B C++]. | ||
+ | |||
+ | Видно, что при слишком малом шаге полученные значения неадекватны. |
Версия 19:09, 20 октября 2008
Содержание |
Введение
Постановка математической задачи
Допустим, что в некоторой точке у функции существует производная 2-го порядка , которую точно вычислить либо не удаётся, либо слишком сложно. В этом случае для приближенного нахождения производной функции требуется использовать методы численного дифференцирования.
Изложение метода
Рассмотрим формулу =. Сведем задачу нахождения смешанной производной по двум разным переменным к задачам нахождения производной по одной переменной. Производную по одной переменной будем находить следующим образом - =. Получается что для нахождения смешанной производной достаточно найти три одномерные производные и вычислить значение исходной функции в четырех точках.
- Для начала найдем две производные по y в точках и
Затем найдем искомую производную по формуле ==
Примеры работы метода
1)=. Результаты приведены в таблице.
Значение Значение Относительная ошибка 1e-2 1.7e-5 2e-15 1e-4 1.7e-9 4e-11 1e-6 2.2e-5 5e-5 1e-8 0.8 1.6 1e-9 0.97 0.98
Вычисления проводились в стандартном типе double (позволяет хранить 15 значащих десятичных цифр) языка C++.
Видно, что при слишком малом шаге полученные значения неадекватны.