4Предел последовательности

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

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

Пусть есть последовательность . Можно думать про неё как про последовательность результатов измерения какого-то параметра (скажем, населения некоторой страны) в последовательные моменты времени (например, каждый год). Правда, в отличие от реальных результатов измерения, наша последовательность простирается бесконечно далеко в будущее, и именно это «бесконечное будущее» нас и интересует. Есть ли какое-то значение , к которому члены последовательности будут становиться всё ближе и ближе — так, что, со временем их будет всё сложнее и сложнее отличить от ?

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

4.1.1Последовательность

Пусть . Давайте выведем первые двадцать членов этой последовательности. Я написал для этого короткий код на языке Python, который приведён ниже вместе с результатом его выполнения. Код можно скрывать и открывать, нажимая на кнопку-уголок. Если вы не знаете Python, ничего страшного — для понимания он не понадобится. Но если знаете, возможно, вам будет интересно самостоятельно проводить эксперименты, похожие на приведенные.
print("n	a_n")
for n in range(1, 21):
    a_n = 1 / 2 ** n
    print(f"{n}	{a_n:0.5f}") 
    # 0.5f означает, что будут выведены 5 знаков после десятичной точки
n	a_n
1	0.50000
2	0.25000
3	0.12500
4	0.06250
5	0.03125
6	0.01562
7	0.00781
8	0.00391
9	0.00195
10	0.00098
11	0.00049
12	0.00024
13	0.00012
14	0.00006
15	0.00003
16	0.00002
17	0.00001
18	0.00000
19	0.00000
20	0.00000
Из результатов видно, что начиная с 18-го члена получаются нули. Конечно, мы понимаем, что это не настоящие нули — ни один член этой последовательности на самом деле не равен нулю. (Если вы делите положительное число на что угодно, никак нельзя получить ноль — уравнение не имеет решения, потому что в противном случае окажется равным , а этого не может быть, потому что умножение чего угодно на даёт .) Однако, мы вывели только 5 знаков после десятичной запятой (точки), поэтому все числа, меньшие , отображаются как нули.

Но ведь можно увеличить точность! Давайте отображать шесть цифр после запятой!

print("n	a_n")
for n in range(1, 21):
    a_n = 1 / 2 ** n
    print(f"{n}	{a_n:0.6f}") 
    # 0.6f означает, что будут выведены 6 знаков после десятичной точки
n	a_n
1	0.500000
2	0.250000
3	0.125000
4	0.062500
5	0.031250
6	0.015625
7	0.007812
8	0.003906
9	0.001953
10	0.000977
11	0.000488
12	0.000244
13	0.000122
14	0.000061
15	0.000031
16	0.000015
17	0.000008
18	0.000004
19	0.000002
20	0.000001
Теперь первые 20 членов последовательности отчётливо ненулевые. Но последовательность на этом не заканчивается — давайте выведем ещё несколько членов.
print("n	a_n")
for n in range(20, 25):
    a_n = 1 / 2 ** n
    print(f"{n}	{a_n:0.6f}") 
    # 0.6f означает, что будут выведены 6 знаков после десятичной точки
n	a_n
20	0.000001
21	0.000000
22	0.000000
23	0.000000
24	0.000000
Опять нули! Давайте ещё увеличим точность! Семь знаков после запятой!
print("n	a_n")
for n in range(20, 25):
    a_n = 1 / 2 ** n
    print(f"{n}	{a_n:0.7f}") 
    # 0.7f означает, что будут выведены 6 знаков после десятичной точки
n	a_n
20	0.0000010
21	0.0000005
22	0.0000002
23	0.0000001
24	0.0000001
До 24-го члена значения ненулевые, а после?
print("n	a_n")
for n in range(24, 30):
    a_n = 1 / 2 ** n
    print(f"{n}	{a_n:0.7f}") 
    # 0.7f означает, что будут выведены 6 знаков после десятичной точки
n	a_n
24	0.0000001
25	0.0000000
26	0.0000000
27	0.0000000
28	0.0000000
29	0.0000000
Похоже, дело безнадёжно. Какую бы точность отображения мы ни выбирали, начиная с некоторого момента последовательность будет выглядеть, как будто состоит из сплошных нулей!

Это и означает, что она стремится к нулю.

4.1.2Последовательность

Пусть теперь . Тоже можно вывести первые несколько значений.
print("n	a_n")
for n in range(1, 10):
    a_n = (n + 1) / n
    print(f"{n}	{a_n:0.5f}") 
n	a_n
1	2.00000
2	1.50000
3	1.33333
4	1.25000
5	1.20000
6	1.16667
7	1.14286
8	1.12500
9	1.11111
Здесь эффект не столь очевиден. Давайте построим график. По горизонтальной оси будем откладывать , по вертикальной — . В отличие от обычного графика функции, он будет состоять из отдельных точек, соответствующих натуральным значениям , см. рис. 4.1.
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

nmax = 20
n = np.arange(1, nmax + 1)
plt.plot(n, (n + 1) / n, 'o', markersize=4, label='$y=a_n$')
plt.xticks(range(0, nmax + 1))
plt.legend()

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=nmax + 1, ymin=-0.4, ymax=2.9, 
               xlabel="n", ylabel="y") 
Рис. 4.1: График .
По графику можно угадать, что точки, вероятно, приближаются к прямой , то есть элементы последовательности стремятся к . Для большей наглядности можно нарисовать эту прямую (рис. 4.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

nmax = 20
n = np.arange(1, nmax + 1)
plt.plot(n, (n + 1) / n, 'o', markersize=4, label='$y=a_n$')

n_full = np.linspace(0, nmax + 1)
plt.plot(n_full, np.ones_like(n_full), label='$y=1$')

plt.xticks(range(0, nmax + 1))
plt.legend()

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=nmax + 1, ymin=-0.4, ymax=2.9, 
               xlabel="n", ylabel="y") 
Рис. 4.2: График и прямая .
Хотя тенденция вроде бы налицо, нетрудно видеть, что между точками и прямой есть некоторый зазор. Но что если взять побольше точек? См. рис. 4.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

nmax = 75 ##
n = np.arange(1, nmax + 1)
plt.plot(n, (n + 1) / n, 'o', markersize=4, label='$y=a_n$')

n_full = np.linspace(0, nmax + 1)
plt.plot(n_full, np.ones_like(n_full), label='$y=1$')

#plt.xticks(range(0, nmax + 1)) 
plt.legend()

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=nmax + 1, ymin=-0.4, ymax=2.9, 
               xlabel="n", ylabel="y") 
Рис. 4.3: График : взяли побольше точек.
Видно, что зазор стал меньше и для больших значений вообще непонятно, есть он или нет. Но если изменить масштаб вертикальной оси, станет видно, что он всё-таки есть (рис. 4.4).
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

nmax = 75 ##
n = np.arange(1, nmax + 1)
plt.plot(n, (n + 1) / n, 'o', markersize=2, label='$y=a_n$')

n_full = np.linspace(0, nmax + 1)
plt.plot(n_full, np.ones_like(n_full), label='$y=1$')

#plt.xticks(range(0, nmax + 1)) 
plt.legend()

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=nmax + 1, ymin=0, ymax=1.11, 
               xlabel="n", ylabel="y") 
Рис. 4.4: График : увеличили масштаб вертикальной оси.
Но теперь можно добавить ещё больше точек (рис. 4.5)!
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

nmax = 420 
n = np.arange(1, nmax + 1)
plt.plot(n, (n + 1) / n, 'o', markersize=2, label='$y=a_n$')

n_full = np.linspace(0, nmax + 1)
plt.plot(n_full, np.ones_like(n_full), label='$y=1$')

#plt.xticks(range(0, nmax + 1)) 
plt.legend()

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=nmax + 1, ymin=0, ymax=1.11, 
               xlabel="n", ylabel="y") 
Рис. 4.5: График : увеличили масштаб вертикальной оси, а потом взяли ещё больше точек
И снова зазор стал практически неразличим!

Так можно продолжать до бесконечности. Увеличивать масштаб вертикальной оси (и следовательно нашу способность различать близкие точки) — находить зазор — увеличивать количество точек — делать зазор неразличимым.

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

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

4.1.4«Скачущая» последовательность

При рассмотрении предыдущих примеров, у вас могло возникнуть искушение дать такое определение: «последовательность стремится к какому-то числу , если её члены с ростом становятся всё ближе и ближе к : каждый следующий член ближе, чем предыдущий».

Более внимательный анализ показывает, что это определение неверно. Например, последовательность , которую мы только что рассматривали, «становится всё ближе и ближе» не только к , но и, например, к — причём каждый следующий член ближе, чем предыдущий. Тем не менее, нельзя сказать, что она стремится к .

Более того, требование «каждый следующий член ближе, чем предыдущий», оказывается излишним.

Давайте рассмотрим такую последовательность:

Её первые члены выглядят следующим образом:
График этой последовательности изображен на рис. 4.6. Тут видно, что требование «каждый следующий элемент ближе к , чем предыдущий», нарушается: элементы с чётными номерами ближе к , чем элементы с нечётными номерами.
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

nmax = 20 
n = np.arange(1, nmax + 1)
plt.plot(n, 1 + np.where(n % 2 == 1, 1 / n, 3 / n), 
         '--o', markersize=4, label='$y=a_n$')

plt.xticks(range(0, nmax + 1)) 
n_full = np.linspace(0, nmax + 1)
plt.plot(n_full, np.ones_like(n_full), label='$y=1$')

plt.legend()

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=nmax + 1, ymin=0, ymax=3.11, 
               xlabel="n", ylabel="y") 
Рис. 4.6: Последовательность приближается и отдаляется от 1, но всё равно к ней стремится. Точки соединены пунктирной линией исключительно для наглядности: значения последовательности для нецелых не определено.
Тем не менее, судя по графику на рис. 4.7, можно предположить, что, несмотря на скачки, последовательность всё-таки стремится к числу : с течением времени (то есть с ростом ) её элементы становятся настолько близки к единице, что их трудно от неё отличить.
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

nmax = 90 
n = np.arange(1, nmax + 1)
plt.plot(n, 1 + np.where(n % 2 == 1, 1 / n, 3 / n), '--o', markersize=4, label='$y=a_n$')

# plt.xticks(range(0, nmax + 1)) 
n_full = np.linspace(0, nmax + 1)
plt.plot(n_full, np.ones_like(n_full), label='$y=1$')

plt.legend()

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=nmax + 1, ymin=0, ymax=3.11, 
               xlabel="n", ylabel="y") 
Рис. 4.7: Последовательность приближается и отдаляется от 1, но всё равно к ней стремится.

4.1.5Последовательности без предела

Последовательности, рассмотренные выше, стремились к какому-то числу. Приведём несколько примеров последовательностей, у которых предела нет.

Пример 1. Последовательность :
Эта последовательность неограничена, и выглядит очевидным, что она не стремится ни к какому числу. У неё нет предела.

Пример 2. Последовательность
В зависимости от чётности , первое слагаемое оказывается равно или . Посмотрим, как выглядит график этой последовательности (рис. 4.8).
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

nmax = 20 
n = np.arange(1, nmax + 1)
plt.plot(n, (-1) ** n + 1 / n, '--o', markersize=4, label='$y=a_n$')

plt.xticks(range(0, nmax + 1)) 
n_full = np.linspace(0, nmax + 1)
plt.plot(n_full, np.ones_like(n_full), label='$y=1$')
plt.plot(n_full, -np.ones_like(n_full), label='$y=-1$')

plt.legend()

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=nmax + 1, ymin=-1.9, ymax=1.9, 
               xlabel="n", ylabel="y") 
Рис. 4.8: Последовательность скачет между двумя точками.
По графику видно, что нет одного числа, к которому члены последовательности были бы очень близки при больших : она скачет между двумя значениями, и .

Пример 3. Наконец, рассмотрим такую последовательность:
Эта последовательность устроена так. Для тех , которые являются степенями двойки (, , , , и т.д.), равно . Для остальных , равно . Посмотрим на график на рис. 4.9.
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

nmax = 20 
n = np.arange(1, nmax + 1)
plt.plot(n, np.where(np.isclose(np.log2(n) % 1, 0), 0.5, (n + 1) / n),
         '--o', markersize=4, label='$y=a_n$')

plt.xticks(range(0, nmax + 1)) 
n_full = np.linspace(0, nmax + 1)
plt.plot(n_full, np.ones_like(n_full), label='$y=1$')

plt.legend()

ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=nmax + 1, ymin=-0.4, ymax=1.9, 
               xlabel="n", ylabel="y") 
Рис. 4.9: Последовательность всё реже и реже убегает от предельного значения
Понятно, что для тех номеров, которые не являются степенями двойки, элементы становятся сколь угодно близки к 1. Время от времени последовательность «убегает» в точку , однако эти моменты, будучи степенями двойки, встречаются всё реже и реже. Если бы мы стартовали с больших значений , мы могли бы очень долго наблюдать последовательность, которая становится очень близка к 1.

Тем не менее, нельзя сказать, что её предел равен 1. Мы знаем, что с какого бы начального момента времени мы ни стартовали, рано или поздно окажется степенью двойки, и в этот момент последовательность «скакнёт» в число , уйдя от на заметное расстояние.

4.2Определение предела

4.2.1Интуитивные соображения

Из обсуждения в предыдущем разделе должно быть понятно — по крайней мере, на интуитивном уровне — чего бы мы хотели потребовать от последовательности, чтобы сказать, что она стремится к некоторому числу . Подведём промежуточный итог.
  1. Первые сколько-то членов могут быть достаточно далеки от , это никак не мешает последовательности стремиться к . Иными словами, «стремление» — это эффект, который зависит только от «хвоста» последовательности.
  2. Для достаточно больших значениий члены последовательности должны становиться настолько близкими к , чтобы их нельзя было отличить от , скажем, на графике или на компьютерной распечатке, на которой числа выводятся с конечной точностью.
  3. Этот эффект должен сохраняться для всех достаточно больших . Если последовательность время от времени «убегает» от на какое-то заметное расстояние, и это происходит сколь угодно далеко в будущем, последовательность не будет стремиться к .
  4. Мы можем увеличить точность измерения — например, выводить больше цифр после запятой или увеличить масштаб на графике — и увидеть зазор между членами последовательности и числом . Однако, мы можем взять ещё большие значения , чтобы эффект «неразличимости» вернулся.
Теперь приступим к формализации понятия предела.

4.2.2Вспомогательные понятия

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

Определение 1. Расстоянием между вещественными числами и называется модуль их разности: . Это довольно естественное определение, если думать про числа как про точки на числовой прямой, см. рис. 4.10.

Нарисована числовая прямая, на ней отмечены две точки: a = -1 и b =
3. Показано, что расстояние между ними равно модулю разности: |a-b|
Рис. 4.10: Модуль разности — это расстояние между числами как точками числовой прямой.

Буквой (читается «эпсилон» — почему-то со слуха часто кажется, что там в конце есть буква «т» — нет, её нет) мы будем обозначать положительные и как правило маленькие вещественные числа.

Определение 2. Скажем, что два числа -близки («эпсилон-близки») друг к другу, если расстояние между ними меньше .

Вместо здесь можно подставлять другие буквы или конкретные числа — например, -близки («дельта-близки») или -близки. Скажем, утверждение «число -близко к числу » является верным, поскольку расстояние между и (модуль разности) меньше, чем . Числа и будут -близки, если модуль их разности меньше : .

Определение 3. Рассмотрим последовательность . Скажем, что её хвост -близок к числу , если все её члены, начиная с некоторого, -близки к . Иными словами, если все члены, начиная с некоторого, находятся на расстоянии меньше от .

Формально это записывается так:

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

Импликация в этом определении говорит, что нас интересует выполнение условия не для всех , а только для тех, для которых выполнено , то есть «начиная с некоторого члена»; если оно нарушается для членов с меньшими номерами, это не будет нарушать утверждение, поскольку в этом случае посылка импликации окажется ложной, и значит импликация будет истинной. Более кратко это определение можно записать так:

На рис. 4.11 приведена иллюстрация к этому определению. Множество точек, -близких к точке — это интервал . Если на графике последовательности нарисовать горизонтальные прямые и , они образуют своего рода коридор вокруг (его можно назвать -коридором). Утверждение, что хвост последовательности -близок к , означает, что начиная с некоторого номера , все члены последовательности находятся в интервале , а соответствующие им точки на графике живут в нарисованном нами -коридоре. Точки с номерами меньше или равными , могут как принадлежать коридору, так и выходить из него.

Изображен график последовательности. На вертикальной оси отмечено
число A и проведено три горизонтальных прямых: y=A, y=A+ε,
y=A-ε, две последние прямые образуют своего рода коридор.
Показано, что все элементы, после N=5 (то есть начиная с n=6)
находятся внутри этого коридора.
Рис. 4.11: Хвост последовательности -близок к числу .

Заметим, что в этом определении не сказано, с какого именно члена начинается «хвост последовательности». Более того, для одной и той же последовательности «хвосты» могут быть разными, в зависимости от .

Пример 4. Рассмотрим последовательность . Её хвост -близок к . Действительно, возьмём . Для всех , меньше (поскольку больше обратная величина меньше ).

Вопрос 1. Верно ли, что хвост последовательности является -близким к ?
  Нет, потому что существуют , при которых расстояние между и больше, чем — например, , , .

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

  Неизвестно, зависит от .

Неверный ответ. Нет, в формуле (4.3) переменная является связанной (на неё «навешан» квантор) — мы не спрашиваем, при каких верно или неверно то-то и то-то — мы спрашиваем, «найдётся ли такое

  Да, верно.

Верный ответ. Конечно! Чему равняется ?

  10

Неверный ответ. Не-а.

  20

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

  100

Верный ответ. Да, например, 100 подойдёт. (Или любое большее число.)

Пример 5. Последовательность из примера 2 (см. (4.1)) имеет хвост, -близкий к числу , однако неверно, что её хвост -близок к .

Вопрос 2. Для какого хвост этой последовательности -близок к числу 1?
 

Неверный ответ. Нет, у последовательности есть члены со сколь угодно большими номерами, лежащие на расстоянии больше от — например, все члены с нечётными номерами.

 

Неверный ответ. Нет, у последовательности есть члены со сколь угодно большими номерами, лежащие на расстоянии больше от — например, все члены с нечётными номерами, большими (хотя находится на расстоянии от числа ).

 

Верный ответ. Верно!

  Ни для какого.

Неверный ответ. Нет, неверно.

Теперь мы готовы к Самому Главному Определению.

4.2.3Аккуратное определение предела

Мы хотим дать определение понятию, которое бы формализовало утверждение о том, что члены последовательности с ростом становятся очень-очень близки к некоторому фиксированному числу — так, что, начиная с некоторого момента, мы их практически не можем отличить от .

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

Но какой «достаточно маленький»? В отличие от других дисциплин, в математике нет никакого естественного масштаба. С точки зрения географии, расстояние в метра — это очень маленькое расстояние — потому что мы сравниваем его с типичными объектами, изучаемыми географией — странами, городами, морями. А с точки зрения микробиологии — фантастически большое — по сравнению с бактериями или ядром клетки. С точки зрения математики, невозможно даже задать вопрос «является ли маленьким числом?» — потому что непонятно, с чем его сравнивать. Поэтому мы не можем выбрать какой-то конкретный и сказать: «последовательность стремится к , если её члены, начиная с некоторого, -близки к ». Как же быть?

Очень просто. Мы потребуем, чтобы утверждение «хвост последовательности -близок к », выполнялось для любого положительного . Какой бы ни была разрешающая способность наших измерительных приборов, если подождать достаточно долго, мы перестанем отличать члены нашей последовательности от .

Определение 4. Последовательность имеет предел , если для всякого её хвост -близок к .

Формально:

Если последовательность имеет предел , говорят также, что она стремится к .

Коротко пишут так:

(читается «предел при стремящемся к бесконечности от равен ») или
(читается « стремится к при стремящемся к бесконечности»).

Последовательность, имеющая предел, называется также сходящейся, а не имеющая предела — расходящейся.

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

Заметим, что в определении предела, число (граница «хвоста последовательности») выбирается в зависимости от — для разных получаются разные . Если последовательность стремится к , гарантируется, что для любого найдётся «хорошее» . Часто бывает удобно это «хорошее» , подходящее для какого-то , обозначать через . (Вообще говоря, это определяется не единственным образом — например, если подходит, то тоже подходит — но мы выберем какое-нибудь из подходящих значений и обозначим его через .) На рис. 4.12 приведена иллюстрация: для мы могли выбрать , то есть положить . Но для (см. нижний рисунок) это значение уже «не работает» (например, выходит за границы нового коридора), однако увеличив до (то есть положив ) мы снова добились соблюдения условия «все члены, начиная с , находятся на расстоянии меньше от ».

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

Изображен график последовательности. На вертикальной оси отмечено
число A и проведено три горизонтальных прямых: y=A, y=A+ε_1,
y=A-ε_1, две последние прямые образуют своего рода коридор.
Показано, что все элементы, после N=N(ε_1)=3 (то есть начиная с n=4)
находятся внутри этого коридора.
Изображен график последовательности. На вертикальной оси отмечено
число A и проведено три горизонтальных прямых: y=A, y=A+ε_1,
y=A-ε_1, две последние прямые образуют своего рода коридор.
Показано, что все элементы, после N=N(ε_1)=3 (то есть начиная с n=4)
находятся внутри этого коридора.
Рис. 4.12: Зависимость от в определении предела.

4.3Пример доказательств утверждений о пределах

4.3.1Существование предела

Самый лучший способ понять определение — доказать какое-нибудь утверждение про него.

Утверждение 1. Предел последовательности равен :

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

Определение 5. Пусть — вещественное число. Его округлением вверх называется наименьшее целое число, не меньшее . Например, округляется вверх до . Число округляется вверх до , потому что оно уже целое. Результат округления вверх числа обозначается через . Функция также называется функцией «потолок» (англ. ceil).

Упражнение 1. Опишите, как действует функция , пользуясь представлением числа в виде бесконечной десятичной дроби.

Итак, для всякого , положим . По определению функции потолок, . Значит, для всех натуральных , если , то , а значит выполняется (4.6), а значит и (4.5). Ура!

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

Замечание 3. В данном случае в ходе решения задачи мы шли от неравенства (4.5), которое нам было нужно, к неравенству (4.6), которое было легко проанализировать. Однако сам текст доказательства как правило проще излагать в обратном порядке. Обычно он звучит так: для всякого возьмём в качестве некоторое выражение от . Не объясняем, почему мы решили взять именно такое выражение. Вместо этого, докажем, что в этом случае для всех выполняется неравенство (в этом месте, как правило, нужно привести цепочку неравенств, аналогичную переходу от (4.6) к (4.5), только записанную «снизу вверх»: важно, чтобы каждое следующее неравенство было следствием предыдущего). Доказали? Победа! Получается железобетонная последовательность рассуждений, оставляющая, впрочем, читателя в недоумении — почему же мы выбрали именно такое ?

Давайте рассмотрим ещё один пример.

Утверждение 2. Предел последовательности равен нулю:

Доказательство. По аналогии с предыдущим примером, запишем, что мы хотим получить. Мы хотим научиться для всякого строить такое , что для всех выполняется неравенство:
Можно попробовать преобразовать это неравенство. Во-первых, вычитание нуля ничего не меняет. Во-вторых, при натуральных дробь положительна и знак модуля можно снять. Получаем такое неравенство:
Теоретически, дальше его можно мучительно решать относительно , найдя для каждого фиксированного все возможные значения , которые ему удовлетворяют. Делать это, однако, не нужно. Дело в том, что нам не нужны все без исключения значения . Нам нужно добиться того, чтобы неравенство (4.8) выполнялось, но нам не нужно находить все значения , при которых оно выполняется. Поэтому вместо эквивалентных переходов, которые мы должны делать, когда решаем неравенство, нам достаточно переходов к более сильным неравенствам — таким, из которых наше следует. И это существенно упрощает жизнь! Смотрите.

Заметим, что для натуральных ,

Действительно, и — положительные числа. Более того: для натуральных , (можно поделить это неравенство на , поскольку больше нуля, и получить неравенство , справедливое для всех натуральных ). Имеем цепочку неравенств:
Значит
и следовательно
Оценивая знаменатель дроби снизу, мы оцениваем саму дробь сверху.

Пусть теперь мы подобрали какое-нибудь такое , что при всех выполняется неравенство . Тогда в силу неравнства (4.9), для тех же самых , будет выполняться неравенство

(Мы опять используем транзитивность неравенства: если и , то .)

Таким образом, в качестве можно взять то же выражение, что и в предыдущем примере: . И оно сработает! Это гораздо проще, чем решать квадратное неравенство с параметром (можете попробовать — хотя вам вряд ли понравится).

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

Доказательство законечно. (Конечно, в аккуратном тексте нужно обосновать каждое из равенств и неравенств в цепочке, но мы это уже сделали выше.)

4.3.2Предел не равен какому-то числу

Утверждение 3. Предел последовательности , , не равен 1:

Доказательство. Нам нужно доказать, что неверно, что предел равен 1. Иными словами, опровергнуть следующее утверждение:
Опровергнуть утверждение — это всё равно, что доказать его отрицание. Запишем отрицание, пользуясь разделом 2.3.3 лекции 2:
Иными словами, нам нужно доказать, что существует такой , что какой бы номер мы ни выбрали, найдётся номер , больший, чем , для которого элемент с номером не является -близким к . Попросту нам нужно доказать, что для какого-то конкретного , время от времени — сколь угодно далеко в будущем — элементы последовательности будут на расстоянии как минимум от . В этом случае, конечно, ни о каком стремлении к речи уже идти не будет.

Давайте посмотрим на картинку (рис. 4.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

nmax = 20
n = np.arange(1, nmax + 1)
n_full = np.linspace(0, nmax + 1 - 0.5)
plt.plot(n_full, np.ones_like(n_full), color="#cf356b")
plt.plot(n, 1 / n, 'o', markersize=4, label='$y=a_n$')
plt.xticks(range(0, nmax + 1))
plt.legend()


ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=nmax + 1, ymin=-0.25, ymax=2.27, 
               xlabel="n", ylabel="y") 
Рис. 4.13: График .
Какое значение подойдёт? Например, подойдёт ли ? Похоже, что нет — на самом деле, все элементы последовательности находятся на расстоянии не больше от числа , см. рис. 4.14.
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

nmax = 20
n = np.arange(1, nmax + 1)
eps = 1.5
n_full = np.linspace(0, nmax + 1 - 0.5)
plt.fill_between(n_full, np.ones_like(n_full) * (1 + eps),
    np.ones_like(n_full) * (1 - eps), color='#ee5d306b')
plt.plot(n_full, np.ones_like(n_full), color="#cf356b")
plt.plot(n_full, np.ones_like(n_full) * (1 + eps), color="#ee5e30")
plt.plot(n_full, np.ones_like(n_full) * (1 - eps), color="#ee5e30")
plt.plot(n, 1 / n, 'o', markersize=4, label='$y=a_n$')
plt.xticks(range(0, nmax + 1))
plt.legend()


ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=nmax + 1, ymin=-2.47, ymax=5.47, 
               xlabel="n", ylabel="y") 
Рис. 4.14: График и коридор вокруг с «размахом» .

Однако, уже значение подходит. Действительно, лишь одна точка лежит внутри коридора с «размахом» вокруг прямой , см. рис. 4.15.

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

nmax = 20
n = np.arange(1, nmax + 1)
eps = 1/3
n_full = np.linspace(0, nmax + 1 - 0.5)
plt.fill_between(n_full, np.ones_like(n_full) * (1 + eps),
    np.ones_like(n_full) * (1 - eps), color='#ee5d306b')
plt.plot(n_full, np.ones_like(n_full), color="#ee5e30")
plt.plot(n_full, np.ones_like(n_full), color="#cf356b")
plt.plot(n_full, np.ones_like(n_full) * (1 + eps), color="#ee5e30")
plt.plot(n_full, np.ones_like(n_full) * (1 - eps), color="#ee5e30")
plt.plot(n, 1 / n, 'o', markersize=4, label='$y=a_n$')
plt.xticks(range(0, nmax + 1))
plt.legend()


ob.center_spines(grid=False, minor_ticks=False)
ob.settle_axes(xmin=-0.9, xmax=nmax + 1, ymin=-2.47, ymax=5.47, 
               xlabel="n", ylabel="y") 
Рис. 4.15: График и коридор вокруг с «размахом» .
Итак, пусть мы взяли . Теперь в соответствии с формулой (4.10) для всякого натурального нужно научиться строить такое , что и одновременно
По картинке видно, что нам подойдёт любое , начиная с . Поскольку минимальное значение для равно 1, то любое , удовлетворяющее условию , удовлетворяет и условию , и значит, нам подходит. Осталось построить натуральное число , которое гарантированно больше данного натурального числа . Как это сделать? Можно просто прибавить единицу к , и всё!

Итак, положим: . Осталось доказать, что выполняется неравенство (4.11). Действительно:

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

4.3.3Несуществование предела

Не у всякой последовательности существует предел.

Утверждение 4. Последовательность не имеет никакого предела.

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

Формально, утверждение «последовательность имеет предел» записывается так: найдётся какое-то число , которое является пределом . В кванторах:

Ух! Четыре квантора.

Давайте напишем отрицание к этому утверждению (это как раз то, что нам нужно доказать):

Иными словами, для всякого вещественного числа , справедливо утверждение: не является пределом нашей последовательности.

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

Случай . Как обычно, начнём с картинки, см. рис. 4.16. Мы отметили точку между и , но на самом деле она может быть какой угодно, кроме .

Нарисован график последовательности a_n=(-1)^n. На оси y
отмечена точка A между точками 0 и -1. Проведены горизонтальные
прямые y=1, y=-1, y=A
Рис. 4.16: График последовательности .
Теперь нужно выбрать такое , что последовательность будет время от времени выскакивать из -коридора сколько угодно далеко в будущем. Как найти ? Поскольку мы знаем, что , и также знаем, что сколь угодно далеко в будущем последовательность посещает точку , логично выбрать такой размах коридора, при котором он не будет содержать точки с . Это легко сделать: достаточно в качестве взять число, которое было бы меньше, чем расстояние от до . В этом случае, если элемент последовательности равен , его расстояние до будет гарантированно больше, чем .

Положим

Тут важно, что и следовательно .

Тогда одна из границ коридора будет проходить в точности посередине между и , см. рис. 4.17. Пусть теперь дано произвольное натуральное . Из рисунка видно, что каким бы ни было это , найдутся элементы последовательности, лежащие вне коридора между и после (заштрихованная область на рисунке). Собственно, мы именно так и выбирали : для любого чётного , и следовательно соответстующая точка лежит вне указанного коридора. Для любого найдётся чётное натуральное число — оно-то нам и нужно.

На предыдущей картинке дополнительно нарисованы горизонтальные
прямые y=A+ε и y=A-ε, точка A+ε лежит посередине между A и 1.
Проведена вертикальная прямая n=N (N выбрано равным 6), закрашен
коридор правее прямой n=N между прямыми y=A+ε и y=A-ε.
Рис. 4.17: График последовательности и коридор для выбранного значения .
Чтобы сделать рассуждение совсем железобетонным, нужно привести явный способ построения по . Тут можно действовать разными методами — например, можно выбирать первое чётное, большее , но можно проще: положить
Действительно, для всех натуральных и число гарантированно чётное.

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

Поскольку и это положительное число, это неравенство заведомо верно.

Таким образом, для любого мы предъявили такое значение , что для всех натуральных мы построили такое , что и . Значит, не является пределом нашей последовательности.

Случай . Он доказывается полностью аналогично, и даже проще, потому что теперь значение известно. Хорошее упражнение — написать это доказательство явно и аккуратно, подобно тому, как выше разборан случай . Пожалуйста, сделайте это, прежде, чем идти дальше!

4.4Единственность предела

Когда мы записываем выражение типа
мы подразумеваем, что левая часть равенства является каким-то однозначно определенным числом. Конечно, мы понимаем, что не всякое выражение обязано иметь числовое значение (например, арифметическое выражение не имеет никакого числового значения), но если уж имеет, то мы предполагаем, что это значение определяется однозначно. Тем не менее, в определении предела никаких требований, связанных с единственностью предела, не накладывается. Как видно, это определение отвечает на вопрос «является ли пределом последовательности », но вдруг для одной и той же последовательности найдутся два разных числа, для которых ответ будет положительным? В этом случае запись вроде (4.13) потеряла бы всякую определенность.

К счастью, так не бывает. Давайте это докажем.

Теорема 1. Если предел последовательности существует, то он единственный. Иными словами, пусть есть последовательность и два числа, и , удовлетовряющие определению предела для этой последовательности. Тогда обязательно .

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

Впрочем, давайте вернёмся с формального уровня на интуитивный. У нас есть два разных числа, и , и два утверждения: одно говорит, что весь хвост последовательности, начиная с какого-то элемента, будет близок к , а другое утверждение говорит, что хвост той же самый последовательности (начинающийся, впрочем, с какого-нибудь другого элемента) целиком близок к . Могут ли эти два утверждения друг другу не противоречить? Зависит от того, что считать «близкими точками». Но это как раз регулируются нашими значениями и . И они сейчас находятся в нашей власти — мы можем их выбирать какими хотим!

Действительно, до сих пор когда мы доказывали, что предел равен какому-то числу, мы воспринимали как нечто данное, что от нас не зависит. Потому что нам нужно было доказать утверждение, взятое из определения предела, а оно начинается квантором «для всякого ». В этот же раз мы находимся в обратной ситуации. Нам дано (по предположению), что предел последовательности равен . Значит, нам сказано, что для всякого найдётся такое , что какое-то там неравенство выполняется. Если мы хотим найти для , мы можем это сделать. И для . И для любого другого положительного можем найти. Аналогично и со вторым утверждением.

Как выбрать и , чтобы имеющиеся у нас утверждения пришли к явному противоречию? Давайте посмотрим на картинку, рис. 4.18.

Построен график некоторой последовательности {a_n}. На вертикальной
оси отмечены две различные точки A_1 и A_2, A_1 > A_2. Отрезок [A_1,
A_2] разделен на три равные части двумя точками, нижняя A_2+ε,
верхняя A_1-ε. Также отмечены точки A_1+ε и A_2-ε. Через все
отмеченные точки проведены горизонтальные прямые. Нарисованы
вертикальные прямые n=N_1=5 и n=N_2=8. Закрашены коридоры правее
N_1 вокруг A_1 и правее N_2 вокруг A_2. Левее N_1 и N_2 точки
последователности располагаются произвольным образом, между N_1 и
N_2 только внутри коридора вокруг A_1, правее N_2 точек не отмечено.
Рис. 4.18: Противоречие в доказательстве теоремы 1.
Известно, что, начиная с некоторого номера , все элементы последовательности лежат в -коридоре вокруг точки . В то же время, начиная с некоторого , все элементы последовательности лежат в -коридоре вокруг точки . Если выбрать эти коридоры непересекающимися, будет явное противоречие — точки не смогут жить в обоих одновременно!

Какими выбрать и , чтобы коридоры не пересекались? Это легко: давайте разделим расстояние между и на три. Тогда верхняя граница нижнего (на картинке) коридора вокруг будет проходить по нижней трети отрезка , а нижняя граница верхнего коридора — по верхней трети этого же отрезка. Конечно, пересечения не будет, и мы победим.

Давайте сделаем железобетонное рассуждение. Итак, пусть

Здесь мы воспользовались предположением, что , и значит наши и положительны.

Пусть также

Теперь нужно найти элемент (достаточно будет одного), который приведёт нас к противоречию. Его номер должен одновременно удовлетворять условию (потому что утверждение про предел (см. (4.14)) даёт нетривиальную оценку именно для таких , а про меньшие оно ничего не утверждает) и (аналогично с утверждением про ). Как найти такое ? Очень просто: можно взять максимум из и и прибавить 1. Положим:
Тогда и согласно (4.14) в этом случае обязательно
Одновременно и согласно (4.15) в этом случае обязательно
Чтобы не возиться с раскрытием модулей и рассмотрением разных случаев, применим известное неравенство треугольника: расстояние от до не превосходит сумму расстояний от до и от до . Имеем:
Но — положительное число! Положительные числа уменьшаются, если их умножить на , а не увеличиваются, как следует из нашего неравенства. Противоречие! Теорема доказана.

4.5Заключение

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