Русская Википедия:Коэффициенты формул численного дифференцирования
В математике для приближённого вычисления производных заданной таблично функции можно искать выражение значений производных через известные значения функции с помощью подходящего набора коэффициентов. Для этого можно использовать различные интерполяционные формулы или метод неопределённых коэффициентов.
Равноотстоящие узлы
Пусть <math>x_0</math> — точка, в которой необходимо вычислить производные достаточно гладкой функции <math>f</math>, <math>x_k = x_0 + kh</math> — сетка равноотстоящих узлов с шагом <math>h</math> и известны значения функции <math>f</math> в этих узлах. В этом случае можно выразить формулы численного дифференцирования непосредственно через значения функции <math>f</math> с помощью интерполяционной формулы Лагранжа. Такие формулы называются также безразностными, так как не требуют вычисления конечных или разделённых разностейШаблон:Sfn.
В зависимости от расположения точки <math>x_0</math> в сетке узлов (слева, справа или посередине) различают соответственно коэффициенты, вычисленные «вперёд», «назад» и симметричные коэффициенты.
Симметричные коэффициенты
Для получения симметричных коэффициентов число узлов в сетке должно быть нечётным. Тогда порядок погрешности приближения будет чётным числом.
Порядок производной | Порядок погрешности | −5 | −4 | −3 | −2 | −1 | 0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | −1/2 | 0 | 1/2 | ||||||||
4 | 1/12 | −2/3 | 0 | 2/3 | −1/12 | |||||||
6 | −1/60 | 3/20 | −3/4 | 0 | 3/4 | −3/20 | 1/60 | |||||
8 | 1/280 | −4/105 | 1/5 | −4/5 | 0 | 4/5 | −1/5 | 4/105 | −1/280 | |||
2 | 2 | 1 | −2 | 1 | ||||||||
4 | −1/12 | 4/3 | −5/2 | 4/3 | −1/12 | |||||||
6 | 1/90 | −3/20 | 3/2 | −49/18 | 3/2 | −3/20 | 1/90 | |||||
8 | −1/560 | 8/315 | −1/5 | 8/5 | −205/72 | 8/5 | −1/5 | 8/315 | −1/560 | |||
3 | 2 | −1/2 | 1 | 0 | −1 | 1/2 | ||||||
4 | 1/8 | −1 | 13/8 | 0 | −13/8 | 1 | −1/8 | |||||
6 | −7/240 | 3/10 | −169/120 | 61/30 | 0 | −61/30 | 169/120 | −3/10 | 7/240 | |||
4 | 2 | 1 | −4 | 6 | −4 | 1 | ||||||
4 | −1/6 | 2 | −13/2 | 28/3 | −13/2 | 2 | −1/6 | |||||
6 | 7/240 | −2/5 | 169/60 | −122/15 | 91/8 | −122/15 | 169/60 | −2/5 | 7/240 | |||
5 | 2 | −1/2 | 2 | −5/2 | 0 | 5/2 | −2 | 1/2 | ||||
4 | 1/6 | −3/2 | 13/3 | −29/6 | 0 | 29/6 | −13/3 | 3/2 | −1/6 | |||
6 | −13/288 | 19/36 | −87/32 | 13/2 | −323/48 | 0 | 323/48 | −13/2 | 87/32 | −19/36 | 13/288 | |
6 | 2 | 1 | −6 | 15 | −20 | 15 | −6 | 1 | ||||
4 | −1/4 | 3 | −13 | 29 | −75/2 | 29 | −13 | 3 | −1/4 | |||
6 | 13/240 | −19/24 | 87/16 | −39/2 | 323/8 | −1023/20 | 323/8 | −39/2 | 87/16 | −19/24 | 13/240 |
Например, третья производная с погрешностью второго порядка вычисляется как
- <math>f(x_0) = \frac{-\frac{1}{2}f(x_{-2}) + f(x_{-1}) -f(x_{+1}) + \frac{1}{2}f(x_{+2})}{h^3} + O\left(h^2 \right)~.</math>
Коэффициенты вперёд
Порядок производной | Порядок погрешности | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | −1 | 1 | |||||||
2 | −3/2 | 2 | −1/2 | |||||||
3 | −11/6 | 3 | −3/2 | 1/3 | ||||||
4 | −25/12 | 4 | −3 | 4/3 | −1/4 | |||||
5 | −137/60 | 5 | −5 | 10/3 | −5/4 | 1/5 | ||||
6 | −49/20 | 6 | −15/2 | 20/3 | −15/4 | 6/5 | −1/6 | |||
2 | 1 | 1 | −2 | 1 | ||||||
2 | 2 | −5 | 4 | −1 | ||||||
3 | 35/12 | −26/3 | 19/2 | −14/3 | 11/12 | |||||
4 | 15/4 | −77/6 | 107/6 | −13 | 61/12 | −5/6 | ||||
5 | 203/45 | −87/5 | 117/4 | −254/9 | 33/2 | −27/5 | 137/180 | |||
6 | 469/90 | −223/10 | 879/20 | −949/18 | 41 | −201/10 | 1019/180 | −7/10 | ||
3 | 1 | −1 | 3 | −3 | 1 | |||||
2 | −5/2 | 9 | −12 | 7 | −3/2 | |||||
3 | −17/4 | 71/4 | −59/2 | 49/2 | −41/4 | 7/4 | ||||
4 | −49/8 | 29 | −461/8 | 62 | −307/8 | 13 | −15/8 | |||
5 | −967/120 | 638/15 | −3929/40 | 389/3 | −2545/24 | 268/5 | −1849/120 | 29/15 | ||
6 | −801/80 | 349/6 | −18353/120 | 2391/10 | −1457/6 | 4891/30 | −561/8 | 527/30 | −469/240 | |
4 | 1 | 1 | −4 | 6 | −4 | 1 | ||||
2 | 3 | −14 | 26 | −24 | 11 | −2 | ||||
3 | 35/6 | −31 | 137/2 | −242/3 | 107/2 | −19 | 17/6 | |||
4 | 28/3 | −111/2 | 142 | −1219/6 | 176 | −185/2 | 82/3 | −7/2 | ||
5 | 1069/80 | −1316/15 | 15289/60 | −2144/5 | 10993/24 | −4772/15 | 2803/20 | −536/15 | 967/240 |
Например, первая производная с погрешностью третьего порядка и вторая производная с погрешностью второго порядка вычисляются как
- <math>f'(x_0) = \frac{-\frac{11}{6}f(x_0) + 3f(x_{+1}) -\frac{3}{2}f(x_{+2}) +\frac{1}{3}f(x_{+3}) }{h} + O\left(h^3 \right)~, </math>
- <math>f(x_0) = \frac{2f(x_0) - 5f(x_{+1}) + 4f(x_{+2}) - f(x_{+3}) }{h^2} + O\left(h^2 \right)~. </math>
Нетрудно видеть, что коэффициенты для погрешности первого порядка представляют собой биномиальные коэффициенты с меняющимися знаками, что соответствует общей формуле для восходящих конечных разностей.
Коэффициенты назад
Для получения коэффициентов назад необходимо обратить знаки у коэффициентов вперёд для производных нечётных порядков и зеркально отразить таблицу коэффициентов справа налево:
Порядок производной | Порядок погрешности | −5 | −4 | −3 | −2 | −1 | 0 |
---|---|---|---|---|---|---|---|
1 | 1 | −1 | 1 | ||||
2 | 1/2 | −2 | 3/2 | ||||
3 | −1/3 | 3/2 | −3 | 11/6 | |||
2 | 1 | 1 | −2 | 1 | |||
2 | −1 | 4 | −5 | 2 | |||
3 | 1 | −1 | 3 | −3 | 1 | ||
2 | 3/2 | −7 | 12 | −9 | 5/2 | ||
4 | 1 | 1 | −4 | 6 | −4 | 1 | |
2 | −2 | 11 | −24 | 26 | −14 | 3 |
Например, первая производная с погрешностью третьего порядка и вторая производная с погрешностью второго порядка вычисляются как
- <math>f'(x_0) = \frac{\frac{11}{6}f(x_0) - 3f(x_{-1}) +\frac{3}{2}f(x_{-2}) -\frac{1}{3}f(x_{-3}) }{h} + O\left(h^3 \right)~, </math>
- <math>f(x_0) = \frac{2f(x_0) - 5f(x_{-1}) + 4f(x_{-2}) - f(x_{-3}) }{h^2} + O\left(h^2 \right)~. </math>
Произвольная сетка узлов
Для получения коэффициентов для произвольно расположенных узлов <math>x_0,\ldots,x_N</math> удобно использовать метод неопределённых коэффициентовШаблон:Sfn. Для этого значение искомой производной порядка <math>k</math> в точке <math>x_j</math> записывается в виде
- <math> f^{(k)} (x_j) = \sum\limits_{i=0}^N c_i f(x_i) + R(f)~,</math>
где
- <math>c_i</math> — неизвестные коэффициенты,
- <math>R</math> — остаточный член интерполяции.
Коэффициенты <math>c_i</math> подбираются из условия <math>R(f)=0</math>, которое должно выполняться для функций <math>1</math>, <math>x</math>, <math>x^2</math>,..., <math>x^N</math>. Получается следующая система линейных уравнений:
- <math> \left( \begin{array}{cccc}
1 &1 &\ldots &1 \\ x_0 &x_1 &\ldots &x_N \\ \vdots &\vdots &\ddots &\vdots\\ x_0^{k-1} &x_1^{k-1} &\ldots &x_N^{k-1} \\ x_0^k &x_1^k &\ldots &x_N^k \\ x_0^{k+1} &x_1^{k+1} &\ldots &x_N^{k+1} \\ \vdots &\vdots &\ddots &\vdots\\ x_0^N &x_1^N &\ldots &x_N^N \\ \end{array} \right) \left( \begin{array}{c} c_0 \\ c_1 \\ \vdots \\ c_{k-1} \\ c_k \\ c_{k+1} \\ \vdots \\ c_N \end{array} \right) = \left( \begin{array}{c} 0 \\ 0 \\ \vdots \\ 0 \\ k! \\ (k+1)! x_j \\ \vdots \\ N(N-1)\ldots(N-k+1) x_j^{N-k} \end{array} \right)~. </math>
В этом случае погрешность вычислений будет иметь порядок <math>N-k+1</math>.
Матрица системы является матрицей Вандермонда, которая также возникает при решении общей задачи интерполяции многочленами.
Примечания
Литература
Ссылки
См. также