Быстрое вычисление пределов

Быстрое вычисление пределов#

Пусть надо численно вычислить предел

\[ \lim _{x \rightarrow 0} f(x) \equiv A, \]

где \(x\) и \(f(x)\) - действительные. Будем рассматривать случай, когда следующие три условия на функцию \(f(x)\) выполнены.

  • Функция \(f(x)=f(-x)\) - четная. (всегда можно свести к этому случаю, см. ниже)

  • Значение предела \(A\) - конечно. Иначе говоря, точка \(x=0\) - выколотая: в ней возможна неопределенность, типа, например, \(0 / 0\).

  • Если разрыв \(f(x)\) в выколотой точке \(x=0\) устранить (по непрерывности, как обычно), то полученнная функция является аналитической в \(x=0\).

На языке ряда Тейлора эти три условия означают, что

\[ f(x)=a_0+\frac{a_2}{2 !} x^2+\frac{a_4}{4 !} x^4+\frac{a_6}{6 !} x^6+\ldots, \quad 0<|x|<x_{\mathrm{m}}, \]

где коэффициенты \(a_{2 k}\) - действительны, а \(x_{\mathrm{m}}\) - радиус сходимости. При этом \(a_0=A-\) конечное число.

Следующие три случая подпадают по этот случай.

a) Обычный (двусторонний) предел

\[ \lim _{t \rightarrow a} y(t)=\lim _{x \rightarrow 0} \frac{y(a+x)+y(a-x)}{2}, \]

где функция \(y(t)\) после устранения разрыва в выколотой точке \(t=a\) является аналитической в \(t=a\). Пример функции: \(y(t)=\sin t /\left(e^t-\right.\) \(1)\).

б) Односторонний предел

\[ \lim _{t \rightarrow a+0} y(t)=\lim _{x \rightarrow 0} y\left(a+x^2\right), \]

в котором функция \(y\left(a+x^2\right)\), как зависящая от переменной \(x\), аналитична в \(x=0\) (если разрыв в \(x=0\) устранен). Пример функции: \(y(t)=e^t\) при \(t>0\) и \(y=0\) при \(t<0\).

в) Односторонний предел с корневой особенностью

\[ \lim _{t \rightarrow a+0} y(t)=\lim _{x \rightarrow 0} y\left(a+x^{2 K}\right), \]

где \(K>1\) - целое. Здесь (после устранения разрыва в \(x=0\) ) функция \(f(x)\), как зависящая от \(x\), аналитична в \(x=0\). Пример функции для \(K=3: y(t)=\left(\exp \left(t^{1 / 3}\right)-\sqrt{1+t^{1 / 3}}\right) t^{-1 / 3}\).

Важно заметить, что случай (а) включен в (б), а (б) - в (в). Однако классификацию (а)-(в) проводить надо. Иначе точность взятия предела сильно падает. В самом деле, случай (б) (тем более, (в)) дает неопределенность \(0^2 / 0^2\) - более сильную, чем \(0 / 0\) в случае (а).

Вернемся к численному взятию предела, в которой функция \(f(x)\) дается рядом Тейлора. Идея взятия предела заключается в следующем.

  1. Набросать эквидистантную сетку вблизи точки \(x=0\) с некоторым шагом \(\Delta x\) так, чтобы проблемная точка \(x=0\) прошла где-то подальше от узлов сетки.

  2. Вычислить значения функции \(f(x)\) в этих узлах сетки, а затем найти ближайший к \(x=0\) узел сетки, и разложившись в ряд Тейлора в этом узле, сделать интерполяцию в \(x=0\).

Вот, как выглядит эта процедура алгоритмически.

Рассматривается симметризованная сетка

\[\begin{split} \begin{gathered} y_0=y_{-1}=f( \pm \Delta x / 2),\\ y_1=y_{-2}=f( \pm 3 \Delta x / 2), \\ \quad \ldots\\ y_{j_0-1}=y_{-j_0}=f\left( \pm\left(2 j_0-1\right) \Delta x / 2\right), \end{gathered} \end{split}\]

в которой \(j_0\) - число обращений к функции \(f(x)\). Симметризация имеет два преимущества: вдвое снижает число обращений к \(f(x)\)\(2 j_0-1\) до \(j_0\) ) и использует случай, в котором проблемная точка \(x=0\) находится на максимальном расстоянии от узлов сетки, т. е. посередине.

В качестве ближайшего выбирается, например, узел \(x_0=\Delta x / 2\). Тогда расстояние \(x-x_0 \equiv h\) от \(x_0\) до проблемной точки \(x=0\) равняется \(h=-\Delta x / 2\). В самом деле, складывая \(x_0+h=0-\) получаем нуль, т. е. точку \(x=0\), в которой берется предел.

Тогда, очевидно, значение \(A\) предела функции \(f(x)\) в точке \(x=\) 0 дается рядом Тейлора

\[ A=f\left(x_0\right)+f^{\prime}\left(x_0\right) h+f^{\prime \prime}\left(x_0\right) \frac{h^2}{2}+f^{\prime \prime \prime}\left(x_0\right) \frac{h^3}{6}+\ldots+f^{(N)}\left(x_0\right) \frac{h^N}{N !}+O\left(h^{N+1}\right) \text {. } \]

Здесь использовано равенство \(f\left(x_0+h\right)=f(0)=A\), в котором учтено, что \(x_0+h=0\), а устранимый разрыв \(f(x)\) в \(x=0\) устранен по непрерывности.

Наконец, воспользовавшись формулой для приближения проиводной произвольным порядком, после преобразований приходим к окончательной формуле для предела \(f(x)\) в \(x=0\) :

\[ \lim _{x \rightarrow 0} f(x)=\sum_{n=0}^N \sum_{k=0}^{2 m+n^{\prime}(n)} A_{k n}^{m-\left(n-n^{\prime}(n)\right) / 2} \frac{(-1)^n}{4^n n !} y_{2 m+n^{\prime}(n)-2 k}+O\left(\Delta x^{2 m+2}\right) . \]

Здесь порядок схемы \(m=0,1,2,3, \ldots\) и шаг \(\Delta x>0\) - внутренние параметры метода, \(N\) - максимальный учитываемый порядок в ряде Тейлора, причем \(1 \ll N \leq 2 m+1, n^{\prime}(n)=0\) при четном \(n\) и \(n^{\prime}(n)=1\) при нечетном \(n\), коэффициенты \(A_{k n}^m\) даются формулой в начале блокнота, сетка \(\left\{y_j\right\}\), где \(j=1-j_0, 2-j_0, 3-j_0, \ldots j_0-1\) определена выше и симметризована, точка \(y_{-j_0}\) не используется, а \(j_0=2 m+2\) - число расчетных точек, оно же - число необходимых обращений к функции \(f(x)\).