6. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ ФУНКЦИЙ К численному (приближенному) дифференцированию чаще всего прибегают, когда приходится вычислять производные от функций, заданных таблично, или, когда непосредственное дифференцирование затруднительно. Для вывода формул численного дифференцирования заменяют функцию f ( x) , заданную на отрезке a; b интерполирующей функцией P( x) (чаще всего полиномом), а затем полагают f ( x) P( x) при x a; b . Аналогично поступают при нахождении производных высших порядков. Если для интерполирующей функции P( x) известна погрешность R( x) f ( x) P( x) , то погрешность производной P ( x) выражается формулой: r ( x) f ( x) P ( x) R( x) , т. е. погрешность производной интерполирующей функции равна производной от погрешности этой функции. То же справедливо и для производных высших порядков. Вообще говоря, численное дифференцирование представляет собой операцию менее точную, чем интерполирование. Действительно, близость друг другу ординат двух кривых y f ( x) и y P( x) на отрезке a; b еще не гарантирует близости на этом отрезке их производных f ( x) и P ( x) , т. е. малого расхождения угловых коэффициентов касательных к рассматриваемым кривым при одинаковых значениях аргумента (рис. 8). 6.1. Численное дифференцирование на основе первой интерполяционной формулы Ньютона Пусть функция y f ( x) , задана в равноотстоящих точках xi , i 0, n отрезка a; b с помощью значений y i f ( xi ) , i 0, n . Для нахождения производных y f ( x) , y f ( x) и т. д. функцию приближенно заменим интерполяционным полиномом Ньютона, построенным для узлов xi , i 0, k , k n : y ( x ) y 0 q y 0 q(q 1) 2 q(q 1)(q 2) 3 q(q 1)(q 2)(q 3) 4 y0 y0 y0 2! 3! 4! x x0 q , xi 1 xi h , i 0,1,2, . h Преобразуем этот полином: q 3 3q 2 2q 3 q 3 3q 2 2q q 4 6q 3 11q 2 6q y ( x) y 0 qy 0 y0 6 6 24 Так как dy dy dq 1 dy , dx dq dx h dq то 1 2q 1 2 3q 2 6q 2 3 2q 3 9q 2 11q 3 4 y ( x) (y 0 y0 y0 y0 h 2 6 12 3 ). Аналогично: тогда y ( x) y ( x ) d ( y ) d ( y ) dq 1 d ( y ) , dx dq dx h dq 1 2 6q 2 18q 11 4 3 ( y ( q 1) y y0 0 0 h2 12 ). Таким же способом можно вычислить и производные функции любого порядка. З а м е ч а н и е 1 . При нахождении производных y ( x) , y ( x) , … в фиксированной точке x в качестве x0 следует выбирать ближайшее табличное значение аргумента. З а м е ч а н и е 2 . Формулы численного дифференцирования значительно упрощаются, если исходным значением x оказывается один из узлов таблицы. Так как в этом случае каждое табличное значение можно считать за начальное, то положим x x0 , q 0 . Тогда: 2 y 0 3 y 0 4 y 0 1 y ( x0 ) ( y 0 h 2 3 4 y ( x ) 1 2 11 4 3 ( y y y0 0 0 h2 12 ), ). З а м е ч а н и е 3 . При вычислениях на компьютере производные выражают не через конечные разности, а непосредственно через значения функции. Оценка погрешностей. Если Pn x — интерполяционный полином Ньютона, содержащий разности y0 , 2 y0 , , n y0 и Rn ( x ) y ( x ) Pn ( x) — соответствующая погрешность, то поRn ( x ) y ( x ) Pn( x ) . грешность в определении производной q(q 1) (q n) n 1 y () , Как это было получено выше, Rn ( x ) hn 1 (n 1)! где — некоторое промежуточное число между значениями x0 , x1, , xn , x . Поэтому, предполагая, что y ( x ) C n 2 [a, b] , получим: dRn ( x ) dq hn ( n 1) d d Rn ( x ) () q(q 1) (q n ) q(q 1) (q n ) y ( n 1) () . y dq dx (n 1)! dq dq Для оценки погрешности в узле таблицы при x x0 , q 0 , имея в виду, что hn ( n 1) (q n)q 0 y () . n 1 Так как y ( n 1) () во многих случаях трудно оценить, то при достаточно малом d q(q 1) dq (1) n ! , получим выражение: Rn ( x0 ) (1)n n n 1y 0 () n 1 . h приближенно полагают y h n 1 y0 n R ( x ) ( 1) Тогда . n 0 h(n 1) ( n 1) Аналогично находится погрешность Rn ( x0 ) для второй производной y ( x0 ) . 4 6.2. Численное дифференцирование на основе интерполяционной формулы Лагранжа Пусть x0 , x1, , xn — равноотстоящие узлы, т. е. xi 1 xi h , i 0, n 1 и для функции y y ( x) известны значения y i y ( xi ) , i 0, n. Построим интерполяционный полином Лагранжа: ( 1)n i y i q(q 1) (q n) Ln ( x ) . i !( n i )! q i i 0 n Отсюда, учитывая, что где q x x0 , h dy dy dq 1 dy , получаем: dx dq dx h dq 1 n (1)n i y i d q(q 1) (q n) y ( x ) Ln ( x ) . h i 0 i !(n 1)! dq q i Аналогично могут быть найдены производные высших порядков. rn ( x ) Rn ( x ) y ( x ) Ln ( x ) Для оценки погрешности воспользуемся известной формулой погрешности полинома Лагранжа: y ( n 1) ( x ) Rn ( x ) y ( x ) Ln ( x ) ( x ) , (n 1)! где — промежуточное значение между точками x0 , x1, , xn , x . Предполагая, что y ( x) C 2 a, b , выводим: rn ( x ) Rn ( x ) 1 ( n 1) d y ( n 1) () . () ( x ) ( x ) y (n 1)! dx d y ( n 1) () — ограничена, и, учитывая формулу (1), dx получим погрешность производной в узлах (заметим, что здесь q 0 , вернее ( xi ) ): Предполагая, что ( 1)n i i !(n i )! h n ( n 1) rn ( xi ) Rn ( xi ) y () , (n 1)! где — промежуточное значение между x0 , x1, , xn . 5