§ 6 . Численное дифференцирование.
Пусть на промежутке [a,b] дана некоторая система точек x0 , x1 , ... ,xn и в этих точках даны значения некоторой функции f (x) . Ставится задача о вычислении производных от этой функции в какой-либо точке на промежутке [a,b], при условии, конечно, что функция дифференцируема нужное число раз. Эту задачу можно решить с помощью интерполяционного многочлена. Действительно, если Pn(x) - интерполяционный многочлен степени n для функции f (x), построенный по точкам x0 , x1 , ... ,xn , то можно считать производную от функции f (x) приближенно равной производной от многочлена Pn(x) . Рассмотрим некоторые наиболее часто употребляющиеся формулы.
Пусть точки x0 , x1 , ... ,xn расположены на промежутке равномерно: xi+1=xi+h, где h - постоянный шаг. Построим таблицу конечных разностей для f (x).
-
x
y
y
2y
ny
x0
y0
y0
2y0
...
n y0
x1
y1
y1
2y1
...
x2
y2
y2
...
...
...
...
2yn-2
xn-1
yn-1
yn-1
xn
yn
Пусть мы хотим найти первую производную функции f (x) в точке . Запишем интерполяционный многочлен для начала таблицы:
Здесь , поэтому при дифференцировании по x появится множитель .Таким образом, можно записать
Пусть у нас интерполяционный многочлен имет 1-ю степень, т.е. .
Тогда . (6.1)
Эта формула называется первой разностной производной вперед. Для вычисления первой производной функции f (x) в точке x1 можно снова воспользоваться многочленом .
Получим (6.2).
Эта формула называется первой разностной производной назад.
Рассмотрим погрешность каждой из полученных формул. Для погрешности интерполирования многочленом 1-й степени имеет место оценка : , т.е. . Но t<1 , следовательно, ошибка интерполирования является величиной порядка h2 . Тогда ошибка производной будет величиной порядка h . Таким образом, мы получили формулы для первой производной первого порядка точности. Получим теперь для формулу второго порядка точности. Возьмем интерполяционный полином для начала таблицы 2-го порядка: . Запишем приближенно 1-ю производную для f (x) в точке x0 : , или , т.е.
. Таким образом , мы получили формулу : . (6.3)
Это выражение называется односторонней первой разностной производной второго порядка точности. Действительно, ошибка интерполирования многочленом 2-го порядка оценивается величиной , где M3 - положительная постоянная, ограничивающая сверху на промежутке [x0 , x2] длины 2h .
Теперь рассмотрим центральную разностную производную 1-го порядка. Для этого запишем интерполяционный многочлен Стирлинга 1-й степени
. Этот многочлен построен по узлам . Продифференцируем этот многочлен: . Таким образом, можно положить . (6.4)
Погрешность этой формулы будет .
Теперь рассмотрим 2-ю производную. Возьмем интерполяционный многочлен для начала таблицы 2-й степени: . Продифференцировав его дважды, получим . Т.е. можно положить . Погрешность интерполирования снова оценивается величиной , следовательно, погрешность 2-й производной будет величиной O(h). Чтобы получить для 2-й производной формулу более высокого порядка точности, рассмотрим 3 точки x-1 , x0 , x1 . Запишем интерполяционный многочлен Стирлинга 2-го порядка: . Для этого многочлена погрешность, вообще говоря, оценивается величиной , но если мы это выражение дважды продифференцируем и положим t=0, то член, дающий оценку погрешности для производной обратится в 0, следовательно, нам нужно рассмотреть погрешность интерполяционного многочлена 3-й степени. Ее погрешность оценивается величиной . Для функции f(x) 2-я производная в точке x0 может быть определена по формуле . (6.5)
Погрешность этой формулы будет величиной O(h2).