Если процесс непериодический, то в крайних узлах можно вычислять производные по двум соседним точкам, а в остальных узлах - по более точным формулам. Но как показывает опыт, этот способ неэффективен.
Посоветуйте, как лучше решить эту проблему
Собственно, один совет Вам уже дали:
построить интерполяционный полином и дифференцировать его. Единственное, к чему надо относиться осторожно — это к увеличению числа узлов. Вот пример с интерполяцией функции

на отрезке
![$[0;2]$ $[0;2]$](https://dxdy-02.korotkov.co.uk/f/9/1/4/914d9b5355f7276ac0d91fe316c4077c82.png)
по 11 точкам (с шагом

) полиномом 10 степени
Вложение:
Poly10.gif [ 4.39 Кб | Просмотров: 6617 ]
и по 21 точке (с шагом

) полиномом 20 степени
Вложение:
Poly20.gif [ 4.48 Кб | Просмотров: 6617 ]
Сверху — графики функции и интерполяционного многочлена (на отрезке
![$[1{,}5;2]$ $[1{,}5;2]$](https://dxdy-04.korotkov.co.uk/f/f/2/f/f2f41ea4fbe0dcb7ffba767a744eebdf82.png)
), снизу — графики их производных.
Наглядно видно, что вблизи правого конца отрезка с увеличением числа узлов погрешность интерполяции и самой функции, и её производной увеличилась, несмотря на двукратное уменьшение шага.
Другой совет тоже дали:
использовать формулу Тейлора. Только лучше это сделать аккуратнее. Я буду писать

вместо

и

вместо

.
Пусть у нас есть три равноотстоящие точки

с шагом

. Записывая формулу Тейлора в этих точках, получим

то есть,

Далее, например, для

, подставляем

и получаем систему равенств

Первое равенство тривиальное, а из двух других нужно исключить

. Для этого второе равенство умножаем на

и вычитаем третье:

, откуда

что согласуется с тем, что
написал ewert.
Аналогично получаются формулы для

и

, а также формулы при большем числе точек.