Вычисление второй производной по разным переменным
Материал из MachineLearning.
(→Изложение метода) |
(→Примеры работы метода) |
||
Строка 11: | Строка 11: | ||
== Примеры работы метода == | == Примеры работы метода == | ||
1)<tex>f(x)</tex>=<tex>sin(x)sin(y)</tex>. | 1)<tex>f(x)</tex>=<tex>sin(x)sin(y)</tex>. | ||
- | Результаты приведены в таблице. | + | Результаты для точки M(0,0), где значение второй смешанной производной ,подсчитанной аналитически, равно 1, для <tex>h_x=h_y</tex>приведены в таблице. |
::{| border=1 | ::{| border=1 | ||
- | ! Значение <tex>h_x</tex>|| | + | ! Значение <tex>h_x</tex>|| Абсолютная ошибка || Относительная ошибка || |
|- | |- | ||
- | | 1e- | + | | 1e-1 || 0.003328892062 || 0.003328892062 |
|- | |- | ||
- | | 1e- | + | | 1e-3 || 3.33333e-7 || 3.33333e-7 |
|- | |- | ||
- | | 1e- | + | | 1e-5 || 3.3e-11 || 3.3e-11 |
|- | |- | ||
- | | 1e- | + | | 1e-7 || 0 || 0 |
|- | |- | ||
- | | 1e-9 || 0 | + | | 1e-9 || 0 || 0 |
|} | |} | ||
Вычисления проводились в стандартном типе [http://en.wikipedia.org/wiki/Double_precision double] (позволяет хранить 15 значащих десятичных цифр) языка [http://ru.wikipedia.org/wiki/C%2B%2B C++]. | Вычисления проводились в стандартном типе [http://en.wikipedia.org/wiki/Double_precision double] (позволяет хранить 15 значащих десятичных цифр) языка [http://ru.wikipedia.org/wiki/C%2B%2B C++]. | ||
Видно, что при слишком малом шаге полученные значения неадекватны. | Видно, что при слишком малом шаге полученные значения неадекватны. |
Версия 19:45, 20 октября 2008
Содержание |
Введение
Постановка математической задачи
Допустим, что в некоторой точке у функции существует производная 2-го порядка , которую точно вычислить либо не удаётся, либо слишком сложно. В этом случае для приближенного нахождения производной функции требуется использовать методы численного дифференцирования.
Изложение метода
Рассмотрим формулу =. Сведем задачу нахождения смешанной производной по двум разным переменным к задачам нахождения производной по одной переменной. Производную по одной переменной будем находить следующим образом - =. Получается что для нахождения смешанной производной достаточно найти три одномерные производные и вычислить значение исходной функции в четырех точках.
- Для начала найдем две производные по y в точках и
Затем найдем искомую производную по формуле ==
Примеры работы метода
1)=. Результаты для точки M(0,0), где значение второй смешанной производной ,подсчитанной аналитически, равно 1, для приведены в таблице.
Значение Абсолютная ошибка Относительная ошибка 1e-1 0.003328892062 0.003328892062 1e-3 3.33333e-7 3.33333e-7 1e-5 3.3e-11 3.3e-11 1e-7 0 0 1e-9 0 0
Вычисления проводились в стандартном типе double (позволяет хранить 15 значащих десятичных цифр) языка C++.
Видно, что при слишком малом шаге полученные значения неадекватны.