41. Постановка задачи. Общая характеристика проблемы численного дифференцирования. Численное дифференцирование с использованием конечно-разностных отношений.

 

Численное дифференцирование является одной из важнейших вычислительных операций. Это объясняется тем, что достаточно много вычислительных алгоритмов предполагает вычисление и использование производных различного порядка от исследуемых функций. При этом довольно распространенной является ситуация, когда аналитическое задание функции, производные которой требуется найти, либо слишком сложное, либо вообще отсутствует, что не позволяет использовать аппарат аналитического дифференцирования и остается лишь возможность численного нахождения производных.

 

 

Пусть на отрезке [a, b] в узлах одномерной сетки

hx ={xi  / xi = xi–1 + hi, hi > 0, i = 1, 2, 3, …, n; x0 = a, xn = b}

заданы yi = f(xi), i = 0, 1, 2, …, n – значения дифференцируемой на этом отрезке функции f(x).

 

Для упрощения последующих записей будем считать, что сетка hx равномерная.

 

Поставим задачу вычисления приближенных значений производной функции f(x) в узлах сетки hx. Для ее решения можно воспользоваться определением производной, в соответствии с которым производная дифференцируемой в точке x функции f(x) может быть определена по правилу

                                                          (4.2.1)

Производные в точках a и b (граничных точках отрезка) могут быть в этом случае определены как односторонние пределы:

                                                     (4.2.2)

Здесь Dx ® +0 означает, что Dx стремится к нулю, оставаясь при этом больше нуля.

 

На основании (4.2.1) и (4.2.2) приближенные значения производных
в узлах сетки
hx могут быть вычислены с помощью левостороннего, правостороннего и центрального конечно-разностных отношений соответственно:

                                                     (4.2.3)

                                              (4.2.4)

                                           (4.2.5)

По формулам (4.2.3) и (4.2.4) определяют так называемые левостороннюю и правостороннюю разностные производные, по формуле (4.2.5) – центральную разностную производную.

 

Аналогично могут быть вычислены приближенные значения производных второго и более высоких порядков. Так, для определения производной второго порядка для i = 1, 2, …, n – 1 может быть использована следующая приближенная формула:

                                                  (4.2.6)

 

Пусть теперь d – абсолютная погрешность приведенных выше простейших формул численного дифференцирования. Здесь имеется в виду погрешность, возникающая при аппроксимации производной соответствующим конечно-разностным отношением, другими словами, погрешность метода. Для простоты при оценке погрешности аппроксимации сетку hx будем считать равномерной, с шагом h. Тогда для (4.2.3) и (4.2.4) имеет место оценка

                                                                                            (4.2.7)

где M2 – максимум модуля производной второго порядка функции f(x) на отрезке [a, b].

 

Вывод: ; ; ;

, таким образом

 

Согласно (4.2.7) формулы (4.2.3) и (4.2.4) имеют погрешность первого порядка малости по h и точны (d = 0) для полиномов до первого порядка включительно.

 

Для формулы (4.2.5) оценка погрешности

                                                                                           (4.2.8)

где M3 – максимум модуля производной третьего порядка функции f(x) на отрезке [a, b].

 

Согласно (4.2.8) формула (4.2.5) имеет погрешность второго порядка малости по h и точна (d = 0) для полиномов до второго порядка включительно.

 

Из приведенных выше теоретических оценок погрешности метода для формул (4.2.3)–(4.2.5) следует, что при стремлении шага сетки h к нулю погрешность получаемого приближенного значения производной также будет стремиться к нулю. Однако на практике этого не происходит, напротив, при h ® 0 погрешность получаемых результатов численного дифференцирования может неограниченно возрастать. Это происходит потому, что в соотношениях (4.2.7) и (4.2.8) оценивается только та часть погрешности, которая имеет место из-за замены производной конечно-разностным отношением и называется погрешностью аппроксимации. Другая часть результирующей погрешности обусловлена погрешностью производимых вычислительных операций над имеющими ненулевую погрешность данными значениями функции f(x) в узлах сетки hx.

 

Действительно, пусть абсолютная погрешность yi, i = 0, 1, 2, …, n может быть оценена сверху числом s > 0. Тогда в результате вычисления конечно-разностного отношения, например, по формуле (4.2.3) будет
получен результат, имеющий абсолютную вычислительную погрешность, которая может быть оценена сверху числом 2
s / h. Значение s не зависит от h, и при h ® 0 оценка 2s / h неограниченно возрастает. Аналогично может быть проанализировано поведение вычислительной погрешности при определении конечно-разностных отношений по формулам (4.2.4) и (4.2.5).

 

Другими словами, при наличии ненулевой погрешности данных yi,
i = 0, 1, 2, …, n, представляющих собой значения функции f(x) в узлах сетки hx, суммарная погрешность приближенного расчета производных (складывается из погрешности аппроксимации и вычислительной погрешности) с помощью конечно-разностных отношений (4.2.3) – (4.2.5) может неограниченно возрастать при стремлении шага сетки к нулю. В связи с отмеченными свойствами погрешности операция численного дифференцирования в вычислительном отношении является некорректной.

 

С практической точки зрения при вычислениях по формулам
(4.2.3) – (4.2.5) необходимо стремиться к тому, чтобы вычислительная погрешность не превосходила погрешности аппроксимации. Применительно к формуле (4.2.3) это означает, что должно выполняться неравенство

(2s / h) £ (M2h / 2).                                                                             (4.2.9)

 

Это неравенство может служить основанием для задания s – требуемой точности вычисления значений функции f(x) в узлах сетки hx, если шаг h сетки задан, или для определения минимально допустимого значения h, если значение s не может быть изменено. Например, из (4.2.9) следует, что s не должно превышать значения M2h2 / 4.

 

В целом организация вычислений приближенного значения производной с использованием одной из формул (4.2.3) – (4.2.5) очевидна и не вызывает затруднений. Вместе с тем необходимо отметить, что эти простейшие формулы численного дифференцирования позволяют вычислять приближенное значение производной f(x) только в узлах сетки hx и не позволяют производить вычисления в произвольной точке x* Î (a, b), не совпадающей ни с одним из этих узлов. Единственное, что можно предпринять для произвольной точки x* Î (a, b), это проинтерполировать по двум (или более) соседним с x* узлам сетки hx те приближенные значения производных, которые будут найдены в этих узлах по одной из формул (4.2.3) – (4.2.5). При этом нет смысла добиваться большей точности интерполирования, чем точность приближенного дифференцирования.