Русская Википедия:Численное дифференцирование

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Численное дифференцирование — совокупность методов приближённого вычисления значения производной некоторой функции, заданной таблично или имеющей сложное аналитическое выражение.

Конечные разности

Шаблон:Основная статья Производная функции <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>

Интеграл можно вычислять приближённо.

Литература

Примечания

Шаблон:Примечания

См. также

Шаблон:Дифференциальное исчисление

Шаблон:Rq