Численное дифференцирование.

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

Задача численного дифференцирования состоит в приближенном вычислении производных функции f(x) по заданным в конечном числе точек значениям этой функции.

Один из универсальных способов построения формул численного дифференцирования состоит в том, что по значениям функции f(x) в некоторых узлах x0 , x1 , ... , xN строят интерполяционный полином PN(x) (обычно в форме Лагранжа) и приближенно полагают
f (r)(x)P(r)N(x), 0 ≤ r ≤ N (4.1)

В ряде случаев наряду с приближенным равенством удается (например, используя формулу Тейлора) получить точное равенство, содержащее остаточный член R (погрешность численного дифференцирования):

f (r)(x) = P(r)N(x) + R, 0 ≤ r ≤ N

Такие формулы называются формулами численного дифференцирования с остаточными членами. Степень, с которой входит величина (hi=xi - xi-1) в остаточный член, называется порядком погрешности формулы численного дифференцирования. Формулы с отброшенными остаточными членами называются просто формулами численного дифференцирования.

Ниже приводятся несколько распространенных формул численного дифференцирования с остаточными членами для первой (r=1) и второй (r=2) производных в узлах, расположенных с постоянным шагом hih > 0 [6, стр.58]:

r=1, N=1 (два узла):
f '(x0 ) = (f1 - f0 )/h - hf ''(ξ)/2 (4.2)
f '(x1 ) = (f1 - f0 )/h + hf ''(ξ)/2 (4.3)

r=1, N=2 (три узла):
f '(x0 ) = (-3f0 + 4f1 - f2)/2h + h2f '''(ξ)/3 (4.4)
f '(x1 ) = (f2 - f0)/2h - h2f '''(ξ)/6 (4.5)
f '(x2 ) = (f0 - 4f1 + 3f2)/2h + h2f '''(ξ)/3 (4.6)

r=2, N=2 (три узла):
f ''(x0 ) = (f0 - 2f1 + f2 )/h2 - hf '''(ξ) (4.7)
f ''(x1 ) = (f0 - 2f1 + f2 )/h2 - h2f (4)(ξ)/12 (4.8)
f ''(x2 ) = (f0 - 2f1 + f2 )/h2 + hf '''(ξ) (4.9)

r=2, N=3 (четыре узла):
f ''(x0 ) = (2f0 - 5f1 + 4f2 - f3 )/h2 + 11h2f (4)(ξ)/12 (4.10)
f ''(x1 ) = (f0 - 2f1 + f2 )/h2 - h2f (4)(ξ)/12 (4.11)
f ''(x2 ) = (f0 - 2f1 + f3 )/h2 - h2f (4)(ξ)/12 (4.12)
f ''(x3 ) = (-f0 + 4f1 - 5f2 + 2f3 )/h2 + 11h2f (4)(ξ)/12 (4.13)

В приведенных формулах ξ есть некоторая точка (своя для каждой из формул) из интервала (x0 , xN). Остаточные члены этих формул находятся с помощью формулы Тейлора. При этом предполагается, что на отрезке [x0 , xN] у функции f(x) непрерывна производная, через которую выражается остаточный член. При четном N в среднем узле для четной производной порядок точности формулы на единицу больше, чем в остальных узлах. Поэтому рекомендуется по возможности использовать формулы численного дифференцирования с узлами, расположенными симметрично относительно той точки, в которой ищется производная.

ЗАДАЧА 4.1 Вывести формулы (4.2)-(4.13).

Оценка погрешности общей формулы численного дифференцирования (4.1) выражается в виде неравенства через максимум модуля производной f(k+1)(x) при любых r, k, N, таких, что 0rkN. Ограничиваясь рассмотрением случая расположения узлов с постоянным шагом h, сформулируем результат в виде теоремы (без доказательства).

ТЕОРЕМА 4.1 [6, стр.61] Пусть xi=x0 + ih, h>0, i=0, ..., N и функция f(x) Ck+1[x0,xN]. Тогда существуют такие константы crkN, зависящие только от r, k, N и не зависящие от шага h и функции f(x), что
(4.14)
где PN(x) - интерполяционный полином Лагранжа для функции f(x), 0rkN.

Оценка (4.14) полезна тем, что она устанавливает скорость убывания погрешности относительно h на всем отрезке [x0 , xN] при фиксированных параметрах r, k, N.

В формулах численного дифференцирования с постоянным шагом h значения функции f(x) делятся на hr, где r-порядок вычисляемой производной. Поэтому при малом h неустранимые погрешности в значениях функции f(x) оказывают сильное влияние на результат численного дифференцирования. Таким образом, возникает задача выбора оптимального шага h, так как погрешность собственно метода стремится к нулю при h → 0, а неустранимая погрешность растет. В результате общая погрешность, возникающая при численном дифферецировании, может неограниченно возрастать при h → 0. Поэтому операцию численного дифференцирования называют некорректной.

ЗАМЕЧАНИЕ 4.1 Другим способом нахождения производной табличной функции является использование формулы производной интерполяционного кубического сплайна, построенного по этой таблице. В этом случае производная вычисляется на каждом отрезке [xi-1 , xi], i=1, ..., N, по формуле (3.10), с использованием вектора (m0 ,..., mN )T, найденного методом прогонки как решение системы уравнений (3.13).