‹-- Назад

Приближённое вычисление производных

При численном решении задач, связанных с математическими моделями, в которых используются производные (а к таким моделям приводят почти все физические и технические задачи, описывающие процессы, разворачивающиеся во времени), эти производные $ f'(x),f''(x),\dots$ часто приходится вычислять приближённо, исходя только из того, что имеется некоторая процедура, вычисляющая значения функции $ f(x)$, поскольку аналитические формулы, задающие $ f'(x),f''(x),\dots$, неизвестны. Обсудим некоторые методы, позволяющие вычислить производные приближённо по значениям функции $ f(x)$.

Для приближённого нахождения $ f'(x)$ в заданной точке $ x_0$ часто поступают следующим образом. Исходя из того, что при достаточно малых приращениях $ h={\Delta}x$ разностное отношение $ \dfrac{{\Delta}f}{{\Delta}x}=\dfrac{f(x_0+h)-f(x_0)}{h}$ мало отличается от своего предельного значения, равного производной $ f'(x_0)$,15 мы можем приближённо заменить $ f'(x_0)$ этим разностным отношением с малым $ h$, полагая $ h$, например, равным $ 0.0001$ или $ 0.00001$. Таким образом, получаем приближённую формулу

$\displaystyle f'(x_0)\approx\dfrac{f(x_0+h)-f(x_0)}{h}.$

Правая часть этой формулы при $ h>0$ называется разностной производной вправо (или вперёд) с шагом $ h$.

Если же взять отрицательное приращение $ {\Delta}x=-h$, $ h>0$, то аналогично получаем, что

$\displaystyle f'(x_0)\approx\dfrac{f(x_0)-f(x_0-h)}{h}.$

Правая часть этой формулы при $ h>0$ называется разностной производной влево (или назад) с шагом $ h$.

Согласно геометрическому смыслу производной, при замене производной $ f'(x_0)$ разностной производной вправо или разностной производной влево, мы заменяем угол $ {\alpha}$ наклона касательной к графику $ y=f(x)$ углом наклона секущей $ M_0N_1$, равным $ {\beta}_1$, или углом наклона секущей $ N_2M_0$, равным $ {\beta}_2$, соответственно (см. следующий чертёж).

Рис.4.11.Касательная и три секущих к графику функции


Однако из того же чертежа видно, что угол наклона секущей $ N_1N_2$, равный $ {\beta}_0$, гораздо лучше приближает угол $ {\alpha}$, чем углы $ {\beta}_1$ или $ {\beta}_2$. Поэтому приближённое равенство $ {\mathop{\rm tg}\nolimits {\beta}_0\approx\mathop{\rm tg}\nolimits {\alpha}=f'(x_0)}$ гораздо точнее, чем $ {\mathop{\rm tg}\nolimits {\beta}_1\approx\mathop{\rm tg}\nolimits {\alpha}=f'(x_0)}$ или $ {\mathop{\rm tg}\nolimits {\beta}_2\approx\mathop{\rm tg}\nolimits {\alpha}=f'(x_0)}$. Осталось заметить, что $ \mathop{\rm tg}\nolimits {\beta}_0=\dfrac{f(x_0+h)-f(x_0-h)}{2h}$, что приводит нас к следующей формуле для приближённого вычисления производной:


Правая часть полученной формулы называется центральной разностной производной с шагом $ 2h$. Эта формула применяется чаще других для практического нахождения $ f'(x_0)$.

Имеются и ещё более точные формулы для нахождения первой производной; приведём, например, гораздо более точную, чем (4.18), формулу

$\displaystyle f'(x_0)\approx\dfrac{-f(x_0+2h)+8f(x_0+h)-8f(x_0-h)+f(x_0-2h)}{12h},$

которая, правда, требует для своего применения не двух, а четырёх вычислений значения функции $ f(x)$. Однако выигрыш в точности с лихвой перекрывает увеличение количества вычислений. По поводу методов получения приближённых формул вычисления производной см. [Бахвалов Н. С., Жидков Н. П., Кобельков Г. М., Численные методы. -- М.: Наука, 1987. -- Гл. II] или [Амосов А. А., Дубинский Ю. А., Копченова Н. В., Вычислительные методы для инженеров. -- М.: Высш. шк., 1994. -- Гл. 12].

Для нахождения способа приближённого вычисления второй производной введём такие обозначения. Разностную производную вперёд с шагом $ h$ в точке $ x_0$ обозначим как

$\displaystyle f^{(1)}_+(x_0,h)=\dfrac{1}{h}(f(x_0+h)-f(x_0)),$

разностную производную назад -- как

$\displaystyle f^{(1)}_-(x_0,h)=\dfrac{1}{h}(f(x_0)-f(x_0-h)),$

а центральную разностную производную с шагом $ h$ -- как

$\displaystyle f^{(1)}_0(x_0,h)=\dfrac{1}{h}(f(x_0+\frac{h}{2})-f(x_0-\frac{h}{2})).$

Поскольку вторая производная $ f''(x)$ -- это производная от первой производной $ f'(x)$, то естественно для получения приближённой формулы для $ f''(x)$ заменить первую производную $ f'(x)$ на какое-нибудь её приближение, а затем применить тот же способ приближённого вычисления производной. Например, если применять оба раза разностную производную вперёд, получим:

\begin{multline*}
f''(x_0)\approx f^{(2)}_+(x_0,h)=
\dfrac{1}{h}(f^{(1)}(x_0+h...
...f(x_0+h)-f(x_0)))=
\dfrac{1}{h^2}(f(x_0+2h)-2f(x_0+h)+f(x_0)).
\end{multline*}

Точно так же, применяя два раза разностную производную назад, получим формулу

$\displaystyle f''(x_0)\approx f^{(2)}_-(x_0,h)=
\dfrac{1}{h^2}(f(x_0)-2f(x_0-h)+f(x_0-2h)),$

а применяя два раза центральную разностную производную с шагом $ h$ -- формулу

$\displaystyle f''(x_0)\approx f^{(2)}_0(x_0,h)=
\dfrac{1}{h^2}(f(x_0+h)-2f(x_0)+f(x_0-h)).$

Последняя из трёх полученных формул предпочтительнее, поскольку основывается на более точной из трёх приближённых формул для первой производной.

Применяя тот же приём ещё раз, мы можем получить приближённые формулы для третьей производной. Например, основываясь на формуле разностной производной вправо, получим

$\displaystyle f'''(x_0)\approx f^{(3)}_+(x_0,h)=
\dfrac{1}{h^3}(f(x_0+3h)-3f(x_0+2h)+3f(x_0+h)-f(x_0)),$

а основываясь на центральной разностной производной --

$\displaystyle f'''(x_0)\approx f^{(3)}_0(x_0,h)=
\dfrac{1}{h^3}
\Bigl(f(x_0+\frac{3h}{2})-3f(x_0+\frac{h}{2})
+3f(x_0-\frac{h}{2})-f(x_0-\dfrac{3h}{2})\Bigr).$

Имеются и формулы для старших производных, дающие большую точность, чем приведённые выше. Например, для второй производной приведём формулу

$\displaystyle f''(x_0)\approx
\dfrac{1}{12h^2}(-f(x_0+2h)+16f(x_0+h)-30f(x_0)+16f(x_0-h)-f(x_0-2h)).$

О методах получения таких формул можно прочитать в книгах [Бахвалов Н. С., Жидков Н. П., Кобельков Г. М., Численные методы. -- М.: Наука, 1987. -- Гл. II] и [Амосов А. А., Дубинский Ю. А., Копченова Н. В., Вычислительные методы для инженеров. -- М.: Высш. шк., 1994. -- Гл. 12].

        Замечание 4.11   Значение шага $ h>0$, которое по своему смыслу должно быть достаточно мало в формулах приближённого вычисления производных, на практике уже для второй разностной производной нельзя брать чересчур малым. Слишком малые значения $ h$ из-за того, что значения функции вычисляются с некоторой погрешностью, приводят к тому, что в приближённой формуле погрешность числителя становится величиной того же порядка, что сами числитель или знаменатель, и поэтому результат вычисления может быть весьма далёк от искомого точного результата. Вычисляя с очень малым $ h$ значения $ f''(x)$ при разных $ x$ и наблюдая за поведением этих значений, мы можем получить "биения" графика функции $ f''(x)$, даже если эта функция заведомо должна быть монотонной и гладкой. Для устранения этого недостатка приходится делать выбоp: либо увеличивать точность вычисления функции $ f(x)$ (что, как пpавило, сделать весьма тpудно), либо довольствоваться большими, скажем, $ h=0.01$ вместо $ h=0.001$ (но не слишком уж большими), значениями шага $ h$.