Если процесс непериодический, то в крайних узлах можно вычислять производные по двум соседним точкам, а в остальных узлах - по более точным формулам. Но как показывает опыт, этот способ неэффективен.
Посоветуйте, как лучше решить эту проблему
Собственно, один совет Вам уже дали:
построить интерполяционный полином и дифференцировать его. Единственное, к чему надо относиться осторожно — это к увеличению числа узлов. Вот пример с интерполяцией функции
на отрезке
по 11 точкам (с шагом
) полиномом 10 степени
Вложение:
Poly10.gif [ 4.39 Кб | Просмотров: 5956 ]
и по 21 точке (с шагом
) полиномом 20 степени
Вложение:
Poly20.gif [ 4.48 Кб | Просмотров: 5956 ]
Сверху — графики функции и интерполяционного многочлена (на отрезке
), снизу — графики их производных.
Наглядно видно, что вблизи правого конца отрезка с увеличением числа узлов погрешность интерполяции и самой функции, и её производной увеличилась, несмотря на двукратное уменьшение шага.
Другой совет тоже дали:
использовать формулу Тейлора. Только лучше это сделать аккуратнее. Я буду писать
вместо
и
вместо
.
Пусть у нас есть три равноотстоящие точки
с шагом
. Записывая формулу Тейлора в этих точках, получим
то есть,
Далее, например, для
, подставляем
и получаем систему равенств
Первое равенство тривиальное, а из двух других нужно исключить
. Для этого второе равенство умножаем на
и вычитаем третье:
, откуда
что согласуется с тем, что
написал ewert.
Аналогично получаются формулы для
и
, а также формулы при большем числе точек.