Русская Википедия:Численное дифференцирование
Численное дифференцирование — совокупность методов приближённого вычисления значения производной некоторой функции, заданной таблично или имеющей сложное аналитическое выражение.
Конечные разности
Шаблон:Основная статья Производная функции <math>f</math> в точке <math>x</math> определяется с помощью предела:
- <math> f'(x) = \lim_{h\to0} \frac{f(x+h) - f(x)}{h}. </math>
В числителе дроби под знаком предела стоит конечная разность функции <math>f</math>, в знаменателе — шаг этой разности. Поэтому простейшим методом аппроксимации производной является использование конечных разностей функции <math>f</math> с некоторым достаточно малым шагом <math>h</math>. Например, выражение
- <math> \frac{f(x+h) - f(x)}{h} </math>
приближает производную функции <math>f</math> в точке <math>x</math> с точностью до величины, пропорциональной <math>h</math>. Использование выражения
- <math> \frac{f(x+h) - f(x-h)}{2h} </math>
позволяет сократить ошибку приближения до величины, пропорциональной <math>h^2</math>.
Конечными разностями можно также приближать производные высших порядков.
Интерполяция
Если известны значения функции <math>f</math> в некоторых узлах <math>x_0, x_1, \ldots , x_N</math>, то можно построить интерполяционный полином <math>P_N(x)</math> (например, в форме Лагранжа или в форме Ньютона) и приближенно положить
- <math>f^{(r)}(x)\approx P^{(r)}_N(x), \; 0 \leq r \leq N.</math>
Такие выражения называются формулами численного дифференцирования.
Иногда наряду с приближенным равенством удаётся (например, используя формулу Тейлора) получить точное равенство, содержащее остаточный член <math>R(x)</math>, называемый погрешностью численного дифференцирования:
- <math>f^{(r)}(x)=P^{(r)}_N(x)+R(x), \; 0 \leq r \leq N.</math>
Такие выражения называются формулами численного дифференцирования с остаточными членами. Степень, с которой величина <math>h = \mbox{max} \{ x_i-x_{i-1} \, | \, i = 1,\ldots,N \}</math> входит в остаточный член, называется порядком погрешности формулы численного дифференцирования.
Далее приводятся несколько формул численного дифференцирования с остаточными членами для первой <math>({r=1})</math> и второй <math>({r=2})</math> производных для равноотстоящих узлов с постоянным шагом <math>{h>0}</math>, полученных с использованием формулы Лагранжа:
- <math>r=1, \; N=1</math> (два узла):
- <math>f'(x_0) = \frac{f_1 - f_0}{h} - \frac{h}{2} f(\xi),</math>
- <math>f'(x_1) = \frac{f_1 - f_0}{h} + \frac{h}{2} f(\xi).</math>
- <math>r=1, \; N=2</math> (три узла):
- <math>f'(x_0) = \frac{-3f_0 + 4f_1 - f_2}{2h} + \frac{h^2}{3} f(\xi),</math>
- <math>f'(x_1) = \frac{f_2 - f_0}{2h} - \frac{h^2}{6} f(\xi),</math>
- <math>f'(x_2) = \frac{f_0 - 4f_1 + 3f_2}{2h} + \frac{h^2}{3} f(\xi).</math>
- <math>r=2, \; N=2</math> (три узла):
- <math>f(x_0) = \frac{f_0 - 2f_1 + f_2}{h^2} - hf'(\xi),</math>
- <math>f(x_1) = \frac{f_0 - 2f_1 + f_2}{h^2} - \frac{h^2}{12} f^{(4)}(\xi),</math>
- <math>f(x_2) = \frac{f_0 - 2f_1 + f_2}{h^2} + hf'(\xi).</math>
- <math>r=2, \; N=3</math> (четыре узла):
- <math>f(x_0) = \frac{2f_0 - 5f_1 + 4f_2 - f_3}{h^2} + \frac{11h^2}{12} f^{(4)}(\xi),</math>
- <math>f(x_1) = \frac{f_0 - 2f_1 + f_2}{h^2} - \frac{h^2}{12} f^{(4)}(\xi),</math>
- <math>f(x_2) = \frac{f_1 - 2f_2 + f_3}{h^2} - \frac{h^2}{12} f^{(4)}(\xi),</math>
- <math>f(x_3) = \frac{-f_0 + 4f_1 - 5f_2 + 2f_3}{h^2} + \frac{11h^2}{12} f^{(4)}(\xi).</math>
Здесь <math>f_i = f(x_i)</math>, <math>i = 0,\ldots,N</math>, а <math>\xi</math> — некоторая промежуточная точка между наибольшим и наименьшим из узлов.
В общем случае коэффициенты формул численного дифференцирования можно вычислить для произвольной сетки узлов и любого порядка производной.
Неустранимая погрешность
В формулах численного дифференцирования с постоянным шагом <math>h</math> значения функции <math>f</math> делятся на <math>h^r</math>, где <math>r</math> — порядок вычисляемой производной. Поэтому при малом <math>h</math> неустранимые погрешности в значениях функции <math>f</math> оказывают сильное влияние на результат численного дифференцирования. Таким образом, возникает задача выбора оптимального шага <math>h</math>, так как погрешность собственно метода стремится к нулю при <math>h\to{0}</math>, а неустранимая погрешность растет. В результате общая погрешность, которая возникает при численном дифференцировании, может неограниченно возрастать при <math>h\to{0}</math>. Поэтому задача численного дифференцирования считается некорректно поставленной.
Комплексные числа
Классические приближения конечными разностями содержат неустранимую погрешность и являются плохо обусловленными. Однако, если функция <math>f</math> является голоморфной, принимает вещественные значения на вещественной прямой и может быть оценена в любой окрестности любой вещественной точки комплексной плоскости, то её производная может быть вычислена устойчивыми методами. Например, первую производную можно сосчитать по формуле с комплексным шагом[1]:
- <math>f'(x) = \frac{\mbox{Im}(f(x + ih))}{h} + O \left( h^2 \right),</math>
где <math>i</math> — мнимая единица. Эту формулу можно получить из следующего разложения в ряд Тейлора:
- <math>f(x+ih) = f(x)+ihf'(x)-h^2\frac{f(x)}{2!}-ih^3\frac{f'(x)}{3!}+\ldots.</math>
В общем случае производные произвольного порядка можно вычислить с помощью интегральной формулы Коши:
- <math>f^{(n)}(a) = \frac{n!}{2\pi i} \oint_\gamma \frac{f(z)}{(z - a)^{n+1}} \,\mathrm{d}z.</math>
Интеграл можно вычислять приближённо.
Литература
- Бахвалов Н. С., Жидков Н. П., Кобельков Г. М. Численные методы. — 3-е изд., доп. и перераб. — Шаблон:М: БИНОМ. Лаборатория знаний, 2004. — 636 с., илл. — ISBN 5-94774-175-X.
- Березин, И. С., Жидков Н. П. Методы вычислений. Том I. — 2-е изд., стереотипное – М.: Физматгиз. 1962.
- Мысовских И.П. Лекции по методам вычислений. – М.: Наука. 1982. – 342 с.
Примечания
См. также
Шаблон:Дифференциальное исчисление