Если процесс непериодический, то в крайних узлах можно вычислять производные по двум соседним точкам, а в остальных узлах - по более точным формулам. Но как показывает опыт, этот способ неэффективен.
Посоветуйте, как лучше решить эту проблему
Собственно, один совет Вам уже дали:
построить интерполяционный полином и дифференцировать его. Единственное, к чему надо относиться осторожно — это к увеличению числа узлов. Вот пример с интерполяцией функции
![$f(x)=\frac 1{1+100x^2}$ $f(x)=\frac 1{1+100x^2}$](https://dxdy-03.korotkov.co.uk/f/e/3/4/e34b99ed63ec541e9d72b886f51f6f0e82.png)
на отрезке
![$[0;2]$ $[0;2]$](https://dxdy-02.korotkov.co.uk/f/9/1/4/914d9b5355f7276ac0d91fe316c4077c82.png)
по 11 точкам (с шагом
![$0{,}2$ $0{,}2$](https://dxdy-01.korotkov.co.uk/f/c/c/1/cc10852309efe96563e0261e09c225fa82.png)
) полиномом 10 степени
Вложение:
Poly10.gif [ 4.39 Кб | Просмотров: 6391 ]
и по 21 точке (с шагом
![$0{,}1$ $0{,}1$](https://dxdy-04.korotkov.co.uk/f/f/7/b/f7bc8cdc71b23fdabc7bfca8c0ba1a7382.png)
) полиномом 20 степени
Вложение:
Poly20.gif [ 4.48 Кб | Просмотров: 6391 ]
Сверху — графики функции и интерполяционного многочлена (на отрезке
![$[1{,}5;2]$ $[1{,}5;2]$](https://dxdy-04.korotkov.co.uk/f/f/2/f/f2f41ea4fbe0dcb7ffba767a744eebdf82.png)
), снизу — графики их производных.
Наглядно видно, что вблизи правого конца отрезка с увеличением числа узлов погрешность интерполяции и самой функции, и её производной увеличилась, несмотря на двукратное уменьшение шага.
Другой совет тоже дали:
использовать формулу Тейлора. Только лучше это сделать аккуратнее. Я буду писать
![$y_i$ $y_i$](https://dxdy-03.korotkov.co.uk/f/2/b/4/2b442e3e088d1b744730822d18e7aa2182.png)
вместо
![$f(x_i)$ $f(x_i)$](https://dxdy-02.korotkov.co.uk/f/9/2/a/92a2f148344252edc0cc4112ae13168882.png)
и
![$h$ $h$](https://dxdy-03.korotkov.co.uk/f/2/a/d/2ad9d098b937e46f9f58968551adac5782.png)
вместо
![$\Delta x$ $\Delta x$](https://dxdy-04.korotkov.co.uk/f/3/9/1/3919bbc84b8079e27194efe99a1f6a8082.png)
.
Пусть у нас есть три равноотстоящие точки
![$x_0,x_1,x_2$ $x_0,x_1,x_2$](https://dxdy-04.korotkov.co.uk/f/7/d/4/7d4d3a6ae60a31f15ca384cb0b2a8ed782.png)
с шагом
![$h$ $h$](https://dxdy-03.korotkov.co.uk/f/2/a/d/2ad9d098b937e46f9f58968551adac5782.png)
. Записывая формулу Тейлора в этих точках, получим
![$$f(x)=f(x_i)+\frac{f'(x_i)}{1!}(x-x_i)+\frac{f''(x_i)}{2!}(x-x_i)^2+o\left((x-x_i)^2\right),\quad i=0,1,2,$$ $$f(x)=f(x_i)+\frac{f'(x_i)}{1!}(x-x_i)+\frac{f''(x_i)}{2!}(x-x_i)^2+o\left((x-x_i)^2\right),\quad i=0,1,2,$$](https://dxdy-02.korotkov.co.uk/f/1/1/b/11b34be98d6e28d81a25657efc50d1a782.png)
то есть,
![$$f(x)=y_i+y'_i(x-x_i)+\frac{y''_i}2(x-x_i)^2+o\left((x-x_i)^2\right),\quad i=0,1,2.$$ $$f(x)=y_i+y'_i(x-x_i)+\frac{y''_i}2(x-x_i)^2+o\left((x-x_i)^2\right),\quad i=0,1,2.$$](https://dxdy-03.korotkov.co.uk/f/e/d/c/edc828b4568f19d12fa845c25654057182.png)
Далее, например, для
![$i=0$ $i=0$](https://dxdy-03.korotkov.co.uk/f/6/0/9/60931310d3828bd99080883e02a873f482.png)
, подставляем
![$x=x_0,x_1,x_2$ $x=x_0,x_1,x_2$](https://dxdy-02.korotkov.co.uk/f/d/6/5/d653fada778286307961013f6a2c4f1482.png)
и получаем систему равенств
![$$\begin{cases}y_0=y_0,\\y_1=y_0+y'_0h+\frac{y''_0}2h^2+o(h^2),\\y_2=y_0+2y'_0h+2y''_0h^2+o(h^2).\end{cases}$$ $$\begin{cases}y_0=y_0,\\y_1=y_0+y'_0h+\frac{y''_0}2h^2+o(h^2),\\y_2=y_0+2y'_0h+2y''_0h^2+o(h^2).\end{cases}$$](https://dxdy-04.korotkov.co.uk/f/b/b/a/bba3afe7dad1e1beb8dd854b1d9bf24282.png)
Первое равенство тривиальное, а из двух других нужно исключить
![$y''_0$ $y''_0$](https://dxdy-01.korotkov.co.uk/f/c/4/4/c441a83db219ea615245338957028dc582.png)
. Для этого второе равенство умножаем на
![$4$ $4$](https://dxdy-03.korotkov.co.uk/f/e/c/f/ecf4fe2774fd9244b4fd56f7e76dc88282.png)
и вычитаем третье:
![$4y_1-y_2=3y_0+2y'_ih+o(h^2)$ $4y_1-y_2=3y_0+2y'_ih+o(h^2)$](https://dxdy-04.korotkov.co.uk/f/b/d/4/bd4fc641e98a37cb3f5c46d7c73c429a82.png)
, откуда
![$$y'_0=\frac{-3y_0+4y_1-y_2}{2h}+o(h),$$ $$y'_0=\frac{-3y_0+4y_1-y_2}{2h}+o(h),$$](https://dxdy-02.korotkov.co.uk/f/1/1/a/11a44af81563d69ab2f9e16839a6b37f82.png)
что согласуется с тем, что
написал ewert.
Аналогично получаются формулы для
![$y'_1$ $y'_1$](https://dxdy-04.korotkov.co.uk/f/7/0/4/7048dc6788cabf94711060a3ba020cfd82.png)
и
![$y'_2$ $y'_2$](https://dxdy-04.korotkov.co.uk/f/f/0/6/f06018f4818b33169ceabe382cd613b282.png)
, а также формулы при большем числе точек.