Вычисление второй производной по разным переменным

Материал из 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

Содержание

Введение

Постановка математической задачи

Допустим, что в некоторой точке x у функции f(x,y) существует производная 2-го порядка \frac{\partial^2 f(x,y)}{\partial x\ \partial y} , которую точно вычислить либо не удаётся, либо слишком сложно. В этом случае для приближенного нахождения производной функции требуется использовать методы численного дифференцирования.

Изложение метода

Рассмотрим формулу \frac{\partial^2 f(x,y)}{\partial x\ \partial y} =(f_x')_y'. Сведем задачу нахождения смешанной производной по двум разным переменным к задачам нахождения производной по одной переменной. Производную по одной переменной будем находить следующим образом - f'(x)=\frac{f(x+h) - f(x-h)}{2h}. Получается что для нахождения смешанной производной достаточно найти три одномерные производные и вычислить значение исходной функции в четырех точках.

Для начала найдем две производные по y в точках M(x_0+h_x,Y_0) и N(x_0-h_x,y_0)
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}
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}

Затем найдем искомую производную по формуле f'(x_0)=\frac{f(x_0+h_x) - f(x_0-h_x)}{2h_x}=\frac{f(M)-f(N)}{2h_x}

Примеры работы метода

1)f(x)=sin(x)sin(y). Результаты приведены в таблице.

Значение h_x Значение h_y Относительная ошибка
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++.

Видно, что при слишком малом шаге полученные значения неадекватны.

Личные инструменты