Wang Haihua
🍈 🍉🍊 🍋 🍌
数列是一个有序的数字列表
如果 $S$ 是一个数列, $S_k$ 就是数列中第 $k$个元素. 以上面几个数列为例:
$$ \begin{aligned} &A_1 = 1 \\ &B_4 = 16 \\ &C_3 = \frac{1}{3} \end{aligned} $$一个数列 $S$ 有极限意味着 当 n 增加时,$S_n$ 无限接近某个常数. 这也意味着任给一个小的差值$\epsilon$, 我们总能找到一个足够大的数 $N$ 使得这个数列中下标比 $N$ 大的数与这个常数的差值小于 $\epsilon$.
常数 $a$ 被称为数列 $S$的极限当且仅当 对于任何正的 $\epsilon$, 总有一个数 $N$ 使得: $$ |a - S_n| < \epsilon $$ 对于所有 $n$ > $N$都成立.
在这种情况下,我们写作:
$$ \displaystyle\lim_{n \rightarrow \infty} S_n = a $$考虑如下数列 $$ C_n = \dfrac{1}{n} $$ 从直观上可以知道 $C_n$的极限是0。n越大$\frac{1}{n}$ 就越小,且不会小于0.
我们现在从定义的角度上来证明这一点。根据定义,要证明任给$\epsilon$, 总有一个正整数 $N_\epsilon$ s使得 $s_n$ 和极限 $a$ 的差小于 $\epsilon$ 对任何 $n$ 大于 $N_\epsilon$都成立.
假设我们取 $\epsilon=0.2$, 我们能找到 $N_{0.2}$ 使得: $$ s_n = \dfrac{1}{n} < 0.2 $$ 对所有 $n$ 大于 $N_{0.1}$的整数总成立. 显然: $$ N_{0.1} > \dfrac{1}{0.2} = 5. $$
如图所示:
对于任意 $\epsilon$, 我们总能用下列方法找到 $N_\epsilon$:
$$ N_\epsilon = \Big\lceil \dfrac{1}{\epsilon} \Big\rceil $$这里 $\lceil \alpha \rceil$ 指的是向下取整. 下面这幅图绘制了取不同的$\epsilon$时$N_\epsilon$的大小。
我们可以对数列进行如下运算:
$$ \begin{aligned} &(A + B)_n = A_n + B_n \\ &(A - B)_n = A_n - B_n \\ &(AB)_n = A_n B_n \\ &\Big(\dfrac{A}{B}\Big)_n = \dfrac{A_n}{B_n} \end{aligned} $$如果 $A$ 和 $B$ 分别有极限 $a$ $b$, 数列的和、差、积、分数与它们各自的极限之间的关系如下:
$$ \begin{aligned} &\displaystyle\lim_{n \rightarrow \infty} (A + B)_n = \displaystyle\lim_{n \rightarrow \infty} A_n + \displaystyle\lim_{n \rightarrow \infty} B_n = a + b\\ &\displaystyle\lim_{n \rightarrow \infty} (A - B)_n = \displaystyle\lim_{n \rightarrow \infty} A_n - \displaystyle\lim_{n \rightarrow \infty} B_n = a - b \\ &\displaystyle\lim_{n \rightarrow \infty} (AB)_n = (\displaystyle\lim_{n \rightarrow \infty} A_n)(\displaystyle\lim_{n \rightarrow \infty} B_n) = a b \\ &\displaystyle\lim_{n \rightarrow \infty} \Big(\dfrac{A}{B}\Big)_n = \dfrac{\displaystyle\lim_{n \rightarrow \infty} A_n}{\displaystyle\lim_{n \rightarrow \infty} B_n} = \dfrac{a}{b} \end{aligned} $$本文简单介绍了数列及数列极限的定义,并通过两个例子对上述概念进行了阐释;同时介绍了极限的四则运算法则。
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
plt.rcParams['font.family']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
例1
A = lambda n: n
B = lambda n: n**2
C = lambda n: 1/n
int_range = range(1,20)
f, (ax1, ax2, ax3) = plt.subplots(1, 3,figsize=(15,5))
ax1.scatter(int_range, [A(n) for n in int_range], c="k")
ax1.set_title(r"$A_n = n$")
ax2.scatter(int_range, [B(n) for n in int_range], c="k")
ax2.set_title(r"$B_n = n^2$")
ax3.scatter(int_range, [C(n) for n in int_range], c="k")
ax3.set_title(r"$C_n = 1/n$")
plt.savefig('images/cal01.png')
例2
M = 40
int_range = range(1,M)
epsilon = 0.2
N = np.ceil(1/epsilon)
plt.scatter(int_range, [C(n) for n in int_range], c="k", label="数列")
plt.fill_between(int_range, -epsilon, epsilon, alpha = 0.1, color = "orange")
plt.axhline(0, c = "k", lw = 2, ls = "--", label="极限")
plt.axvline(N, lw = 2, ls = "-.", label=r"$N_{0.2}$", color = "b")
plt.legend(loc="upper right")
plt.xlim(1,M-1)
plt.savefig('images/cal02.png')
M = 40
int_range = range(1,M)
epsilon1 = 0.2
N1 = np.ceil(1/epsilon1)
epsilon2 = 0.1
N2 = np.ceil(1/epsilon2)
epsilon3 = 0.05
N3 = np.ceil(1/epsilon3)
plt.scatter(int_range, [C(n) for n in int_range], c="k", label="数列",s=10)
plt.fill_between(int_range, -epsilon1, epsilon1, alpha = 0.1, color = "orange", label=r"$\epsilon_1$")
plt.fill_between(int_range, -epsilon2, epsilon2, alpha = 0.2, color = "r", label=r"$\epsilon_2$")
plt.fill_between(int_range, -epsilon3, epsilon3, alpha = 0.4, color = "g", label=r"$\epsilon_3$")
plt.axhline(0, c = "k", lw = 2, ls = "--", label="极限")
plt.axvline(N1, lw = 2, ls = "-.", label=r"$N_{0.2}$", color = "b")
plt.axvline(N2, lw = 2, ls = "-.", label=r"$N_{0.1}$", color = "r")
plt.axvline(N3, lw = 2, ls = "-.", label=r"$N_{0.05}$", color = "g")
plt.legend(loc="upper right")
plt.xlim(1,M-1)
plt.savefig('images/cal03.png')