10Функции. Предел функции

10.1Понятие функции

10.1.1Функции и отображения

Мы, наконец, добрались до главного объекта математического анализа — до функций. Слова «функция» и «отображения» в принципе являются синонимами, они обозначают одно и то же математическое понятие, но в зависимости от контекста чаще используют одно или другое. Говоря «функция», мы будем как правило иметь в виду числовую функцию одной переменной, то есть отображение, которое числу ставит в соответствие число. Именно такие функции изучают в школе.

Определение 1. (Числовой) функцией (одной переменной) называется отображение
где — некоторое подмножество множества вещественных чисел. В этом случае называется областью определения функции. Обозначают также .

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

10.1.2Функции и формулы

Функции можно задавать формулами.

Пример 1. Запись задаёт функцию, которая любому вещественному числу ставит в соответствие его квадрат, см. рис. 10.1.

Нарисованы две вертикально направленные оси, слева x, справа y.
Нарисованы стрелочки, соединяющие точки на левой оси с их квадратами
на правой оси: 0 переходит в 0, 1 в 1, 2 в 4, 0.5 в 0.25.
Рис. 10.1: Функция как отображение: точки с левой оси переходят в точки на правой оси. Стрелочек нужно было бы нарисовать бесконечно много, но тогда ничего нельзя было бы разобрать
Если функция задана формулой, и не сказано ничего специального про её область определения, считается, что областью определения такой функции является множество всех чисел, при которых значение формулы может быть вычислено (так называемая естественная область определения).

Пример 2. Функция определена во всех точках, кроме и . Её область опредеделения — .

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

то есть после имени функции ставят палочку, а внизу пишут множество, на которое функция ограничивается.

Иногда область определения функции ясна из контекста и смысла входящих в неё переменных. Например, если — это размер какой-нибудь популяции, вряд ли он может быть отрицательным.

Пример 3. Функции можно задавать более сложными выражениями. Например:
Это пример кусочного задания функции. В зависимости от того, какому условию удовлетворяет значение , применяется либо одна формула, либо другая.

10.1.3График функции

Один из правильных способов думать про функции — это думать про их графики. По определению, график функции — это множество точек на декартовой плоскости, у которых -координата равна какому-то значению из области определения функции, а -координата равна . Формально:
Функции можно задавать графиками. Eсли нарисовать произвольную кривую на декартовой плоскости, она будет графиком некоторой функции если и только если с любой вертикальной прямой у неё будет не более одной точки пересечения, см. рис. 10.2.
Нарисовано четыре картинки, на двух картинках слева нарисованы
графики функций, кривые справа имеют несколько точек пересечений с
некоторыми вертикальными прямыми.
Рис. 10.2: Кривые слева являются графиками функций. Слева сверху функция принимает значение в точке и значение в точке . Слева снизу функция не определена на интервале . Кривые справа не являются графиками функций: для некоторых (в частности, отмеченных) вертикальных прямых у них более одной точки пересечения.
Если точки пересечения нет, значит, функция не определена в точке . Если есть, -координата точки пересечения задаёт значение функции в точке . Если бы нашлась вертикальная прямая с более чем одной точкой пересечения, было бы непонятно, какое значение принимает функция в соответствующей точке.

Как правило, думая о свойствах функции, правильнее всего представлять себе именно графики, а не, скажем, формулы, которыми эти функции задаются. Однако, нужно понимать, что любой физически нарисованный график — лишь приближение к абстрактному математическому графику. Графики как правило сами по себе не могут использоваться для доказательств утверждений, хотя придумать доказательства без них часто может быть очень сложно.

Впрочем, бывают функции, графики которых трудно себе представить.

Пример 4. Рассмотрим функцию Дирихле:
Она принимает значение во всех рациональных точках и во всех иррациональных. Представить себе её график довольно сложно — он не выглядит как привычная нам кривая. Поскольку и рациональные и иррациональные числа всюду плотны, на любом сколь угодно маленьком интервальчике будут как точки, в которых функция принимает значение , так и точки, в которых функция принимает значение . Получится два таких «дырявых» множества точек, одно лежит на прямой , другое на .

10.1.4Свойства функций

Часть свойств функций очень похожи на аналогичные свойства последовательностей.

Определение 2. Говорят, что функция ограничена (ограничена сверху, ограничена снизу) на множестве , если существует такое , что для всех выполняется неравенство (соответственно, , ).

В этом определении для краткости сформулированы сразу три определения: из скобок нужно выбирать соответствующие элементы. Если множество не указано, считается, что — вся область определения функции.

Пример 5. Функция не является ограниченной, поскольку выражение может принимать сколь угодно большие значения (для всякого можно выбрать и получить ). Однако, эта функция ограничена на отрезке .

Определение 3. Функция называется возрастающей (убывающей, неубывающей, невозрастающей) на множестве если для всех , таких, что , справедливо неравенство (соответственно, , , ). Неубывание также называется нестрогим возрастанием, а невозрастание — нестрогим убыванием.

Пример 6. Рассмотрим функцию . Она возрастает на отрезке , убывает на отрезке и снова возрастает на отрезке .

Вопрос 1. Верно ли, что функция возрастает на множестве ?
  Верно, об этом же выше написано!

Неверный ответ. Не совсем, написано, что она возрастает на отрезке и на отрезке . Возрастает ли она на их объединении? Проверьте с помощью определения.

  Звучит странно, но нет, неверно.

Верный ответ. Именно так! Хотя функция возрастает на каждом из отрезков, она не возрастает на их объединении, поскольку требования определения не выполняются. Например, если и , обе точки принадлежат объединению, и при этом .

Ограниченностью и монотонностью дело не ограничивается, у функций ещё много разных свойств, которые не встречаются у последовательностей.

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

График чётной функции симметричен относительно оси : вместе с каждой точкой он содержит точку . График нечётной функции симметричен относительно начала координат: вместе с каждой точкой он содержит точку .

Пример 7. Функция является нечётной, а — чётной. Функция является чётной при чётных значениях и нечётной при нечётных (отсюда и название).

10.1.5Экстремумы

Очень часто нам важно уметь отвечать на вопросы вроде «какое максимальное значение может принимать данная функция» или «как бы так подобрать , чтобы было как можно меньше». Такого типа задачи называются задачами оптимизации, и вся наша жизнь ими пронизана. Владелец компании хочет максимизировать её прибыль, сотрудник — свою зарплату, программист — скорость работы программы, собака — количество вкусняшек, кошка… Ладно, с кошками непонятно, но они тоже наверняка что-нибудь оптимизируют.

Чтобы иметь возможность формулировать и решать задачи оптимизации нам нужно сформулировать ряд дополнительных понятий.

Определение 5. Говорят, что функция достигает своего максимального значения в точке , если для всех выполняется неравенство . В этом случае точка называется точкой глобального максимума функции . Иногда слово «точка» опускается и говорят просто «глобальный максимум», имея в виду точку . Также под словами «глобальный максимум» может подразумеваться значение или точка на графике функции. Как правило, из контекста ясно, что имеется в виду.

Определение 6. Ну и наоборот, достигает своего минимального значения в точаке , если для всех выполняется неравенство . В этом случае точка называется точкой глобального минимума функции .

Совместно максимумы и минимумы называются экстремумами. То есть экстремум — это максимум или минимум.

Пример 8. У функции может не быть глобальных экстремумов. Например, функция , определенная на интервале , не имеет ни глобального максимума, ни глобального минимума.

Вопрос 2. А почему?
  Узнать ответ

Верный ответ. Докажем от противного. Пусть — точка глобального максимума. Возьмём точку — это середина отрезка . Тогда , поскольку . Значит, — не точка глобального максимума. Значит, никакого глобального максимума нет. Аналогично можно показать, что нет и глобального минимума.

Пример 9. У функции может быть много глобальных экстремумов. Например, у функции бесконечно много глобальных максимумов (все точки вида , — целое) и бесконечного много минимумов (каких?).

Вопрос 3. Может ли глобальный максимум совпадать с глобальным минимумом?
  Нет.

Неверный ответ. А вот и нет.

  Да.

Верный ответ. Действительно, у функции бесконечно много глобальных максимумов и все они также являются глобальными минимумами.

Определение 7. Точка называется точкой строгого глобального максимума (минимума) если для всех , не совпадающих с , выполняется неравенство (соответственно, ). Иными словами, в определении экстремума мы заменили неравенство на строгое, и ещё добавили условие, что не совпадает с — если бы мы этого не сделали, никакая точка не могла бы удовлетворять определению.

Вопрос 4. Может ли у функции быть несколько строгих глобальных максимумов?
  Нет.

Верный ответ. Действительно, не может: значение функции в каждом из них должно быть строго больше, чем в другом. Так не бывает.

  Да.

Неверный ответ. Как же?

Вопрос 5. Может ли у функции быть строгий глобальный максимум, являющийся одновременно строгим глобальным минимумом?
  Нет.

Верный ответ. Это почти правда: значение функции в строгом глобальном максимуме должно быть строго больше её значения в строгом глобальном минимуме, и значит это должно быть два разных значения, и значит две разные точки. Но есть одно исключение. Угадаете, какое?

  Да.

Верный ответ. Технически, это верно: для любой функции, определённой лишь в одной точке, эта точка является одновременно глобальным максимумом и минимумом. Однако, такие функции не очень интересны — как говорят, это вырожденный пример.

Определение 8. Точка называется точкой локального максимума (минимума) функции , если существует такой интервал , содержащий точку , что для всех выполняется неравенство (соответственно, ).

Как видно, определение локального экстремума отличается от определения глобального только требованиями на . Например, в случае глобального максимума, мы хотим, чтобы было не меньше, чем значение в любой другой точке области определения, а в случае с локальным максимумом должно быть не меньше, чем значения в точках , близких к . Любой глобальный максимум автоматически является локальным, но не всякий локальный максимум обязан быть глобальным.

Нарисован график функции, определённой на отрезке. Она сначала
возрастает, достигает локального максимума, потом убывает, достигает
локального минимума (значение в нём больше, чем в стартовой точке),
потом снова возрастает, достигает глобального максимума, потом
убывает и достигает локального минимума. От точки глобального
максимума проведены две прямые: горизонтальная, на пересечении с
вертикальной осью подписана «наибольшее значение», и вертикальная,
на пересечении с горизонтальной осью подписана «точка глобального
максимума.
Рис. 10.3: Точки локального и глобального максимума на графике функции .

Замечание 1. Представьте себе, что вы — правитель некоторого государства, и ваша задача — повышать благосостояние жителей. При этом согласно конституции этого государства вы можете влиять лишь на один параметр — например, на уровень налогов. Более того: вы не можете директивно задать уровень налогов на следующий год, а можете только дать указания министерству финансов, чтобы оно его плавно повышало или понижало. Может так случиться, что зависимость благосостояния от уровня налогов описывается функцией, у которой есть локальный максимум, не являющийся глобальным, как на рис. 10.3. Тогда, если в ходе изменения уровня налогов вы попадёте в эту точку локального максимума, дальше вы столкнётесь с трудностями: маленькие отклонения от неё (в любую сторону!) будут приводить к снижению благосостояния — что, конечно, никому не понравится. Жители будут опасаться, что ещё большее изменение приведёт к ещё более сильному снижению уровня их жизни, и начнут призывать обратить реформы вспять. Вам придётся убедить их, что уйдя от локального максимума достаточно далеко, вы сможете вернуться к росту, а затем и достигнуть большего благосостояния, чем было в этом максимуме. Непростая задача!

Перейдём теперь к ключевому понятию курса: пределу функции.

10.2Предел функции

10.2.1Примеры и мотивировка

Начнём как всегда с неформального описания и примеров.

Как бы определение 1. Говорят, что функция имеет предел в точке , равный , если значение этой функции становится сколь угодно близким к числу если значение достаточно близко к , но при этом не равно .

Обозначение:

или
Рассмотрим несколько примеров.

Пример 10. Пусть . К чему стремится , если стремится к 2? Можно посмотреть на график и увидеть, что если мы выибраем значения , близкие к 2, то соответствующая точка на графике будет близка к точке .
import matplotlib.pyplot as plt
import numpy as np
import qqmbr.odebook as ob
# see https://github.com/ischurov/qqmbr/blob/master/qqmbr/odebook.py

def f(x):
    return x ** 2
def plot_value(x, f):
    plt.plot([x, x, 0], [0, f(x), f(x)], '.--', color='C1')
x = np.linspace(-0.7, 3, 211)
plt.figure(figsize=(6, 5))
plt.plot(x, f(x), label='$y=f(x)$', color='Teal')
plt.plot([2], [4], 'o', 
          color='Teal', markerfacecolor='Teal',
          markeredgewidth=1.5)
plot_value(1.5, f)
plot_value(1.9, f)
plot_value(2.05, f)
plot_value(2-0.02, f)
plt.legend()

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.7, xmax=2.7, ymin=-0.2, ymax=7.8, 
               xlabel="x", ylabel="y") 
Рис. 10.4: Предел функции при .
Значит, значение будет близким к 4. Таким образом, предел при стремящемся к двум равен четырём:

Казалось бы, зачем городить такой огород в предыдущем примере — понятно, что достаточно просто подставить значение в формулу для функции и получить ответ. Однако, это не всегда работает. Во-первых, в квазиопределении предела явно сказано, что мы не можем брать , равное . Во-вторых, функция может быть не определена в точке — и это не мешает ей иметь предел в этой точке.

Пример 11. Пусть
К чему приближается значение функции когда приближается к 1? Если попытаться просто подставить значение в формулу, ничего не получится: знаменатель обнуляется и значение не определено. Однако, можно выбирать близкие значения , подставлять их в формулу и посмотреть, что получается:
def f(x):
    return (x ** 2 - 1) / (x - 1)
print("x\tf(x)")
for x in [1.01, 1.001, 1.0001, 1.00001, 
          0.99, 0.999, 0.9999, 0.99999]:
    print(f"{x}\t{f(x)}")
x	f(x)
1.01	2.009999999999999
1.001	2.0009999999999177
1.0001	2.0000999999993923
1.00001	2.0000100000008274
0.99	1.990000000000001
0.999	1.9989999999999712
0.9999	1.9998999999994975
0.99999	1.9999899999991726
Из таблички, которую мы видим, можно сделать вывод, что значение приближается к . То же самое можно увидеть на графике.
import matplotlib.pyplot as plt
import numpy as np
import qqmbr.odebook as ob
# see https://github.com/ischurov/qqmbr/blob/master/qqmbr/odebook.py

def f(x):
    return (x ** 2 - 1) / (x - 1)
def plot_value(x, f):
    plt.plot([x, x, 0], [0, f(x), f(x)], '.--', color='C1')
x = np.linspace(-0.5, 3, 211)
plt.figure(figsize=(6, 5))
plt.plot(x, f(x), label='$y=f(x)$', color='Teal')
plt.plot([1], [2], 'o', 
          color='Teal', markerfacecolor='white',
          markeredgewidth=1.5)
plot_value(0.5, f)
plot_value(0.9, f)
plot_value(1.05, f)
plt.legend()

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=1.7, ymin=-0.2, ymax=2.2, 
               xlabel="x", ylabel="y") 
Рис. 10.5: Функция не определена в точке, но предел у неё есть.
Как это можно было бы доказать?

Заметим, что выражение для можно упростить. Если разложить числитель на скобки, получится :

Если , дробь можно сократить на и получится выражение . Если , значение функции не определено. Таким образом, можно сказать, что функция определена при всех значениях , и на этом множестве задаётся формулой
Поскольку нас интересует, к чему приближается , когда приближается к 1, но не равен 1 (см. как бы определение 1), нас интересуют только значения функции при , и значит мы можем смело использовать формулу (10.1). Очевидно, если приближается к 1, то приближается к 2. Таким образом,

Замечание 2. Заметим, что в приведенной выше табличке значения не в точности равны . Это связано с тем, что все компьютерные вычисления с вещественными числами носят приблизительный характер: компьютер не может запомнить все цифры вещественного числа (их бесконечно много, никакой памяти не хватит) и в ходе вычислений постоянно делает округления.

Пример 12. Рассмотрим функцию
Чему равняется её предел при ?

В этом примере функция определена в точке и может возникнуть искушение подставить в формулу и сказать, что результат (число 3) и будет ответом. Однако, это неверно. На самом деле, значение функции в этой точке никак не влияет на ответ: предел функции при стремящемся к зависит от значений функции в точках, близких к , но не в самой точке .

import matplotlib.pyplot as plt
import numpy as np
import qqmbr.odebook as ob
# see https://github.com/ischurov/qqmbr/blob/master/qqmbr/odebook.py

def f(x):
    return np.ones_like(x) 
def plot_value(x, f):
    plt.plot([x, x, 0], [0, f(x), f(x)], '.--', color='C1')
x = np.linspace(0, 3, 211)
plt.figure(figsize=(6, 5))
plt.plot(x, f(x), label='$y=f(x)$', color='Teal')
plt.plot([2, 2], [0, 3.2], ':', color='Teal')
plt.plot([2], [3], 'o', 
          color='Teal', markerfacecolor='Teal',
          markeredgewidth=1.5)
plt.plot([2], [f(2)], 'o', 
          color='Teal', markerfacecolor='white',
          markeredgewidth=1.5)
# plot_value(1.5, f)
# plot_value(1.9, f)
# plot_value(2.05, f)
plt.legend(loc='lower right')

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=2.7, ymin=-1.2, ymax=3.7, 
               xlabel="x", ylabel="y") 
Рис. 10.6: Предел функции в точке не равен её значению в этой точке.
Во всех точках, близких к , значение функции равно . Значит, предел этой функции при также равен 1:

Пример 13. Рассмотрим функцию
Что вы можете сказать про её предел при ?

Посмотрим на график.

import matplotlib.pyplot as plt
import numpy as np
import qqmbr.odebook as ob
# see https://github.com/ischurov/qqmbr/blob/master/qqmbr/odebook.py

def f(x):
    return np.where(x < 1, x + 1, 
                    np.where(x == 1, 
                        np.full_like(x, np.nan), x - 2))
def plot_value(x, f):
    plt.plot([x, x, 0], [0, f(x), f(x)], '.--', color='C1')
x = np.linspace(-0.5, 2.5, 211)
plt.figure(figsize=(6, 5))
plt.plot(x, f(x), label='$y=f(x)$', color='Teal')
plt.plot([1, 1], [-1.2, 2.7], ':', color='Teal')
plt.plot([1], [2], 'o', 
          color='Teal', markerfacecolor='Teal',
          markeredgewidth=1.5)
plt.plot([1], [-1], 'o', 
          color='Teal', markerfacecolor='white',
          markeredgewidth=1.5)
plot_value(0.9, f)
plot_value(0.95, f)
plot_value(1.1, f)
plot_value(1.05, f)
plt.legend(loc='lower right')

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=2.7, ymin=-1.2, ymax=2.7, 
               xlabel="x", ylabel="y") 
Если чуть меньше 1, действует верхняя строчка в определении функции и значение оказывается чуть меньше 2. Однако, если чуть больше 1, действует уже нижняя строчка, и значение функции оказывается чуть больше . Никакого одного числа, к которому бы приближалось значение функции, когда приближается к 1, нет. Значит, нет и предела.

Итак, в этом случае не существует.

В этом примере несуществование предела было связано с тем фактом, что при приближении с разных сторон значение функции приближалось к разным числам. Это не единственный механизм несуществования предела.

Пример 14. Рассмотрим функцию
Что вы можете сказать про её предел при ? Просто подставить в формулу нельзя, да и как мы видели это не всегда работает. Попробуем использовать тот же приём, что и в примере 10: подставим в какие-нибудь значения , близкие к 0, и посмотрим, что получается.
import numpy as np

def f(x):
    return np.sin(np.pi / x)
print(" x\t\t f(x)")
for x in [0.01, 0.001, 0.0001, 0.00001, 
          -0.01, -0.001, -0.0001, -0.00001]:
    print(f"{x: .7f}\t{f(x): .7f}")
 x		 f(x)
 0.0100000	 0.0000000
 0.0010000	-0.0000000
 0.0001000	-0.0000000
 0.0000100	-0.0000000
-0.0100000	-0.0000000
-0.0010000	 0.0000000
-0.0001000	 0.0000000
-0.0000100	 0.0000000
Чему же равен предел? Из таблички может сложиться ощущение, что нулю — во всех наших пробных точках значение функции нулевое. Однако, на самом деле это не так.

Рассмотрим последовательность точек . Очевидно при . Найдём :

Таким образом, существуют сколь угодно близкие к нулю числа, в которых значение функции принимает значение 1. Это значит, что предел никак не может быть равен нулю! На самом деле, предел в этом случае не существует: выбирая разные значения , близкие к нулю, например, справа (то есть положительные числа), можно получать значения функции, близкие к , или к , или к , или ещё к чему-нибудь. Одного числа, к которому приближалось бы значение функции, не существует.

Упражнение 1. Крайне полезное упражнение — построить график функции . Чтобы понять, как он выглядит, полезно найти все значения , при которых функция принимает значения , и и отметить соответствуюие точки на графике.

10.2.2Строгое определение предела

Мы хотим формализовать квазиопределение 1. В нём есть слова «значение функции становится сколь угодно близким». Что это значит? Это значит, что мы можем сделать значения настолько близкими к числу , насколько хотим. Но для этого нужно потребовать, чтобы был достаточно близок к (и при этом не равен ). С чем-то подобным мы уже сталкивались, когда придумывали понятие предела последовательности. Определение предела функции очень похоже.

Нам понадобится пара вспомогательных определений.

Определение 9. Окрестностью точки называется любой интервал , содержащий точку , см. рис. 10.8. Проколотой окрестностью точки назвается окрестность, из которой выкинули саму точку , то есть множество , где . Эпсилон-окрестностью (-окрестностью) точки называется интервал . Проколотой -окрестностью точки называется множество
Обычно -окрестность точки обозначается как , а проколотая -окрестность — как .

Рис. 10.8: Различные типы окрестностей: обычная окрестность, проколотая окрестность, -окрестность и проколотая -окрестность.

Замечание 3. Условие можно записать в виде
а условие в виде

Определение 10. Пусть функция определена в некоторой проколотой окрестности точки , то есть существует такая проколотая окрестность, в которой функция определена; в самой точке она может быть определена, а может и не быть. Говорят, что предел функции в точке равен числу , если для всякого найдётся такое , что для всех из проколотой -окрестности точки значения функции лежат в -окрестности точки , см. рис. 10.9.

Формально: утверждение

по определению означает, что
или, с учётом замечания 3:

Слева: две вертикальные оси, левая x, правая y, на правой отмечена
ϵ-окрестность точки b, на левой проколотая δ-окрестность точки x_0.
Справа график функции, на вертикальной оси отмечена ϵ-окрестность
точки b, на горизонтальной проколотая δ-окрестность точки x_0.
Видно, что весь график, лежащий над проколотой окрестностью точки
x_0, умещается в коридор, ограниченный прямыми y=b-ϵ и y=b+ϵ.
Значение функции в самой точке x_0 может выходить за этот коридор
или вовсе не существовать.
Рис. 10.9: Окрестности в определении предела. Заметим, что значение функции в самой точке может не лежать в -окрестности точки или быть вообще не определено, но может и лежать: про него мы ничего не говорим.

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

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

Если лежит в проколотой дельта-окрестности точки , значит, . Таким образом мы получили оценку на первый сомножитель: его можно сделать сколь угодно маленьким подходящим выбором . Осталось оценить второй сомножитель. Поскольку мы выбираем сами, на неё можно накладывать любые условия, какие мы хотим. Пусть . (Почему именно ? На самом деле, подойдёт любое фиксированное число, нужно взять какое-то конкретное, почему бы и не ?) Тогда
или (прибавим ко всем членам число 2):
В этом случае выражение обязательно меньше : поскольку , выражение под модулем гарантированно положительно и значит его нужно сделать как можно больше, чтобы модуль был как можно больше, и значит нужно брать как можно большее значение , но . Таким образом, если ,
Мы хотим, чтобы эта величина была меньше . Это будет выполняться, если потребовать, чтобы . Итак, у нас есть два условия на : и . Чтобы они оба были удовлетворены, достаточно взять
Проверяем: для всех верно неравенство , и значит
Таким образом, выбранная нами удовлетворяет определению, и предел действительно равен 4, см. анимацию на рис. 10.10.
import matplotlib.pyplot as plt
import numpy as np
import qqmbr.odebook as ob
# see https://github.com/ischurov/qqmbr/blob/master/qqmbr/odebook.py

from celluloid import Camera
def f(x):
    return x ** 2
def plot_value(x, f):
    plt.plot([x, x, 0], [0, f(x), f(x)], '.--', color='C1')
def get_delta(eps):
    return min(eps / 5, 1)
x = np.linspace(-0.7, 3, 211)
fig = plt.figure(figsize=(6, 5))
camera = Camera(fig)
x0 = 2

for eps in  np.linspace(2, 0.1, 30):
    plt.plot(x, f(x), label='$y=f(x)$', color='Teal')
    plot_value(x0, f)
    delta = get_delta(eps)
    plt.plot([x0 - delta, x0 - delta], [-0.7, 7], '-',
        linewidth=0.7, color='C1')
    plt.plot([x0 + delta, x0 + delta], [-0.7, 7], '-',
        color='C1', linewidth=0.7)

    plt.plot([-0.5, 2.5], [f(x0) - eps, f(x0) - eps], '-',
        color='C1', linewidth=0.7)

    plt.plot([-0.5, 2.5], [f(x0) + eps, f(x0) + eps], '-',
        color='C1', linewidth=0.7)
    ob.center_spines(grid=False, minor_ticks=False)
    ob.settle_axes(xmin=-0.7, xmax=2.7, ymin=-0.2, ymax=7.8, 
                   xlabel="x", ylabel="y") 
    camera.snap()
animation = camera.animate()
Рис. 10.10: Как работает определение предела: хотя значение уменьшается, нам каждый раз удаётся подобрать такое значение , чтобы все точки графика над проколотой -окрестностью точки лежали в -окрестности точки .

10.3Односторонние пределы

В мире последовательностей всё было просто: последовательность могла иметь предел при , и больше никакого. В мире функций всё сложнее. Мало того, что может приближаться к различным точкам, и нужно уточнять, к чему именно он приближается. Он ещё может это делать разными способами.

Рассмотрим функцию , заданную формулой (10.2) (см. пример 13). У неё нет предела в точке , поскольку при приближении по к точке справа или слева, значение функции приближается к разным числам ( и соответственно). Чтобы сказать это формально, нужно дать определение односторонних пределов.

Определение 11. Пусть функция определена в правой полуокрестности точки , то есть на множестве для некоторого . Говорят, что предел функции при стремящемся к справа равен , если для всякого найдётся такая , что для всех выполняется неравенство .

Определение 12. Пусть функция определена в левой полуокрестности точки , то есть на множестве для некоторого . Говорят, что предел функции при стремящемся к слева равен , если для всякого найдётся такая , что для всех выполняется неравенство .

Записывают:

для предела справа и
для предела слева.

Упражнение 2. Докажите, что для функции , заданной формулой (10.2), предел справа равен , а предел слева равен .

Упражнение 3. Докажите, что если у функции существует предел при , то пределы при и при также существуют, равны между собой и равны пределу при . Докажите, что верно и обратное: если оба односторонние пределы существуют и равны между собой, то предел при также существует и его значение равно значению односторонних пределов.

10.4Заключение

Функции одной переменной нам всем знакомы со школы. Однако, объект этот не так прост, как может показаться. Чтобы приобрести хорошую интуицию о том, какими бывают функции и какими свойствами они могут обладать, придётся хорошо поработать. И для начала — освоить понятие предела функции в точке, которое мы будем постоянно использовать в будущем.