← 返回《人工智能数学基础》
📑 查看全课大纲(第 46 / 93 节)
  1. 1.概论和集合的定义
  2. 2.逼疯康托的实数集理论
  3. 3.常用不等式与映射
  4. 4.函数及特殊函数
  5. 5.序列极限的定义
  6. 6.序列极限的性质与夹逼定理
  7. 7.重要极限
  8. 8.无穷小量,无穷大量和一组重要的阶的比较关系
  9. 9.聚点原理
  10. 10.函数极限及其性质
  11. 11.重要极限与等价无穷小
  12. 12.连续函数
  13. 13.导数的概念(那些年,扛起牛顿的胡克)
  14. 14.定义法求导
  15. 15.函数四则运算的导数与反函数求导法则
  16. 16.复合函数,隐函数,参数式求导
  17. 17.不定式求导之“洛必达与伯努利的师生情”
  18. 18.一阶微分
  19. 19.高阶导数
  20. 20.高阶微分
  21. 21.罗尔中值定理与拉格朗日中值定理
  22. 22.柯西空降科学院遭排挤
  23. 23.泰勒公式与泰勒的克妻属性
  24. 24.利用泰勒展开唯一性定理计算泰勒展开
  25. 25.泰勒公式的余项估计
  26. 26.极值问题与导数
  27. 27.函数凹凸性
  28. 28.无卵用的渐近线与函数作图
  29. 29.不定积分的定义
  30. 30.第一换元法
  31. 31.第二换元法
  32. 32.分部积分法
  33. 33.有理式积分
  34. 34.三角替换
  35. 35.定积分的概念
  36. 36.定积分的性质与积分中值定理
  37. 37.变上限定积分
  38. 38.微积分基本定理之“高斯教你如何优雅地装逼”
  39. 39.定积分的换元法
  40. 40.奇偶函数与周期函数的定积分
  41. 41.曲线求长与不可求长曲线(海岸线居然算不出长度?)
  42. 42.旋转体体积
  43. 43.旋转体侧面积
  44. 44.极坐标下图形的面积(数学系常用表白曲线)
  45. 45.欧式空间
  46. 46.点列极限,开集与闭集
  47. 47.多元函数的定义
  48. 48.多元函数的极限
  49. 49.多元连续函数
  50. 50.一阶偏导数
  51. 51.高阶偏导数
  52. 52.全微分
  53. 53.方向导数与梯度
  54. 54.链式法则
  55. 55.一阶全微分形式的不变性与高阶微分
  56. 56.多元函数的泰勒公式
  57. 57.隐函数存在定理与逆映射存在定理
  58. 58.多元函数的极值
  59. 59.矩阵基础知识
  60. 60.行列式的定义与特殊矩阵的行列式
  61. 61.行列式的性质
  62. 62.行列式按k行展开
  63. 63.线性方程组初步与高斯消元法
  64. 64.齐次线性方程组与Cramer法则
  65. 65.线性空间
  66. 66.线性相关与线性无关
  67. 67.向量组的秩
  68. 68.矩阵的秩与线性方程组有解的充要条件
  69. 69.齐次线性方程组的解集结构
  70. 70.非齐次线性方程组解集结构
  71. 71.基与维数
  72. 72.矩阵的乘法
  73. 73.特殊矩阵
  74. 74.矩阵乘积的秩与行列式
  75. 75.矩阵的逆
  76. 76.正交矩阵
  77. 77.矩阵对角化与特征值特征向量
  78. 78.实对称矩阵对角化
  79. 79.二次型与正定矩阵
  80. 80.LU分解
  81. 81.Cholesky分解
  82. 82.SVD分解
  83. 83.线搜索
  84. 84.步长
  85. 85.最速下降法和牛顿法
  86. 86.共轭梯度法
  87. 87.拟牛顿法
  88. 88.无约束优化
  89. 89.若干知识点补充(一)
  90. 90.若干知识点补充(二)
  91. 91.凸优化问题
  92. 92.对偶问题(一)
  93. 93.对偶问题(二)

点列极限,开集与闭集

约 38 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

点列极限,开集与闭集

小象实战讲义 · 人工智能数学基础

在上一节,我们定义了高维空间中的“邻域”,这为我们研究多元函数奠定了基础。本节我们将以此为核心工具,正式进入多元微分学的世界。首先,我们将把熟悉的数列极限概念推广到高维空间中的“点列”极限,并探讨其基本性质。随后,我们将借助点列极限,定义集合的“聚点”与“孤立点”,并最终引出多元分析中至关重要的两个拓扑概念——开集闭集。理解这些概念,是学习多元函数连续性、可微性以及后续最优化理论中可行域性质的关键一步。

💡 核心导读

本节将构建从一维到高维分析的核心框架,你需要掌握:

  1. 多元点列极限:将数列极限的 ϵN\epsilon-N 语言推广到 Rn\mathbb{R}^n 中,理解其几何意义(落入邻域)与分量收敛的等价关系。
  2. 聚点与孤立点:基于点列极限,定义集合的“极限点”(聚点)和“孤悬在外”的点(孤立点),这是区分集合“边界”行为的关键。
  3. 内点、外点与边界点:从“邻域是否完全在集合内”的角度,对空间中的点进行精确分类,为定义开集与闭集铺路。
  4. 开集与闭集:核心拓扑概念。开集是“每一点都是内点”的集合,不包含其边界;闭集是“包含其所有聚点”的集合,对极限运算封闭。
  5. 闭包与基本定理:理解集合的“闭包”是其最小的闭超集。了解 Rn\mathbb{R}^n 的完备性、闭集套定理等基本定理在高维的成立。

多元点列的极限

Rn\mathbb{R}^n 中,一个点列是一串有序的点:{xk}k=1{\mathbf{x}k}{k=1}^{\infty},其中每个 xk=(xk(1),xk(2),,xk(n))Rn\mathbf{x}k = (x{k}^{(1)}, x_{k}^{(2)}, \dots, x_{k}^{(n)}) \in \mathbb{R}^n

定义(点列极限):设 {xk}{\mathbf{x}_k}Rn\mathbb{R}^n 中的一个点列,x0Rn\mathbf{x}_0 \in \mathbb{R}^n。如果对于任意 ϵ>0\epsilon > 0,都存在正整数 KK,使得当 k>Kk > K 时,都有 xkx0<ϵ,|\mathbf{x}_k - \mathbf{x}_0| < \epsilon, 则称点列 {xk}{\mathbf{x}_k} 收敛x0\mathbf{x}0,记作 limkxk=x0\lim{k \to \infty} \mathbf{x}_k = \mathbf{x}_0x0\mathbf{x}_0 称为该点列的极限。不收敛的点列称为发散点列。

这里的 |\cdot| 是欧几里得范数(距离)。其几何意义非常直观:从某一项之后,点列中所有的点都落在极限点 x0\mathbf{x}_0ϵ\epsilon-邻域 U(x0,ϵ)U(\mathbf{x}_0, \epsilon) 内部。

定理(分量收敛准则):点列 {xk}{\mathbf{x}_k} 收敛于 x0=(x0(1),,x0(n))\mathbf{x}_0 = (x_0^{(1)}, \dots, x_0^{(n)})充要条件是它的每个分量序列都收敛于 x0\mathbf{x}0 的对应分量,即 limkxk(i)=x0(i),i=1,2,,n.\lim{k \to \infty} x_k^{(i)} = x_0^{(i)}, \quad i = 1, 2, \dots, n.

:在 R2\mathbb{R}^2 中,点列 xk=(1k,1k)\mathbf{x}k = (\frac{1}{k}, \frac{1}{k})。因为 limk1k=0\lim{k \to \infty} \frac{1}{k} = 0,所以根据分量收敛准则,limkxk=(0,0)\lim_{k \to \infty} \mathbf{x}_k = (0, 0)

与数列极限类似,收敛的点列具有唯一性有界性

  • 唯一性:若点列收敛,则其极限唯一。
  • 有界性:收敛点列 {xk}{\mathbf{x}_k} 必有界,即存在 M>0M > 0,使得对所有 kk,有 xkM|\mathbf{x}_k| \le M

极限运算也与线性运算相容。设 limxk=a\lim \mathbf{x}_k = \mathbf{a}, limyk=b\lim \mathbf{y}_k = \mathbf{b}αR\alpha \in \mathbb{R},则:

  1. lim(αxk)=αa\lim (\alpha \mathbf{x}_k) = \alpha \mathbf{a}
  2. lim(xk±yk)=a±b\lim (\mathbf{x}_k \pm \mathbf{y}_k) = \mathbf{a} \pm \mathbf{b}
  3. limxk,yk=a,b\lim \langle \mathbf{x}_k, \mathbf{y}_k \rangle = \langle \mathbf{a}, \mathbf{b} \rangle(内积与极限可交换顺序)。

聚点、孤立点与集合的拓扑

点列的极限点启发我们定义集合的“极限点”。

定义(聚点与孤立点):设 ERnE \subset \mathbb{R}^nxRn\mathbf{x} \in \mathbb{R}^n

  • 如果 x\mathbf{x}任意去心邻域 U(x,δ)U^\circ(\mathbf{x}, \delta) 都包含 EE 中的点(即 U(x,δ)EU^\circ(\mathbf{x}, \delta) \cap E \neq \varnothing),则称 x\mathbf{x}EE 的一个聚点(或极限点)。EE 的所有聚点构成的集合称为 EE导集,记作 EE’
  • 如果 xE\mathbf{x} \in E,但 x\mathbf{x} 不是 EE 的聚点,则称 x\mathbf{x}EE 的一个孤立点

关键理解

  1. 聚点不一定属于原集合 EE。例如,E={(1/n,1/n)nN}R2E = {(1/n, 1/n) \mid n \in \mathbb{N}} \subset \mathbb{R}^2,则 (0,0)(0,0)EE 的聚点,但 (0,0)E(0,0) \notin E
  2. 聚点也可以在集合内部。例如,一个实心圆盘内部的每一点都是该集合的聚点。
  3. 孤立点属于集合,但存在一个足够小的邻域,其中除了它自己,再没有集合 EE 中的其他点。

定理(聚点的点列刻画):点 x\mathbf{x} 是集合 EE 的聚点,当且仅当存在 EE 中一个由互不相同的点构成的点列 {xk}{\mathbf{x}k},使得 limkxk=x\lim{k \to \infty} \mathbf{x}_k = \mathbf{x}

这个定理将“静态”的聚点定义与“动态”的点列极限联系起来,非常实用。

基于邻域与集合的关系,我们可以对空间中的点进行更精细的分类。

定义(内点、外点、边界点):设 ERnE \subset \mathbb{R}^nxRn\mathbf{x} \in \mathbb{R}^n

  • 内点:如果存在 δ>0\delta > 0,使得邻域 U(x,δ)EU(\mathbf{x}, \delta) \subset EEE 的所有内点构成的集合称为 EE内部,记作 EE^\circE˚\mathring{E}
  • 外点:如果存在 δ>0\delta > 0,使得邻域 U(x,δ)E=U(\mathbf{x}, \delta) \cap E = \varnothingEE 的所有外点构成的集合称为 EE外部
  • 边界点:如果对任意 δ>0\delta > 0,邻域 U(x,δ)U(\mathbf{x}, \delta) 既包含 EE 中的点,也包含不在 EE 中的点(即 U(x,δ)EU(\mathbf{x}, \delta) \cap E \neq \varnothingU(x,δ)EcU(\mathbf{x}, \delta) \cap E^c \neq \varnothing)。EE 的所有边界点构成的集合称为 EE边界,记作 E\partial E

这里 Ec=RnEE^c = \mathbb{R}^n \setminus EEE 的补集。

性质

  • 内点一定属于 EE,外点一定不属于 EE,边界点可能属于 EE 也可能不属于。
  • Rn\mathbb{R}^n 中的每一个点,对于给定集合 EE,必是且仅是内点、外点或边界点中的一种。
  • EE 的外部等于 EcE^c 的内部,即 (Ec)(E^c)^\circ

:考虑 R2\mathbb{R}^2 中的集合 E={(x,y)x1,y1}E = {(x, y) \mid |x| \le 1, |y| \le 1},即包含边界的正方形。

  • 其内部为 E={(x,y)x<1,y<1}E^\circ = {(x, y) \mid |x| < 1, |y| < 1}(开正方形)。
  • 其边界为 E={(x,y)x=1 或 y=1}\partial E = {(x, y) \mid |x|=1 \text{ 或 } |y|=1}(正方形的四条边)。
  • 外部为 {(x,y)x>1 或 y>1}{(x, y) \mid |x|>1 \text{ 或 } |y|>1}

如果我们将定义改为 E={(x,y)x<1,y<1}E = {(x, y) \mid |x| < 1, |y| < 1}(开正方形),则边界 E\partial E 不变,但此时边界上的点都不属于 EE。这印证了“边界点可能不属于集合”的性质。

开集与闭集

有了内点和边界点的概念,我们可以定义分析学中最重要的两类集合。

定义(开集与闭集)

  • 开集:如果集合 EE 中的每一点都是它的内点(即 E=EE = E^\circ),则称 EE开集。特别规定,空集 \varnothing 是开集。
  • 闭集:如果集合 EE 的补集 EcE^c 是开集,则称 EE闭集

由定义可知,Rn\mathbb{R}^n 本身既是开集也是闭集(因为 Rn\mathbb{R}^n 的补集是空集,是开集)。空集也既是开集又是闭集。在一般的 Rn\mathbb{R}^n 中,这是仅有的两个既开又闭的集合。

几何直观

  • 开集:像一个“不带皮”的实体,比如一个不包含圆周的圆盘 (x2+y2<1)(x^2+y^2 < 1)。它的边界不属于自己。
  • 闭集:像一个“带皮”的实体,比如一个包含圆周的圆盘 (x2+y21)(x^2+y^2 \le 1)。它包含了自己的边界。

定理(开集与闭集的运算性质)

  1. 任意多个开集的并集仍是开集。
  2. 有限个开集的交集仍是开集。(注意:无限个开集的交集不一定是开集!)
  3. 任意多个闭集的交集仍是闭集。
  4. 有限个闭集的并集仍是闭集。(注意:无限个闭集的并集不一定是闭集!)

例(无限个开集的交集未必是开集):在 R\mathbb{R} 中,令开集 Gn=(0,1+1n)G_n = (0, 1+\frac{1}{n}),则 n=1Gn=(0,1]\bigcap_{n=1}^{\infty} G_n = (0, 1]。这是一个左开右闭的区间,点 11 是边界点但不是内点,因此该集合不是开集。

为了更深刻地理解闭集,我们引入“闭包”的概念。

定义(闭包):集合 EE 与其所有聚点(即导集 EE’)的并集,称为 EE闭包,记作 E\overline{E}。即 E=EE\overline{E} = E \cup E’

定理(闭集的等价刻画):设 ERnE \subset \mathbb{R}^n,则以下命题等价:

  1. EE 是闭集。
  2. EE 包含其所有的聚点(即 EEE’ \subset E)。
  3. EE 等于其自身的闭包(即 E=EE = \overline{E})。

闭包的直观:闭包 E\overline{E} 是包含 EE最小闭集。它就像是给集合 EE “穿上”了它的边界,使其变得“封闭”。如果一个集合本来就是闭集,那么它的闭包就是它自己。

核心洞察:开集与闭集最本质的差异之一在于对极限运算的封闭性

  • 闭集对极限运算封闭:如果一个闭集中的点列收敛,那么它的极限点一定还在这个闭集内。
  • 开集则不具备此性质:一个开集中的点列收敛,其极限点可能落在开集的边界上,而边界点不属于开集。

完备性与基本定理

Rn\mathbb{R}^n 作为我们工作的舞台,继承了一维实数集 R\mathbb{R} 的良好性质。

定理(Rn\mathbb{R}^n 的完备性)Rn\mathbb{R}^n 中的点与 nn 维欧几里得空间中的点一一对应,且满足柯西收敛准则:一个点列收敛的充要条件是它是一个柯西列。

定理(闭集套定理):设 {Fk}{F_k} 是一列非空闭集,满足 F1F2FkF_1 \supset F_2 \supset \dots \supset F_k \supset \dots(一个套一个),且这些闭集的直径 d(Fk)=supx,yFkxyd(F_k) = \sup_{\mathbf{x}, \mathbf{y} \in F_k} |\mathbf{x} - \mathbf{y}| 满足 limkd(Fk)=0\lim_{k \to \infty} d(F_k) = 0。则存在唯一的点 x0Rn\mathbf{x}0 \in \mathbb{R}^n,使得 k=1Fk={x0}\bigcap{k=1}^{\infty} F_k = {\mathbf{x}_0}

这是实数集中闭区间套定理的直接推广。直径趋于零保证了这些“套娃”最终收缩到一个点。

定理(聚点定理 / 列紧性)Rn\mathbb{R}^n 中的任何有界无穷点集至少有一个聚点。等价地,Rn\mathbb{R}^n 中的任何有界点列必然存在收敛的子列。

这个定理在优化理论中至关重要,它保证了在有界闭集(紧集)上定义的连续函数一定能取到最大值和最小值。

import numpy as np
import matplotlib.pyplot as plt

# 演示:点列极限、聚点与集合的可视化
np.random.seed(42)

# 1. 定义一个点列:x_k = (1/k, sin(1/k) / k),极限为 (0,0)
k_vals = np.arange(1, 101)
x_seq = np.column_stack((1/k_vals, np.sin(1/k_vals) / k_vals))
limit_point = np.array([0.0, 0.0])

# 2. 定义一个集合 E: 单位圆盘内且在第一象限的点,并加上一个孤立点
theta = np.random.uniform(0, np.pi/2, 200)
r = np.random.uniform(0, 1, 200)
E_circle = np.column_stack((r*np.cos(theta), r*np.sin(theta)))
isolated_point = np.array([[1.5, 1.5]])  # 一个孤立的点
E = np.vstack([E_circle, isolated_point])

# 3. 计算点列到极限点的距离
distances = np.linalg.norm(x_seq - limit_point, axis=1)

# 4. 可视化
fig, axes = plt.subplots(1, 2, figsize=(12, 5))

# 子图1:点列收敛过程
ax1 = axes[0]
ax1.plot(x_seq[:, 0], x_seq[:, 1], 'b.-', alpha=0.6, label='点列 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mspace linebreak="newline"></mspace><mi>m</mi><mi>a</mi><mi>t</mi><mi>h</mi><mi>b</mi><mi>f</mi><msub><mi>x</mi><mi>k</mi></msub></mrow><annotation encoding="application/x-tex">\\mathbf{x}_k</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="mspace katex-newline"></span><span class="katex-base"><span class="katex-strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">ma</span><span class="mord mathnormal">t</span><span class="mord mathnormal">hb</span><span class="mord mathnormal" style="margin-right:0.1076em;">f</span><span class="mord"><span class="mord"><span class="mord mathnormal">x</span></span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3361em;"><span style="top:-2.55em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="katex-sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.0315em;">k</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>', markersize=3)
ax1.plot(limit_point[0], limit_point[1], 'ro', label='极限点 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mspace linebreak="newline"></mspace><mi>m</mi><mi>a</mi><mi>t</mi><mi>h</mi><mi>b</mi><mi>f</mi><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding="application/x-tex">\\mathbf{x}_0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="mspace katex-newline"></span><span class="katex-base"><span class="katex-strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">ma</span><span class="mord mathnormal">t</span><span class="mord mathnormal">hb</span><span class="mord mathnormal" style="margin-right:0.1076em;">f</span><span class="mord"><span class="mord"><span class="mord mathnormal">x</span></span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="katex-sizing reset-size6 size3 mtight"><span class="mord mtight">0</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>', markersize=8)
# 画一个 epsilon 邻域 (圆)
epsilon = 0.05
circle = plt.Circle(limit_point, epsilon, color='r', fill=False, linestyle='--', label=f'<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mspace linebreak="newline"></mspace><mi>e</mi><mi>p</mi><mi>s</mi><mi>i</mi><mi>l</mi><mi>o</mi><mi>n</mi><mo>=</mo><mrow><mi>e</mi><mi>p</mi><mi>s</mi><mi>i</mi><mi>l</mi><mi>o</mi><mi>n</mi></mrow></mrow><annotation encoding="application/x-tex">\\epsilon={epsilon}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="mspace katex-newline"></span><span class="katex-base"><span class="katex-strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">e</span><span class="mord mathnormal">p</span><span class="mord mathnormal">s</span><span class="mord mathnormal">i</span><span class="mord mathnormal" style="margin-right:0.0197em;">l</span><span class="mord mathnormal">o</span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="katex-base"><span class="katex-strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord"><span class="mord mathnormal">e</span><span class="mord mathnormal">p</span><span class="mord mathnormal">s</span><span class="mord mathnormal">i</span><span class="mord mathnormal" style="margin-right:0.0197em;">l</span><span class="mord mathnormal">o</span><span class="mord mathnormal">n</span></span></span></span></span>邻域')
ax1.add_patch(circle)
ax1.set_xlim(-0.1, 1.1)
ax1.set_ylim(-0.1, 0.1)
ax1.set_aspect('equal', adjustable='box')
ax1.set_title('点列收敛的几何直观')
ax1.legend()
ax1.grid(True, alpha=0.3)

# 子图2:集合E,其内部、边界与孤立点
ax2 = axes[1]
# 画出单位圆的第一象限部分(边界)
theta_boundary = np.linspace(0, np.pi/2, 100)
boundary_x = np.cos(theta_boundary)
boundary_y = np.sin(theta_boundary)
ax2.plot(boundary_x, boundary_y, 'k-', linewidth=2, label='边界 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mspace linebreak="newline"></mspace><mi>p</mi><mi>a</mi><mi>r</mi><mi>t</mi><mi>i</mi><mi>a</mi><mi>l</mi><mi>E</mi></mrow><annotation encoding="application/x-tex">\\partial E</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="mspace katex-newline"></span><span class="katex-base"><span class="katex-strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">p</span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.0278em;">r</span><span class="mord mathnormal">t</span><span class="mord mathnormal">ia</span><span class="mord mathnormal" style="margin-right:0.0197em;">l</span><span class="mord mathnormal" style="margin-right:0.0576em;">E</span></span></span></span> (部分)')
# 画出集合E中的点(内部点)
ax2.scatter(E_circle[:, 0], E_circle[:, 1], c='lightblue', s=10, alpha=0.7, label='<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>E</mi></mrow><annotation encoding="application/x-tex">E</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="katex-base"><span class="katex-strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.0576em;">E</span></span></span></span> 的内点')
# 画出孤立点
ax2.scatter(isolated_point[:, 0], isolated_point[:, 1], c='red', s=80, marker='*', label='孤立点')
# 标注原点 (0,0) 是一个聚点但不属于E(如果E不包含原点)
ax2.plot(0, 0, 'go', markersize=8, label='聚点 (0,0)')
ax2.set_xlim(-0.1, 1.6)
ax2.set_ylim(-0.1, 1.6)
ax2.set_aspect('equal', adjustable='box')
ax2.set_title('集合 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>E</mi></mrow><annotation encoding="application/x-tex">E</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="katex-base"><span class="katex-strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.0576em;">E</span></span></span></span>:内点、边界与孤立点')
ax2.legend(loc='upper right')
ax2.grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

# 打印点列距离,观察其趋于0
print("点列前5项到极限点的距离:", distances[:5])
print("点列最后5项到极限点的距离:", distances[-5:])
print(f"距离是否趋于0?最后一项距离 < 0.01: {distances[-1] < 0.01}")

📝 动手练一练

  1. 判断聚点:在 R2\mathbb{R}^2 中,考虑集合 A={(x,y)y=sin(1/x),x>0}A = {(x, y) \mid y = \sin(1/x), x > 0}。请问点 (0,0)(0, 0) 和点 (0,1)(0, 1) 是否是 AA 的聚点?说明理由。

  2. 开集与闭集:判断以下 R2\mathbb{R}^2 中的集合是开集、闭集,还是既不开也不闭?并写出它们的内部 E˚\mathring{E}、闭包 E\overline{E} 和边界 E\partial E。 a) E1={(x,y)1<x2+y2<4}E_1 = {(x, y) \mid 1 < x^2 + y^2 < 4} b) E2={(x,y)xQ,yQ}E_2 = {(x, y) \mid x \in \mathbb{Q}, y \in \mathbb{Q}}Q\mathbb{Q} 为有理数集)

参考答案

  1. (0,0)(0,0)AA 的聚点。因为当 xx 从正方向趋于 00 时,sin(1/x)\sin(1/x)[1,1][-1,1] 之间振荡,可以在 AA 中找到一系列互异的点 (xk,sin(1/xk))(x_k, \sin(1/x_k)) 收敛到 (0,y0)(0, y_0),其中 y0y_0 可以是 [1,1][-1,1] 内的任意值。特别地,可以构造子列收敛到 (0,0)(0,0)(0,1)(0,1) 同理,也是聚点。
  2. a) E1E_1 是一个开圆环。它是开集E1˚=E1\mathring{E_1} = E_1E1={(x,y)1x2+y24}\overline{E_1} = {(x, y) \mid 1 \le x^2 + y^2 \le 4}E1={(x,y)x2+y2=1 或 x2+y2=4}\partial E_1 = {(x, y) \mid x^2+y^2=1 \text{ 或 } x^2+y^2=4}。 b) E2E_2 是平面上的所有有理点。它既不是开集也不是闭集。因为任何点的邻域内都既有有理数也有无理数。其内部 E2˚=\mathring{E_2} = \varnothing,闭包 E2=R2\overline{E_2} = \mathbb{R}^2,边界 E2=R2\partial E_2 = \mathbb{R}^2

本章小结

本节我们将一元微积分中的极限与集合论基础成功地推广到了高维空间 Rn\mathbb{R}^n

要点回顾

  • 点列极限ϵN\epsilon-N 语言在高维的完美移植,其几何意义是点最终落入极限点的任意小邻域,且收敛等价于各分量收敛。
  • 聚点与分类:聚点是集合的“极限点”,可通过存在互异点列收敛于它来刻画。空间中的点相对于一个集合,可严格分为内点、外点和边界点。
  • 开集与闭集:开集由纯“内点”构成,不包含边界;闭集是开集的补集,等价于包含自身所有聚点,对极限运算封闭。它们是描述函数定义域、可行域性质的基础。
  • 基本定理Rn\mathbb{R}^n 继承了 R\mathbb{R} 的完备性、闭集套定理和聚点定理,保证了分析工具的可靠性。

行动清单

  1. 可视化理解:对于任意给出的 R2\mathbb{R}^2 中的点集(如一个圆、一条曲线、一些散点),尝试在纸上或心中画出其内部、边界,并判断它是否是开集或闭集。
  2. 定理验证:尝试构造例子验证“无限个开集的交集不一定是开集”以及“无限个闭集的并集不一定是闭集”。
  3. 联系后续:预习下一节“多元函数的极限与连续性”,思考如何用本节定义的“邻域”语言来定义函数在某点的极限,并对比一元情形。

— 小象教研组

配套学习资源与课件
  • 第9章讲义(含板书):多元微分学(PDF · 28.2MB)
    下载
🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问