学到泛函分析第七章前后,很多人会有一种突然被扔进另一个维度的感觉。前一章还在老老实实算范数、验证三角不等式,这一章开始,“收敛”这个词一下子裂成了三份:范数收敛、弱收敛、弱星收敛。同一个序列在同一个空间里,可能对一种收敛成立、对另一种不成立,甚至换个空间身份(把 ℓ¹ 当成自身,和把 ℓ¹ 当成 c₀ 的对偶)结论就翻过来了。这种“一词三义”的混乱,是泛函分析从“算”过渡到“结构”的分水岭,也是后面变分法、偏微分方程弱解、算子谱理论全部绕不开的地基。
我写这篇笔记,是想把弱收敛与弱星收敛这两个概念从“定义背下来”变成“能在草稿纸上判断一个具体序列到底收不收敛、按哪种意义收敛”。所以下面不会只堆定理,我会把 ℓ^p、c₀、ℓ¹、L^p、测度空间这几个经典场景摆在一起对比,把每个反例背后的判据讲透,再给出一套我自己做题时一直在用的判别套路。如果你正在啃泛函分析的收敛部分,或者后面要用变分法、数值分析里“抽弱收敛子列”那套手法,这篇应该能帮你把思路理顺。
1. 范数收敛为什么不够用:从无限维单位球失去紧性说起
1.1 有限维的错觉,在无限维直接崩掉
在 ℝⁿ 里我们被惯坏了两件事:有界闭集必紧,以及“有界序列必有收敛子列”。这两条在无限维 Banach 空间里同时失效,而且是彻底失效,不是“偶尔不灵”。最直观的例子是 ℓ² 里的标准基 e₁, e₂, e₃, …:每个 ‖e_n‖ = 1,序列整体有界,但任意两项之间 ‖e_n − e_m‖ = √2,你不可能从里面抽出任何柯西子列。所以 ℓ² 的闭单位球一点都不紧,它甚至不是序列紧的。
这件事的后果非常严重。分析学里最常用的一招是“拿一串逼近最优的东西,从中抽出一个收敛子列,把极限取出来,证明它就是解”。这个方法在有限维叫 Bolzano–Weierstrass,在无限维直接被掐死。可是现实中我们太需要它了:变分问题要极小化序列、PDE 要构造近似解、数值格式要证收敛性,全都指望这一招。
于是思路转向:紧性不是没有,而是范数这把尺子太“严格”了。范数要求两个向量在每一个方向上同时靠近,这个要求比我们实际需要的强得多。如果我们把“靠近”的标准放松——不要求向量本身靠近,只要求它在每一个线性观测者眼里看起来靠近——紧性就回来了。这就是弱拓扑的全部动机。
1.2 弱拓扑:把检验标准从“无穷多方向”换成“全体连续线性泛函”
先把话说清楚。设 X 是 Banach 空间,X* 是它的对偶空间。X 上的弱拓扑定义为:使所有 f ∈ X* 作为映射 x ↦ f(x) 连续的最弱拓扑。用大白话讲,我不再直接比较两个向量 x 和 y 有多近,我只关心“所有合格的探针 f 测出来的数值 f(x) 和 f(y) 有多近”。探针集合越大、越细,拓扑越强;探针集合取全体 X*,就得到弱拓扑。
为什么这个定义看起来有点绕?因为它其实是在说:弱拓扑是由一族半范数 {|f(·)| : f ∈ X*} 生成的局部凸拓扑。所以它不是度量拓扑——这一点后面会反复用到,很多时候你会看到一个空间根本没有“弱距离”这种东西,只能谈网(net)不能谈序列。
按同样的逻辑定义弱星拓扑就顺理成章了。这次我们把研究对象换成对偶空间 X*。X* 上自然的“探针”是什么?是求值映射 x̂ : f ↦ f(x),其中 x 遍历 X。把 X 中的每个 x 都当成一个检验员,要求所有这些求值映射连续,得到的最弱拓扑就叫 X* 上的弱星拓扑(weak-star topology,通常写作 w*-拓扑)。
这两个定义差在什么地方?差在一个词:探针是取遍 X*(对 X 而言)还是取遍 X(对 X* 而言)。但正因为有自然嵌入 J : X → X**,把 x 映成求值泛函 x̂,我们知道 J(X) ⊆ X**。X* 的弱拓扑要求对所有 X** 的元素连续,弱星拓扑只要求对 J(X) 这一部分连续。要求更少,拓扑就更弱。所以一句话记住:同一个 X上,w-拓扑比 w-拓扑弱,w*-收敛是比 w-收敛更容易达到的目标。** 这不是技术细节,这是整章内容的分水岭。
1.3 弱收敛的定义,以及第一个反例
定义摆出来就很短了。对 X 中的序列 {x_n} 和 x ∈ X:
x_n ⇀ x(弱收敛)当且仅当对每个 f ∈ X*,都有 f(x_n) → f(x)。
对 X* 中的序列 {f_n} 和 f ∈ X*:
f_n ⇀* f(弱星收敛)当且仅当对每个 x ∈ X,都有 f_n(x) → f(x)。
注意这里的对称感:弱收敛是把泛函作用到序列上看数值收敛;弱星收敛是把序列作用到每个向量上看数值收敛。很多教材到这一步就往下走了,但我觉得必须立刻补一条“最容易忘的事实”:弱收敛是好定义的、唯一的。也就是说,如果 x_n ⇀ x 且 x_n ⇀ y,那么 x = y。理由用 Hahn–Banach 一句话:若 x ≠ y,存在 f ∈ X* 使 f(x) ≠ f(y),与 f(x_n) 同时收敛到 f(x) 和 f(y) 矛盾。这个唯一性看着平凡,但它保证了后面所有“抽弱收敛子列”的操作有意义。
那到底什么样的序列弱收敛但不范数收敛?回到 ℓ^p(1 < p < ∞)的标准基 e_n。取任意 f ∈ ℓ^q = (ℓ^p)*,f 对应一个数列 (a_k) ∈ ℓ^q,那么 f(e_n) = a_n。因为 Σ|a_k|^q < ∞,必然有 a_n → 0。所以对每个 f 都有 f(e_n) → 0,即e_n ⇀ 0。但 ‖e_n − 0‖ = 1 对所有 n 成立,范数收敛完全不可能。这就是最标准的“弱收敛非范数收敛”样本,也是每次考试必考的题目。
这里有个细节很多人第一遍会忽略:e_n ⇀ 0 的证明里,用到的关键不是“a_n → 0”本身,而是“对每一个 ℓ^q 中的序列都成立”。如果换成 f 只在某个子集上取,结论可能就不成立。所谓弱收敛,检验的是全体对偶空间的成员,一个都不能漏。
2. 弱星收敛:对偶空间上的第二把尺子与三件趁手工具
2.1 w 与 w* 的差别到底落在哪一行推导上
我见过太多人在这一步翻车:在对偶空间 X* 上讨论收敛,随手用了弱收敛的定义,结果证出来的结论其实只对弱星收敛成立。区别在于检验集合的大小。假设 {f_n} ⊂ X*,要证 f_n ⇀* f,你只需要对每一个x ∈ X 验证 f_n(x) → f(x)。要证 f_n ⇀ f,你得对每一个Φ ∈ X** 验证 Φ(f_n) → Φ(f),这通常难得多,因为你根本不知道 X** 里除了 J(X) 之外还有什么东西。
这个差别在自反空间里消失(因为 J(X) = X**),所以如果你只在 ℓ^p(1 < p < ∞)、L^p(1 < p < ∞)、Hilbert 空间里打转,w 和 w* 是同一件事,你甚至可以不区分。但只要空间不自反,比如 c₀、ℓ¹、C[0,1]、L¹,两者的区别立刻显现,而且往往是“一个成立、一个不成立”的剧烈区别。这就是第 3 节要重点拆的地方。
我自己的判断习惯是:先问研究对象住在 X 还是 X,再问 X 自反不自反。* 住在 X 上的序列只能谈弱收敛;住在 X* 上的序列两把尺子都能用,优先用弱星,因为它要求少、更容易满足;只有当你需要区分“这是弱还是弱星”的时候,才去深究。
2.2 Banach–Alaoglu:弱星紧性是“免费送”的
弱星拓扑之所以好用,靠的是泛函分析里性价比最高的一条定理:
Banach–Alaoglu 定理:X* 的闭单位球 B_{X*} 在弱星拓扑下是紧的。
对比一下就知道这条定理有多慷慨。X 的闭单位球 B_X 在范数下永远不紧(除非 X 有限维),在弱拓扑下紧当且仅当 X 自反。而 B_{X*} 在弱星拓扑下无条件紧,不管 X 是什么、自反不自反,全都紧。这就是弱星拓扑存在的最大意义:它提供了一个永远可用的紧性来源。
为什么它能免费?证明思路其实很朴素,本质是 Tychonoff 定理。把 B_{X*} 映到乘积空间 Π_{x∈X} [−‖x‖, ‖x‖] 中去,映射方式是 f ↦ (f(x)){x∈X}。每个分量都被限制在一个紧区间里(因为 |f(x)| ≤ ‖f‖‖x‖ ≤ ‖x‖),乘起来是紧空间。这个映射是单射,而且可以验证 B{X*} 上的弱星拓扑恰好就是乘积拓扑限制过来的,像集是闭的,所以是紧的。整条链子没有一处需要 X 的性质,纯靠 Tychonoff。
这个证明值得琢磨一下,因为它揭示了一个直觉:弱星拓扑本质上就是“逐点收敛拓扑”。f 被当成一个定义在 X 上的函数,f_n ⇀* f 就是 f_n 逐点收敛到 f。理解成逐点收敛,很多结论就变得不奇怪了。
2.3 可分离性带来的红利:有界集上的弱星序列紧
Alaoglu 给你的是紧性,紧性在一般拓扑里只保证“有限子覆盖”,不保证“序列能抽子列”。序列层面需要额外条件,这就是可分离性登场的时刻。
如果 X 是可分离的,那么 B_{X*} 上的弱星拓扑是可度量化的,于是 B_{X*} 是弱星序列紧的:X* 中任何有界序列必有弱星收敛的子列。
这条推论是我做 PDE 和变分问题时用得最多的一句话。X 通常取可分离的 Banach 或 Hilbert 空间(比如 H₀¹(Ω)、L^p(Ω),Ω 是 ℝⁿ 中的规则区域),对偶空间里的近似解序列有界,于是必然能抽出一个弱星收敛的子列。没有它,整个存在性证明没法写。
度量化的构造也不神秘:取 {x_k} 为 X 中可数稠密子集,定义
d(f, g) = Σ_k 2^{-k} · |f(x_k) - g(x_k)| / (1 + |f(x_k) - g(x_k)|)这个 d 在有界集上诱导的拓扑正是弱星拓扑。为什么要“有界集上”?因为上面那个级数收敛需要 f, g 在稠密子集上的取值整体有界,有界性正好提供这一点。这也顺带解释了一条经验规则:在有界集上,弱星收敛等价于在一个稠密子集上逐点收敛。证明用标准的 3ε 手法——稠密点上的误差被控制住,非稠密点用有界性加稠密性逼近,误差可以任意小。
2.4 Goldstine 定理:X 在对偶的二次对偶里是稠密的
还有一条容易被跳过但很有用的结果:Goldstine 定理说,把 B_X 通过自然嵌入 J 放进 B_{X**} 后,它在弱星拓扑下稠密。也就是 J(B_X) 在 (B_{X**}, w*) 中稠密。
它的价值在于提供了一个“把 X 里的东西搬到 X** 里”的桥梁。当你在 X** 里拿到一个弱星极限,Goldstine 告诉你这个极限可以用 X 中的元素在弱星意义下逼近;当 X 自反时,B_X 弱星稠密于整个 B_{X**},于是 J(B_X) = B_{X**} 的弱星闭包就是它自己,配合其他条件就能推出自反性。Kakutani 定理给出的判据也很漂亮:X 自反当且仅当 B_X 在弱拓扑下紧。这些都是同一个“紧性从哪来”的故事的不同侧面。
3. 把 ℓ^p、c₀、ℓ¹、L^p 摆在一起:五个经典反例逐个拆
3.1 同一个 e_n,在三个不同身份下结论完全不同
这是我最喜欢讲的一组例子,因为它用一个序列把 w 与 w* 的区别、空间身份的重要性全部串起来了。
| 序列所在空间 | 对偶空间 | 弱收敛目标 | 弱星收敛目标 | 范数收敛 |
|---|---|---|---|---|
| e_n ∈ ℓ^p (1<p<∞) | ℓ^q | ⇀ 0 | 与弱收敛等价(自反) | 不收敛 |
| e_n ∈ c₀ | ℓ¹ | ⇀ 0 | 与弱收敛等价(自反性无关,见下) | 不收敛 |
| e_n ∈ ℓ¹ 作为自身 | ℓ^∞ | 不弱收敛 | — | 不收敛 |
| e_n ∈ ℓ¹ 作为 (c₀)* | — | 不弱收敛 | ⇀* 0 | 不收敛 |
| δ_{1/n} ∈ C[0,1]* | — | 不弱收敛 | ⇀* δ_0 | 不收敛 |
先看 e_n ∈ ℓ¹ 作为自身空间。要证它不弱收敛到 0,找一个 ℓ^∞ 里的泛函把差别放大:取 f = (1, 1, 1, …),f ∈ ℓ^∞ = (ℓ¹)*,那么 f(e_n) = 1 对所有 n 成立,不可能趋于 0,所以 e_n 不弱收敛到 0。更进一步,ℓ¹ 有Schur 性质:ℓ¹ 中弱收敛的序列必然范数收敛。所以不只是“不收敛到 0”,而是它压根不弱收敛到任何东西(若 e_n ⇀ x 则由 Schur 得 e_n → x,而 ‖e_n − e_m‖ = 2,矛盾)。
再看 e_n ∈ ℓ¹ 作为 (c₀)。这次检验集合变成 c₀:对任意 x = (x_k) ∈ c₀,⟨x, e_n⟩ = x_n → 0(因为 c₀ 的序列本身趋于 0)。所以 e_n ⇀0。同一个 e_n,同一个 ℓ¹ 集合,作为自身空间的序列不弱收敛,作为 c₀ 的对偶却弱星收敛到零。这就是“空间身份决定收敛”的最尖锐的例子。
顺便,e_n ∈ c₀ 是弱收敛到 0 的:c₀ 的对偶是 ℓ¹,任取 f = (a_k) ∈ ℓ¹,f(e_n) = a_n → 0(因为 Σ|a_k| < ∞)。所以 ⇀ 0。这也说明“c₀ 不自反”并不妨碍它里面的标准基弱收敛到零——不自反影响的是单位球的弱紧性,不是每个具体序列的弱收敛性。
3.2 L^p 与 Riemann–Lebesgue:振荡型弱收敛
ℓ^p 里的例子靠“坐标跑到无穷远”,L^p 里的经典例子靠“频率跑到无穷远”。对 1 < p < ∞,考虑 f_n(x) = sin(nx),定义在 [0, 2π] 上。任取 g ∈ L^q[0,2π],由 Riemann–Lebesgue 引理 ∫ sin(nx) g(x) dx → 0,所以sin(nx) ⇀ 0。但 ‖sin(nx)‖_p 是一个与 n 无关的正常数,范数收敛同样不可能。
L^p(1 < p < ∞)上还有一个我们实验室里经常用的判据,比逐条验证对偶元素方便得多:
f_n ⇀ f 于 L^p(1 < p < ∞)当且仅当 sup_n ‖f_n‖_p < ∞,且对每个可测集 E 都有 ∫_E f_n → ∫_E f。
这个判据把“对所有 g ∈ L^q 验证”降级成“对所有集合的特征函数验证”,实用价值极高。注意这里的“有界”不能省,我后面会专门讲为什么。
3.3 L¹ 的麻烦:可数测度下是 Schur,连续测度下不是
很多人会把 ℓ¹ 的经验直接搬到 L¹,然后出错。这两个空间虽然都是“L¹”,但性质差别很大。
- ℓ¹(可数测度)有 Schur 性质:弱收敛序列必范数收敛。
- L¹[0,1](连续测度)没有Schur 性质。反例还是那串正弦:由 Riemann–Lebesgue,∫_E sin(nx) dx → 0 对每个可测集 E 成立;‖sin(nx)‖₁ 有界;sin(nx) 一致可积(因为 |sin| ≤ 1 一致有界,而测度空间是有限测度);所以 sin(nx) ⇀ 0 于 L¹[0,1],但 ‖sin(nx)‖₁ → 2/π ≠ 0。
L¹ 的弱收敛判据需要补一个条件,这就是 Dunford–Pettis 那套东西的实用版本:在 σ-有限测度空间上,{f_n} 弱收敛于 f,当且仅当它范数有界、对每个可测集 E 有 ∫_E f_n → ∫_E f、并且 {f_n} 一致可积。一致可积这一条正是 ℓ¹ 和 L¹[0,1] 分道扬镳的地方:ℓ¹ 里一致可积等价于“尾部一致趋于零”,这是一个非常强的条件,配合有界性就能推出范数收敛,于是 Schur 性质成立。
3.4 δ_{1/n}:用 C[0,1]** 里的一个泛函把 w 和 w* 撕开
测度空间上的例子最能说明 w 与 w* 的真实差距。设 μ_n = δ_{1/n},即质量全部压在 1/n 处的点测度,看成 C[0,1] 的对偶空间 M[0,1] = C[0,1]* 里的元素。对任意 f ∈ C[0,1],⟨f, μ_n⟩ = f(1/n) → f(0) = ⟨f, δ_0⟩。所以δ_{1/n} ⇀δ_0*。范数上 ‖δ_{1/n} − δ_0‖ = 2,完全不收敛。
关键问题来了:δ_{1/n} 弱收敛到 δ_0 吗?答案是不。方法就是构造一个 X** 里的泛函,它不是求值泛函。考虑 Φ(μ) = μ({0}),也就是“取在 0 点的质量”。这是 M[0,1] 上定义良好的线性泛函,且 |Φ(μ)| ≤ |μ|({0}) ≤ ‖μ‖,所以 Φ ∈ M[0,1]* = C[0,1]**,范数不超过 1。但 Φ 不是某个连续函数 f 对应的求值泛函(因为求值泛函 μ ↦ ∫ f dμ 都是弱星连续的,而 Φ 不是)。
现在检查:Φ(δ_{1/n}) = 0 对所有 n(质量在 1/n ≠ 0),而 Φ(δ_0) = 1。所以 Φ(δ_{1/n}) ↛ Φ(δ_0),δ_{1/n} 不弱收敛到 δ_0。
这个例子的价值在于:它给出了一个具体的、能手算出来的 Φ ∈ X** \ J(X),让你真切地看到“X** 里确实比 X 多出东西”,也让你明白为什么弱星收敛比弱收敛好证。
4. 一套可复用的判别套路:怎么证、怎么否定弱收敛
4.1 证弱收敛的三步法:有界 + 稠密子集 + 3ε
做题时真正卡住的往往不是定义,而是“X* 里的泛函太多了,怎么逐个验证”。标准解法是把无限多的验证任务压缩成有限的工作量,步骤如下。
第一步,先证有界。这一步不能跳,因为它既是后续 3ε 论证的前提,也是很多人以为“显然”而实际上需要一致有界原理才能得到的结论(下一小节细说)。
第二步,找 X中一个线性张成稠密的子集 S,在 S 上验证收敛。* 比如证 L^p 里的弱收敛,可以只对特征函数验证(它们的线性组合在 L^q 中稠密);证 ℓ^p 里的弱收敛,如果极限是零,可以只对有限支序列验证,因为有限支序列在 ℓ^q 中稠密。
第三步,用 3ε 补齐。设 f ∈ X* 任意,ε > 0。取 s ∈ span(S) 使 ‖f − s‖ < ε/(2M),其中 M = sup_n ‖x_n‖ ∨ ‖x‖。则由
|f(x_n) - f(x)| ≤ |f(x_n) - s(x_n)| + |s(x_n) - s(x)| + |s(x) - f(x)| ≤ ε/2 + |s(x_n) - s(x)| + ε/2后半段由 S 上已知的收敛性对充分大的 n 小于任意给定值。三步走完,结论封死。
这个模板有个前提被藏起来了:S 的线性张成必须在 X* 中稠密。如果 S 张成不稠密,你验证得再辛苦也推不出弱收敛。这是我见过的最常见的证明失效原因——辛辛苦苦验证了一堆泛函,最后发现验证集合太小。
4.2 否定弱收敛:找一个“照妖镜”泛函就够了
反方向往往比正方向简单得多,因为你只需要找出一个f ∈ X* 使得 f(x_n) 不倾向 f(x)。诀窍是让这个 f “挑”到序列的弱点上。
- 对 ℓ¹ 里的 e_n,用 f = (1,1,1,…),它把每个 e_n 都测成 1。
- 对 L¹[0,1] 里可能想“逃逸到 0 点”的序列,用 g 是一个在 0 附近有尖峰的有界函数,能把集中在小测度集上的质量放大。
我自己的经验是:找照妖镜的直觉来自“序列的质量跑到哪里去了”。跑到无穷远,就在对偶空间里取一个“无穷远处不衰减”的元素;跑到某个点上,就在对偶空间里取一个在该点附近有峰的元素。绝大多数反例都是这两类。
4.3 弱下半连续与 Mazur 引理:极限的范数不会更大
有三条关于弱收敛的“结构性”事实,做存在性证明时几乎每次都会用到。
范数的弱下半连续性:若 x_n ⇀ x,则 ‖x‖ ≤ liminf ‖x_n‖。证明只用 Hahn–Banach:取 f ∈ X*,‖f‖ = 1 且 f(x) = ‖x‖,则 ‖x‖ = f(x) = lim f(x_n) ≤ liminf ‖f‖‖x_n‖ = liminf ‖x_n‖。这个不等式是整个变分法存在性证明的最后一块拼图。
Mazur 引理:若 x_n ⇀ x,则 x 属于 {x_n} 的凸包在范数下的闭包;更具体地说,存在凸组合按范数收敛到 x。它的意义是“弱极限虽然本身可能不在序列的范数闭包里,但一定在凸包的范数闭包里”,给了你一个把弱收敛升级成范数收敛(代价是换成凸组合)的工具。
弱收敛序列自动有界:这就是前面一直提的那条。证明用一致有界原理。把 x_n 通过自然嵌入看成 X** 中的元素,对每个 f ∈ X*,序列 f(x_n) 收敛因而有界,所以 {J(x_n)} 在 X** 中逐点有界,由一致有界原理得 sup_n ‖J(x_n)‖ < ∞,再由等距性得 sup_n ‖x_n‖ < ∞。
记住这一条的重要性在于:在泛函分析里,“有界”几乎从来不是可以省略的装饰条件,而是几乎所有收敛判据的必要前提。你看到任何弱收敛判据,第一眼就该去找“有界”两个字在哪里。
4.4 一张速查表:三条收敛之间的关系
| 关系 | 是否成立 | 备注 |
|---|---|---|
| 范数收敛 ⟹ 弱收敛 | 成立 | 由 |f(x_n) − f(x)| ≤ ‖f‖‖x_n − x‖ |
| 弱收敛 ⟹ 范数收敛 | 一般不成立 | ℓ^p 中 e_n ⇀ 0 但不范数收敛 |
| 弱收敛 ⟹ 弱星收敛(在 X* 上) | 成立 | 因为 J(X) ⊆ X**,弱拓扑更强 |
| 弱星收敛 ⟹ 弱收敛 | 一般不成立 | ℓ¹ 中 e_n ⇀* 0 但不弱收敛 |
| 弱收敛且 ‖x_n‖ → ‖x‖ ⟹ 范数收敛 | 仅在一族凸空间成立 | ℓ^p (1<p<∞)、Hilbert 空间成立 |
| 有限维空间中三者等价 | 成立 | 不需要任何额外条件 |
最后一行“同一条定理在 L¹ 里失效”的例子值得单独记住。取 g_n(x) = 1 + sin(nx) 于 L¹[0,1]。由 Riemann–Lebesgue,对任意 h ∈ L^∞ 有 ∫ g_n h → ∫ 1 · h,所以 g_n ⇀ 1。并且 ‖g_n‖₁ → 1 = ‖1‖₁(这个可以手算:∫|1 + sin y| 在一个周期上的平均值恰好是 1)。但 ‖g_n − 1‖₁ = ∫|sin(nx)| dx → 2/π ≠ 0。所以“弱收敛 + 极限范数收敛”推不出范数收敛,前提是要一致凸。L¹ 的单位球面上有平直段,恰好挡住了这个推论。
5. 从定义走到应用:弱收敛在变分法与数值分析里怎么用
5.1 变分法的直接方法:抽弱收敛子列的完整逻辑
理解弱收敛最好的方式,是走一遍变分法里的“直接方法”。考虑 H₀¹(Ω) 上的泛函
I(u) = ∫_Ω ( 1/2 |∇u|² - f u ) dx设定下,I 有下界,取极小化序列 {u_n},即 I(u_n) → inf I。第一步用 coercivity 得到 {u_n} 在 H₀¹ 中范数有界:由 I(u_n) ≤ C 和带 ε 的 Young 不等式可得 ‖∇u_n‖₂ ≤ C'。第二步,H₀¹ 是可分离自反 Hilbert 空间,所以有界序列有弱收敛子列 u_n ⇀ u(在自反空间里,弱紧 = 弱序列紧,可用 Eberlein–Šmulian 或直接对 Hilbert 空间用对角线法)。第三步,用范数的弱下半连续性和后半项 f u_n 的弱连续性(f u_n → f u 因为 f ∈ H⁻¹ 是固定的对偶元),得出 I(u) ≤ liminf I(u_n) = inf I,所以 u 是极小元。
整条证明里,真正“硬”的部分只有第一步的范数估计,后面全靠弱收敛的通用性质。这也是弱收敛概念的全部价值所在:它把具体问题里最难的紧性论证,变成了一个由空间结构自动保证的黑盒。
顺便说一句,Hilbert 空间里判断弱收敛有一条捷径:u_n ⇀ u 当且仅当 ‖u_n‖ 有界且对某个完备正交系的所有元素 ⟨u_n, e_k⟩ → ⟨u, e_k⟩。因为正交系是基,它的线性张成稠密,正好落回第 4.1 节的模板。
5.2 弱解与能量估计:为什么 PDE 的收敛一定从弱收敛开始
偏微分方程里“弱解”这个词之所以叫弱,原因就在这里:我们没有办法直接证明近似解序列在强范数下收敛(因为方程本身的椭圆性只给能量估计,即 H¹ 范数有界),所以先把收敛降级到弱,得到极限 u,然后回过头用方程的变分形式定义什么是“解”。
一个典型的链条是:从能量估计得到 {u_n} 在 H₀¹ 中一致有界,抽出子列 u_n ⇀ u;对测试函数 φ ∈ C_c^∞(Ω) 取 ⟨u_n, φ⟩ → ⟨u, φ⟩(这正是弱收敛的定义),而 ⟨u_n, φ⟩ 里含 ∇u_n 的那部分通过分部积分和弱收敛的配对性质过渡到极限,最终得到 a(u, φ) = ⟨f, φ⟩ 对所有 φ 成立。整个过程一次都没有要求 ∇u_n 强收敛。
我踩过的一个坑是:能量估计通常只给“∇u_n 在 L² 里有界”,这配合 Poincaré 不等式才推出 ‖u_n‖_{H¹} 有界。如果 Ω 无界或者方程退化,Poincaré 不等式可能不成立,能量估计只能控制梯度的 L² 范数,这时候抽出的弱收敛子列要放在适当的商空间或者加权空间里讨论,否则极限里会冒出一个不确定的常数。细节不对,整条存在性证明就废了。
5.3 弱收敛过不去的那道坎:非线性项的极限交换
这一条是我最想强调的实战经验,也是最容易在论文里被审稿人挑出来的问题。
弱收敛只能穿线性运算,穿不过非线性运算。换句话说,如果 u_n ⇀ u,你永远可以放心地写 ∫ f u_n → ∫ f u,f 固定;但如果出现 ∫ |u_n|² dx 或者 ∫ u_n² φ dx 这种非线性项,你就没有任何理由认为它收敛到 ∫ |u|² dx。
原因其实很简单:弱收敛只保证了“所有线性观测者看到的数值收敛”,而非线性表达式的收敛本质上是范数层面的事情。经典的失效例子是二维 L² 中的正交基 e_n:e_n ⇀ 0,但 ‖e_n‖² = 1 不趋于 0。所以 ∫|u_n|² 极可能是常数 1,而 ∫|u|² = 0。
那实际怎么处理?三条常见出路。第一,把弱收敛升级为强收敛:利用紧嵌入定理。在有界 Lipschitz 区域上,H¹ ↪ L² 是紧嵌入,所以 H¹ 中的弱收敛序列在 L² 中是强收敛的(这是 Rellich–Kondrachov 定理),非线性项用 L² 的强收敛就能过极限。第二,用凸性:若非线性项是凸的,则它有弱下半连续性,至少能拿到不等式方向,这对极小化问题常常够用。第三,用更细的补偿紧性或多尺度方法处理振荡较强的非线性项。
我个人的检查清单里有一条粗暴但有效的规则:看最终结论里有没有对 u_n 做的乘法或非线性复合,如果有,必须给出一个强收敛或者紧嵌入的论证,否则这一步不成立。
5.4 数值分析里怎么实际操作“弱收敛验证”
数值格式的收敛性分析经常出现类似的需求:证明有限元解 u_h 在某个弱范数下收敛到真解。实操上分辨清楚在哪个范数下收敛,比你想象的重要。
- 如果目标是 L² 收敛(强收敛),一般的做法是 Aubin–Nitsche 对偶论证,把一个 L² 误差估计转成 H¹ 误差的平方阶。
- 如果目标是某种弱收敛或者泛函值收敛(比如能量泛函、通量、平均值),那可以直接用弱收敛的语言,配合对偶测试函数做论证。
- 有一类常见的误会是:在有限元里观察到某个量的误差以 1 阶下降,就认为“这是弱收敛”。其实那可能只是 L² 或 H¹ 的强收敛,两者的证明工具完全不同。
从数值实验的角度验证弱收敛,一个实用的手段是观察“振荡量”的行为。如果近似解在高频下出现振幅不衰减但整体积分趋于某个值的现象,那基本可以判断是弱收敛而非强收敛在起作用。这个现象在守恒律方程和不可压流的高频模式下都很常见。
6. 我踩过的几个坑,以及临场能用的检查清单
6.1 把 w 和 w* 弄反,结论直接就反了
最常见的翻车方式是在 c₀ 和 ℓ¹ 之间讨论收敛时写错空间身份。具体表现为:想证 ℓ¹ 中某个序列弱收敛到零,用的是“对每个 x ∈ c₀,⟨x, f_n⟩ → 0”。这个论证本身没错,但它证明的是弱星收敛到零,不是弱收敛。而由于 ℓ¹ 有 Schur 性质,弱收敛在这个空间里其实等价于范数收敛——也就是说,你如果想证的是弱收敛,基本上得证出范数收敛来,否则就是错的。
我自己的防错方法很简单:在草稿纸最上面写一行字,“现在讨论的是 X 上的序列,检验用 X*,这是弱收敛”。只要写下来,这类错误会少一大半。
6.2 忘掉“有界”前提,判据就变成假命题
前面提到的所有判据都带“有界”这个词,而且它不是装饰。举个例子,f_n = n·1_{[0,1/n]} 在 L¹[0,1] 中,每个 f_n 的范数都是 1,看起来有界;但如果我取 f_n = n·1_{[0,1/n]} 于 L² 里,那 ‖f_n‖₂ = √n → ∞,无边界的序列在弱拓扑下的行为完全不可控,因为弱拓扑本身太弱,一个无界的序列可以让任何论证都失效。
有一个我觉得很好用的直觉:弱收敛在无穷维空间里是一种非常弱的约束,它只能约束有限多个线性泛函的取值,所以必须靠有界性来“补足”约束力。没有有界性,你甚至不能保证弱极限有界。
6.3 序列和网的区别:不可度量化时别乱写
弱拓扑和弱星拓扑一般不是度量拓扑。只有在 X* 可分离(对应 X 的弱拓扑可度量化)或 X 可分离(对应 X* 上弱星拓扑在有界集上可度量化)时,你才能放心地用“序列”。在一般情形下,紧性只保证网(net)的收敛,抽“子列”这件事没有保障。
好消息是实际应用中七八成的情况都满足可分离性:L^p(Ω)、H₀¹(Ω)、C[0,1]、ℓ^p 都是可分离的。坏消息是 ℓ^∞、L^∞、B(H)(有界算子空间)不可分离,在这些空间上用序列语言要非常谨慎。特别是 B(H),它是某个空间的对偶,有弱星拓扑,但 H 不可分离时(如果 H 是可分离 Hilbert 空间,B(H) 的对偶是迹类算子空间,情况稍好),弱星拓扑的可度量化会打折扣。
值得一提的还有 Eberlein–Šmulian 定理,它说在 Banach 空间里,弱紧和弱序列紧是一回事。所以凡是讨论弱拓扑(不是弱星),你都可以放心用序列语言。这条定理在写证明时省了很多心。
6.4 一份我实际会用的检查清单
最后把上面所有经验压成一张表,做题或者写证明前扫一遍,能省掉八成返工。
| 检查项 | 要问的问题 | 出错的典型后果 |
|---|---|---|
| 空间身份 | 序列住在 X 还是 X*? | 把弱星收敛当成弱收敛 |
| 自反性 | X 自反吗? | 误以为两者等价 |
| 有界性 | 序列有界吗?怎么证的? | 判据失效,极限不存在 |
| 检验集合 | 验证的泛函张成在 X* 中稠密吗? | 验证充分但不构成证明 |
| 极限交换 | 有没有非线性项要过极限? | 结论完全错误 |
| 可度量化 | 能否用序列语言? | 不可分离空间里的证明不严谨 |
| 范数比较 | 极限范数与 liminf 的关系用对了吗? | 存在性证明的最后一步断链 |
| 唯一性 | 极限唯一吗? | 抽子列得到的极限论证不闭合 |
关于“极限唯一”,还有一条等式特别好用,我几乎每篇证明里都要检查它一遍:若 x_n ⇀ x 且 ‖x_n‖ → ‖x‖,在一致凸空间(ℓ^p, 1 < p < ∞;L^p 同理;Hilbert 空间)里就能升级为 x_n → x。这条等式我在处理非线性问题时就靠它把弱收敛升级成强收敛。而在 L¹ 或者 ℓ¹ 里,这条路走不通,得像前面那样换用别的工具。
这篇笔记我整理的这些反例和套路,基本上是每次复习都会重新过一遍的内容。真正把弱收敛和弱星收敛学明白的标志,不是能背出定义,而是拿到一个陌生空间里的陌生序列,能先判断该用哪把尺子、再去挑一个照妖镜泛函验证真伪。练到那个程度,后面变分法和 PDE 里的存在性证明就变成了一堆可以机械写完的步骤,剩下的精力都可以花在真正难的能量估计上。