Skip to content

5.10 测度与 Lebesgue 积分初步 ​

前面九节的积分理论有一个共同的框架:Riemann 积分。它把「分割求和的极限」作为积分的定义,覆盖了连续函数、单调函数与有界且间断点有限的函数(5.5 节),也支撑了重积分、曲线曲面积分与三大公式(5.9 节)。但它有两个明显的限制。第一个限制是可积函数类偏窄:Dirichlet 函数不可积,而它的「积分值」从直觉上应当是零(有理点是可数的、很少)。第二个限制是极限交换的条件偏强:5.6 节用一致收敛保证 lim∫=∫lim,而一致收敛在应用中往往不成立(实验一的三组数据给出三种失效方式)。

本节介绍的 Lebesgue 积分同时缓解这两个限制。做法是把定义的方式换一下:不再按自变量方向分割,而是按函数值分割:先考虑取值简单的函数(有限个取值的「简单函数」),它们的积分是「函数值乘以对应集合的测度」之和,然后用简单函数从下方逼近一般函数并取上确界。这套定义需要一个新的基础概念:集合的测度,也就是「大小」的推广,它必须能处理可数多个集合的并(σ 可加性)。测度一旦建立,集成与测度可以称为两个互相支撑的核心概念:集合的大小用测度衡量,函数的积分用测度衡量。

三个收敛定理是本节最有实用价值的部分。单调收敛定理、Fatou 引理与控制收敛定理给出了比一致收敛弱得多的交换条件,代价是需要单调性或控制函数。这三个定理是概率论(期望与极限的交换)、统计学(大数律与中心极限定理的证明)与随机过程(鞅的收敛)的标准工具,第二章的极限定理部分正是它们的应用。最后的 Lp 空间与 Radon-Nikodym 定理把「函数的距离」与「密度的存在性」纳入同一框架,前者的特殊情形 p=2 就是 5.7 节的正交展开所用的内积空间。

5.10.1 Riemann 积分的两个限制 ​

限制一:可积函数类。5.5 节给出的刻画是「间断点集为零测集」,其中零测集的含义是可以用总长度任意小的区间覆盖。这个条件排除了 Dirichlet 函数(在每个区间上都有有理点与无理点,间断点集是整个区间),但 Dirichlet 函数从积分的角度看很简单:它取值只有 0 与 1,且取 1 的集合(有理数集)是可数的。如果积分的定义改成「函数值 × 取值集合的测度」,Dirichlet 函数的积分就是 1×0+0×1=0(可数集的测度为零)。Lebesgue 积分正是这样处理的,结论是 Dirichlet 函数在 Lebesgue 意义下可积且积分为零。

限制二:极限交换。实验一给出三组失效的形态。第一组 fn(x)=(1+x/n)n 单调递增趋于 ex,积分从 1.5 升到 1.7179、趋于 e−1=1.71828,这一组的交换成立(单调性保证了它)。第二组 fn=1(n,n+1)(在实轴上)每个积分都是 1,逐点极限恒为零,lim∫fn=1>∫limfn=0:质量逃逸到无穷。第三组 fn=n1(0,1/n)(在 [0,1] 上)每个积分都是 1,逐点极限为零,lim∫fn=1>∫limfn=0:质量集中到一点。三组的差别在于第一组有单调性,后两组没有;把单调性替换成控制函数(被一个可积函数统一控制),也能恢复交换,这正是控制收敛定理的内容。

5.10.2 测度与可测函数 ​

σ 代数与测度 ​

设 X 是集合(在积分理论中通常取 Rn 或其子集)。F 是 X 的子集族,若它满足三条:

  1. X∈F;
  2. 对补集封闭:A∈F⇒Ac∈F;
  3. 对可数并封闭:A1,A2,…∈F⇒⋃iAi∈F,

称 F 是 X 上的 σ 代数,其中的集合称可测集。三条性质合起来给出对可数交、差集、极限集的封闭性,这些封闭性是后面所有定理的技术基础(例如「fn→f 的集合」要可测,这需要可数交并)。

测度是定义在 F 上、取值于 [0,+∞] 的函数 μ,满足

μ(∅)=0,μ(⋃i=1∞Ai)=∑i=1∞μ(Ai)(互不相交)

第二条称 σ 可加性,是测度概念的核心。Lebesgue 测度是 Rn 上满足「区间 [a,b] 的测度等于 b−a」且平移不变的那个测度,它的存在性与唯一性由 Carathéodory 扩张定理保证。三条常用性质:单调性(A⊂B⇒μ(A)≤μ(B))、次可加性(μ(⋃Ai)≤∑μ(Ai),不需要互不相交)、连续性(递增集合列的测度趋于极限集合的测度)。

零测集是测度为零的集合,它们的子集都可测(这一点由完备化得到),且零测集不影响积分:改变函数在零测集上的取值,积分不变。这条性质是 Lebesgue 积分比 Riemann 积分灵活的关键,它把「几乎处处」(a.e.)这个概念引入分析:性质在除去一个零测集之外处处成立。

可测函数 ​

f:X→R 是可测函数,若对每个实数 a,集合 {x:f(x)>a} 可测。等价定义是把 > 换成 ≥、<、≤ 或用一般的 Borel 集。

可测函数对四则运算、可数上确界与下确界、逐点极限都封闭:若 fn 都可测,则 supnfn、infnfn、lim supfn、lim inffn 都可测,从而(极限存在的)limfn 可测。这条封闭性使可测函数类足够大:连续函数可测、单调函数可测、Riemann 可积函数可测,任何由可测函数通过极限运算得到的函数都可测。几乎处处相等的可测函数视为同一个对象,这条约定在后面 Lp 空间的定义中会正式使用。

简单函数是取有限个值的可测函数。任何非负可测函数都可以用单调递增的简单函数列从下方逼近(把函数值截断到 n,再按 2−n 的精度分层):

fn(x)=∑k=1n2nk−12n1{k−12n≤f(x)<k2n}+n1{f(x)≥n}

这个构造是 Lebesgue 积分定义的技术核心,也给出了「先定义简单函数的积分、再用逼近定义一般函数的积分」这条路线。

5.10.3 Lebesgue 积分 ​

定义 ​

简单函数 φ=∑i=1mci1Ai(Ai 互不相交、ci≥0)的积分定义为

∫Xφdμ=∑i=1mciμ(Ai)

右端可能出现 +∞(某个 ci>0 且 μ(Ai)=∞)。对非负可测函数 f,定义

∫Xfdμ=sup{∫Xφdμ : 0≤φ≤f, φ 是简单函数}

即「用简单函数从下方逼近所能达到的最高值」。对一般可测函数 f,按正部与负部分解 f=f+−f−,若 ∫f+ 与 ∫f− 不同时为无穷,定义 ∫f=∫f+−∫f−;两个都有限时称 f 可积(记作 f∈L1)。绝对可积是定义的自然结论:f 可积等价于 ∫|f|<∞(Lebesgue 积分不需要「条件收敛」这个中间状态,条件收敛的积分在 Lebesgue 意义下不可积,这一点与 5.5 节的讨论形成对照)。

与 Riemann 积分的关系 ​

三条对照。

包含关系:f 在 [a,b] 上 Riemann 可积蕴含 Lebesgue 可积,且两个积分值相等。反之不成立(Dirichlet 函数是反例)。因此 Lebesgue 积分是 Riemann 积分的真推广。

反常积分:绝对收敛的反常积分两者相等;条件收敛的反常积分在 Lebesgue 意义下不可积(∫|f|=∞),但可以作为「反常 Riemann 积分」存在。例如 ∫1∞sin⁡xxdx 在 Riemann 意义下条件收敛,在 Lebesgue 意义下不可积。

本质区别:Riemann 积分按自变量方向分割,对函数的间断点敏感(间断点集测度为零才可积);Lebesgue 积分按函数值分层,对称地处理了「函数的定义域」与「函数值」,因此可积函数类大得多。

基本性质 ​

三条性质在一元与多元情形都成立,且不需要额外条件。

线性:∫(af+bg)=a∫f+b∫g(若右端两项都有定义且不为 ∞−∞ 型)。

单调性:f≤g a.e. ⇒∫f≤∫g。

可数可加性:f=∑ifi a.e. 且 fi≥0 时 ∫f=∑i∫fi。这条性质是单调收敛定理的另一形式,对 Riemann 积分没有对应物(Riemann 积分只对有限项和有可加性)。

三个「几乎处处」的约定使结论更简洁:f=g a.e. 时 ∫f=∫g;f=0 a.e. 时 ∫f=0(反之,f≥0 且 ∫f=0 蕴含 f=0 a.e.);积分对零测集上的修改不敏感。

5.10.4 三大收敛定理 ​

单调收敛定理 ​

设 {fn} 是非负可测函数列、几乎处处单调递增、逐点收敛到 f(允许取 +∞),则

limn→∞∫Xfndμ=∫Xfdμ

结论可以写成 lim∫=∫lim,不需要任何控制条件,只要单调性与非负性。这条定理的用途有两方面:一是直接用于交换极限与积分(实验一第一组的 (1+x/n)n 属于这种情形),二是用于证明其他结论(控制收敛定理的证明就依赖它)。

实验一第一组的数据给出这条定理的量化形态:fn(0.5) 从 1.5 单调升到 1.6485152621(极限 e0.5=1.6487212707),对应的积分从 1.5 升到 1.717922933235(极限 e−1=1.718281828459),误差从 2.18×10−1 降到 3.59×10−4,两条序列的收敛是同步的。这个例子中 ∫fn 甚至可以解析算出:∫01(1+x/n)ndx=nn+1[(1+1/n)n+1−1]。

Fatou 引理 ​

设 {fn} 是非负可测函数列,则

∫X(lim infn→∞fn)dμ≤lim infn→∞∫Xfndμ

方向只有一个:左边的极限函数的积分不超过右边积分列的下极限。取严格不等号的情形与「质量丢失」对应,实验一的第二组与第三组都是这类:∫lim inffn=0 而 lim inf∫fn=1,差值是逃逸或集中的那部分质量。Fatou 引理的价值在于不需要收敛性假设,因此适合处理没有极限的情形;它也是控制收敛定理与 Lp 空间完备性证明的关键步骤。

控制收敛定理 ​

设 {fn} 是可测函数列、几乎处处收敛到 f,且存在可积函数 g(称控制函数)使 |fn|≤g a.e. 对所有 n 成立,则 f 可积,且

limn→∞∫Xfndμ=∫Xfdμ,limn→∞∫X|fn−f|dμ=0

第二条结论(L1 收敛)比第一条更强。条件中的「存在可积的控制函数」是实质性的:实验一的第二、三组都不满足(第二组没有可积的统一控制函数,第三组的控制函数需要 n1(0,1/n) 的上确界,而它对每个 n 都要控制住 fm,m 可以任意大,找不到可积的界)。

控制函数也可以换成一致可积性(比被单一可积函数控制更弱),这条推广形式称为Vitali 收敛定理,在概率论中对应「一致可积性与收敛的等价」(一致可积加上依概率收敛蕴含 L1 收敛),是鞅论与随机过程的基本工具。

三个定理的配合 ​

三者的逻辑关系是:单调收敛定理 ⟹ Fatou 引理 ⟹ 控制收敛定理(证明链条)。使用时的判断顺序是:

  1. 有单调性且非负时直接用单调收敛定理,条件最弱。
  2. 没有单调性时看是否有可积的控制函数,有则用控制收敛定理。
  3. 都没有时用 Fatou 引理得到不等式(至少能确定方向),或者加上一致可积性、紧性等其他条件。

这套顺序与 5.6 节的最大区别在于「控制条件」的形态:5.6 节的一致收敛要求误差在整段上一致地小(上确界范数),控制收敛定理只要求被一个可积函数压住(L1 型的条件)。后者更容易验证,也更贴近实际问题的结构。

与概率论一章的连接

把测度取为概率测度(μ(X)=1),可测函数就是随机变量,积分就是期望。单调收敛定理成为「非负随机变量列几乎必然单调递增时期望收敛」,控制收敛定理成为「被可积随机变量控制的收敛序列期望收敛」。第二章 2.7 节的极限定理(大数律与中心极限定理)的证明依赖这些工具,统计中「期望与极限交换」的合法性判断也用同一套条件。实验二的置信区间覆盖率检验给出这套理论的数值形态。

5.10.5 Lp 空间 ​

定义与范数 ​

固定 p∈[1,∞),定义

Lp(X,μ)={f 可测 : ∥f∥p=(∫X|f|pdμ)1/p<∞}

几乎处处相等的函数视为同一个元素(否则 ∥f∥p=0 不蕴含 f=0,范数公理不成立)。p=∞ 的情形定义 ∥f∥∞=esssup|f|,即除去零测集后的上确界。

Lp 是向量空间(线性组合仍在 Lp 内),∥⋅∥p 是范数:正定性、齐次性与三角不等式(Minkowski 不等式):

∥f+g∥p≤∥f∥p+∥g∥p

Hölder 不等式把两个函数的乘积控制住:1<p<∞、1p+1q=1 时

∥fg∥1≤∥f∥p∥g∥q

等号成立的条件是 |f|p 与 |g|q 几乎处处成比例。p=q=2 时 Hölder 不等式退化为 Cauchy-Schwarz 不等式,这是 5.7 节内积空间的基础。

实验三的两组数据验证这些不等式。第一组对 f(x)=x−0.4 计算 p 范数,与精确值 (1−0.4p)−1/p 的偏差在 10−14 量级(数值换元 x=um 消除端点奇性后精度达到机器精度),并显示范数随 p 增大而增大(p=1 时 1.6667,p=2.4 时 3.8236,p→2.5− 时发散)。这条单调性是有限测度空间上的普遍性质:p≤q 时 ∥f∥p≤μ(X)1p−1q∥f∥q,因此 ∥f∥p 关于 p 递增。

第二组验证 Hölder 不等式,取 f=x−0.2、g=x−0.3:右端与左端的比值随 p 变化,p=1.5 时 1.3664,p=2.5 时恰好等于 1(此时 fp=x−0.5 与 gq=x−0.5 成比例,等号条件成立),p=4 时 1.0967。数据中整数与分数的位置说明了等号条件的含义。

完备性 ​

Lp(1≤p≤∞)是完备的赋范空间(Banach 空间):Lp 中的 Cauchy 列一定收敛到 Lp 中的某个元素(Riesz-Fischer 定理)。证明的步骤是:从 Cauchy 列中取子列使 ∥fnk+1−fnk∥p≤2−k,由单调收敛定理或 Fatou 引理证明 ∑|fnk+1−fnk| 几乎处处有限(从而逐点收敛),再用控制收敛定理确认 Lp 收敛。

完备性是「把极限留在空间内」的保证,也是许多存在性定理的基础:变分法中求极小值需要保证极小化序列收敛(5.11 节)、偏微分方程的弱解需要 Lp 或 Sobolev 空间的完备性、概率论中条件期望的存在性用 L2 的完备性加上正交投影(第二章)。p=2 时 L2 是 Hilbert 空间(内积由 ⟨f,g⟩=∫fg¯dμ 给出),5.7 节讨论的正交展开、完备正交基与 Parseval 等式都在这个框架内。

5.10.6 绝对连续与 Radon-Nikodym 定理 ​

测度的分解 ​

设 μ 与 ν 是同一可测空间上的两个测度。

绝对连续(ν≪μ):μ(A)=0⇒ν(A)=0,即 ν 不会把质量放在 μ 认为是零测集的地方。

相互奇异(ν⊥μ):存在可测集 A 使 μ(A)=0 且 ν(Ac)=0,即两者的质量完全分布在不相交的区域上。

Lebesgue 分解定理:任意两个 σ 有限测度可以唯一分解为

ν=νac+νsing,νac≪μ,νsing⊥μ

即「可积密度部分」与「奇异部分」之和。这条分解是概率论中「连续型分布与离散型分布、奇异型分布」分类的理论依据。

Radon-Nikodym 定理 ​

若 ν≪μ 且两个测度都 σ 有限,则存在非负可测函数 h 使

ν(A)=∫Ahdμ,∀A

h 在 μ 几乎处处意义下唯一,记作 h=dνdμ,称 Radon-Nikodym 导数(密度)。定理给出「密度函数」存在性的完整刻画:密度存在当且仅当绝对连续。

这条定理在概率论中的形态是概率密度函数的定义:若随机变量 X 的分布 ν 关于 Lebesgue 测度绝对连续,则 ν 有密度函数 fX=dνdx,此时概率可以写成积分 P(X∈A)=∫AfX(x)dx;离散型分布关于计数测度有密度(就是概率质量函数);既非绝对连续也非离散的奇异型分布(Cantor 分布)说明 Lebesgue 分解中的第三部分确实存在。

条件期望是 Radon-Nikodym 定理最重要的应用之一:给定子 σ 代数 G,条件期望 E[X∣G] 定义为「在 G 上限制的测度关于 P 的 Radon-Nikodym 导数」(要求 X 可积)。这条定义把「条件期望」从初等概率的除数形式推广到一般情形,也使「条件期望是 L2 上的正交投影」(第二章 2.12 节)成为一条定理。

牛顿-莱布尼茨公式的失效 ​

5.5 节的 Newton-Leibniz 公式 ∫abf′=f(b)−f(a) 在 Riemann 框架下对连续可导的函数成立。在 Lebesgue 框架下需要更强的条件:f 绝对连续(对任意 ε 存在 δ,使总长度小于 δ 的任意有限个互不相交区间的总变差小于 ε)时公式成立,此时 $f' $ 几乎处处存在且可积。

实验四第二、三组给出条件失效的标准例子:Cantor 函数。它连续、单调,f(0)=0、f(1)=1,但导数几乎处处为零(在构造中删去的每个中间三分之一区间上函数是常数,而这些区间的总测度为 1)。数据说明这条性质:f(1/3)=0.5、f(2/3)=0.5、f(1/4)=1/3(理论值 1/3)、f(1)=1;在 106 个网格点上,98.82% 的网格步上函数值完全不变,总变差恒为 1.00000000。若 Newton-Leibniz 公式成立,∫01f′dx 应当等于 1,而 f′=0 a.e. 给出 0,矛盾。Cantor 函数对应的测度(Cantor 测度)关于 Lebesgue 测度奇异,这正是 Lebesgue 分解中存在奇异部分的例子,也是「绝对连续」这个条件不可省略的原因。

第三组数据从数值角度说明奇异测度的特征:导数非零的网格步占比从 N=103 时的 0.16 降到 N=106 时的 0.0118(随网格加密持续下降,趋向零),而 ∑|Δf| 始终是 1.00000000(在每一层网格上都等于函数的总增量),最大斜率从 9.77 增长到 122.07。质量集中在不断变细的集合上,这是奇异性的数值表现:只用有限分辨率的网格无法区分绝对连续与奇异的情形,必须检查「质量所在集合的测度是否趋于零」。

5.10.7 数值实验 ​

实验一:极限与积分交换的三种情形 ​

三组函数列分别对应「单调收敛成立」「质量逃逸到无穷」「质量集中到一点」。

python
import math
import numpy as np

print("(a) 单调收敛:f_n(x) = (1 + x/n)^n 在 [0, 1] 上单调递增趋于 e^x")
print(f"{'n':>8} {'f_n(0.5)':>16} {'int f_n(精确式)':>20} {'与 e-1 的差':>16}")
exact = math.e - 1
for n in [1, 2, 5, 10, 50, 100, 1000]:
    fn = (1 + 0.5 / n) ** n
    integ = (n / (n + 1)) * ((1 + 1.0 / n) ** (n + 1) - 1)
    print(f"{n:>8} {fn:>16.10f} {integ:>20.12f} {abs(integ - exact):>16.3e}")
print(f"  f_n(0.5) 的极限 e^0.5 = {math.exp(0.5):.10f}")
print(f"  极限函数的积分 int_0^1 e^x dx = e - 1 = {exact:.12f}")

print("(b) 质量逃逸到无穷:f_n(x) = 1_{(n, n+1)}(x)(在实轴上)")
print(f"{'n':>8} {'int f_n':>12} {'f_n(0.5)':>12} {'f_n(100.5)':>14}")
for n in [1, 10, 100, 1000]:
    print(f"{n:>8} {1.0:>12.1f} {0:>12} {1 if n < 100.5 < n + 1 else 0:>14}")

print("(c) 质量集中到一点:f_n(x) = n 在 (0, 1/n) 上,其余为 0(区间 [0, 1])")
print(f"{'n':>8} {'int f_n(梯形法)':>20} {'f_n(0.5)':>12} {'max f_n':>12}")
xs = np.linspace(0, 1, 200001)
for n in [10, 100, 1000, 10000]:
    ys = np.where(xs < 1.0 / n, float(n), 0.0)
    print(f"{n:>8} {float(np.trapezoid(ys, xs)):>20.10f} {0.0:>12.4f} {float(n):>12.1f}")

输出:

text
(a) 单调收敛:f_n(x) = (1 + x/n)^n 在 [0, 1] 上单调递增趋于 e^x
       n         f_n(0.5)         int f_n(精确式)         与 e-1 的差
       1     1.5000000000       1.500000000000        2.183e-01
       2     1.5625000000       1.583333333333        1.349e-01
       5     1.6105100000       1.654986666667        6.330e-02
      10     1.6288946268       1.684651551009        3.363e-02
      50     1.6446318218       1.711195872211        7.086e-03
     100     1.6466684921       1.714714819521        3.567e-03
    1000     1.6485152621       1.717922933235        3.589e-04
  f_n(0.5) 的极限 e^0.5 = 1.6487212707
  极限函数的积分 int_0^1 e^x dx = e - 1 = 1.718281828459
(b) 质量逃逸到无穷:f_n(x) = 1_{(n, n+1)}(x)(在实轴上)
       n      int f_n     f_n(0.5)     f_n(100.5)
       1          1.0            0              0
      10          1.0            0              0
     100          1.0            0              1
    1000          1.0            0              0
(c) 质量集中到一点:f_n(x) = n 在 (0, 1/n) 上,其余为 0(区间 [0, 1])
       n         int f_n(梯形法)     f_n(0.5)      max f_n
      10         0.9999750000       0.0000         10.0
     100         0.9997500000       0.0000        100.0
    1000         0.9975000000       0.0000       1000.0
   10000         0.9750000000       0.0000      10000.0

(a) 单调收敛的情形。fn 单调递增(由二项展开与 n 的关系可以验证),数列 fn(0.5) 从 1.5 单调升到 1.6485152621,与极限 e0.5=1.6487212707 的差从 0.1487 降到 2.06×10−4。积分列同步收敛:1.5→1.717922933235,与 e−1=1.718281828459 的差从 2.183×10−1 降到 3.589×10−4,两个误差量级接近但不等(积分是对整个区间的累积,误差是各点误差的加权和)。单调收敛定理保证 lim∫fn=∫limfn,数据与这条结论一致。有趣的一点是积分的收敛速度略快于单点值:n=1000 时单点误差 2.06×10−4,积分误差 3.59×10−4,同量级。

(b) 质量逃逸到无穷。每个 fn 的积分都是 1(函数在长度为 1 的区间上取值为 1),但任何固定点上 fn 最终都是零:fn(0.5)=0 对所有 n 成立,fn(100.5) 只在 n=100 时为 1(此时 100<100.5<101)。因此逐点极限是零函数,lim∫fn=1>∫limfn=0。失效的原因在 Fatou 引理的框架里看得很清楚:质量没有消失,它跑到了无穷远处,而逐点极限只看每个固定点,看不到这件事。这条例子在概率论中的对应是「概率质量逃逸」,是「一维随机游走的紧性」这类问题必须处理的现象。

(c) 质量集中到一点。fn 是一个高度为 n、宽度为 1n 的尖峰,积分恒为 1(矩形面积 n⋅1n)。逐点极限为零:任何 x>0 都在尖峰之外(对充分大的 n),而 x=0 处取零。梯形法的数值结果从 0.9999750000(n=10)降到 0.9750000000(n=10000),偏离 1 的原因是尖峰的跳变处被梯形法截断(网格间距 5×10−6,尖峰宽度 10−4 时只有 20 个网格点,跳变处的高估/低估越来越显著)。精确积分是常数 1,与 n 无关。这组数据与 (b) 的区别在于质量的去向:(b) 跑到无穷,(c) 集中到一点,两者的共同点是「极限函数的积分小于积分列的极限」。

实验二:Monte Carlo 的收敛速率与置信区间 ​

用 40 次重复给出均方根误差,与理论标准误 σn 对照;再用 500 次重复检验 95% 置信区间的覆盖率。

python
import math
import numpy as np

rng = np.random.default_rng(7)
ref = 0.746824132812427
print("估计 I = int_0^1 e^(-x^2) dx(每个 n 重复 40 次,报告均方根误差)")
print(f"{'n':>10} {'标准误(理论)':>16} {'均方根误差':>14} {'误差均值':>14}")
reps = 40
rms_list, ns = [], [10 ** 2, 10 ** 3, 10 ** 4, 10 ** 5, 10 ** 6, 10 ** 7]
for n in ns:
    errs = []
    for _ in range(reps):
        x = rng.random(n)
        errs.append(float(np.mean(np.exp(-x * x))) - ref)
    errs = np.array(errs)
    se_theory = math.sqrt(float(np.var(np.exp(-rng.random(100000) ** 2))) / n)
    rms_list.append(float(np.sqrt(np.mean(errs ** 2))))
    print(f"{n:>10} {se_theory:>16.3e} {rms_list[-1]:>14.3e} {float(np.mean(errs)):>14.3e}")
print(f"{'区间':>24} {'均方根误差比值':>16} {'理论比值 sqrt(10)':>20}")
for i in range(len(ns) - 1):
    print(f"{ns[i]:>10} -> {ns[i + 1]:>10} {rms_list[i] / rms_list[i + 1]:>16.3f} {math.sqrt(10):>20.3f}")

print("95% 置信区间的覆盖率(重复 500 次,每次 n = 1000)")
cover, trials, n = 0, 500, 1000
for _ in range(trials):
    x = rng.random(n)
    fv = np.exp(-x * x)
    est = float(np.mean(fv))
    se = float(np.std(fv, ddof=1) / math.sqrt(n))
    if est - 1.96 * se <= ref <= est + 1.96 * se:
        cover += 1
print(f"  覆盖 {cover} / {trials} = {cover / trials:.3f}(理论值 0.950)")

输出:

text
估计 I = int_0^1 e^(-x^2) dx(每个 n 重复 40 次,报告均方根误差)
         n          标准误(理论)          均方根误差           误差均值
       100        2.009e-02      1.971e-02     -2.365e-04
      1000        6.336e-03      6.407e-03      9.297e-05
     10000        2.008e-03      1.988e-03      2.614e-04
    100000        6.357e-04      5.942e-04      4.665e-05
   1000000        2.009e-04      1.997e-04     -7.711e-05
  10000000        6.348e-05      7.860e-05      6.727e-06
                      区间          均方根误差比值        理论比值 sqrt(10)
       100 ->       1000            3.077                3.162
      1000 ->      10000            3.222                3.162
     10000 ->     100000            3.346                3.162
    100000 ->    1000000            2.976                3.162
   1000000 ->   10000000            2.541                3.162
95% 置信区间的覆盖率(重复 500 次,每次 n = 1000)
  覆盖 470 / 500 = 0.940(理论值 0.950)

第一张表的两列给出 O(n−1/2) 的完整验证。均方根误差与理论标准误逐行相符(n=100 时 1.971×10−2 对 2.009×10−2;n=106 时 1.997×10−4 对 2.009×10−4;n=107 时 7.860×10−5 对 6.348×10−5,比值 1.24,落在 40 次重复的估计噪声范围内)。误差均值一列都在均方根误差的 14 以下,没有系统性偏差,说明估计量无偏。

第二张表的比值列给出速率的直接读数:3.077、3.222、3.346、2.976、2.541,理论值 10=3.162。前四个在理论值附近波动(±6%),最后一行偏低(2.541,比理论值低 20%),原因是 n=107 时的均方根误差来自 40 个样本的估计,本身带有约 12×40=11% 的相对波动,与 10 的偏差叠加后出现这个结果。这条数据说明用有限次重复估计收敛速率时,比值本身的误差需要一并考虑,判断速率量级(12 次幂)足够,判断精确的常数则不够。

第三部分检验置信区间的可靠性:500 次重复中 470 次覆盖真值,覆盖率 0.940,与理论值 0.950 的差 0.010。这个差是否显著?二项分布的标准误是 0.95×0.05500=0.0098,实测偏差 0.010 约为一个标准误,属于随机波动。结论:95% 置信区间的覆盖率与理论相符,区间估计(以及背后的极限定理)在这个问题上可靠。这条检验的意义在于,它同时验证了「大数律给出的收敛」与「中心极限定理给出的误差分布形态」,第十章的统计推断会用同样的方法检验更复杂的区间估计。

实验三:Lp 范数与 Hölder 不等式 ​

计算幂函数 x−c 的 p 范数(用换元 x=um 消除端点奇性),并核对 Hölder 不等式。

python
import math
import numpy as np

def integral_power(c, m_pts=4000000, factor=3.0):
    """计算 int_0^1 x^(-c) dx(要求 c < 1),用换元 x = u^m 消除端点奇性"""
    m = int(math.ceil(factor / (1.0 - c)))
    u = (np.arange(m_pts) + 0.5) / m_pts
    return m * float(np.mean(u ** (m - 1 - c * m)))

print("f(x) = x^(-0.4) 在 [0, 1] 上,||f||_p = (1 - 0.4p)^(-1/p)(p < 2.5)")
print(f"{'p':>6} {'数值 ||f||_p':>16} {'精确值':>16} {'相对偏差':>12}")
for p in [1.0, 1.5, 2.0, 2.2, 2.4, 2.49]:
    num = integral_power(0.4 * p) ** (1.0 / p)
    ex = (1 - 0.4 * p) ** (-1.0 / p)
    print(f"{p:>6} {num:>16.8f} {ex:>16.8f} {abs(num - ex) / ex:>12.3e}")

print("Hölder 不等式:||f g||_1 <= ||f||_p ||g||_q,f = x^(-0.2),g = x^(-0.3)")
print(f"{'p':>5} {'q':>7} {'||f||_p':>12} {'||g||_q':>12} {'||fg||_1':>12} "
      f"{'右端/左端':>12} {'理论比值':>12}")
for p in [1.5, 2.0, 2.5, 3.0, 4.0]:
    q = p / (p - 1.0)
    nf = integral_power(0.2 * p) ** (1.0 / p)
    ng = integral_power(0.3 * q) ** (1.0 / q)
    nfg = integral_power(0.5)
    th = (1 - 0.2 * p) ** (-1.0 / p) * (1 - 0.3 * q) ** (-1.0 / q) / 2.0
    print(f"{p:>5.1f} {q:>7.2f} {nf:>12.6f} {ng:>12.6f} {nfg:>12.6f} "
          f"{nf * ng / nfg:>12.6f} {th:>12.6f}")

输出:

text
f(x) = x^(-0.4) 在 [0, 1] 上,||f||_p = (1 - 0.4p)^(-1/p)(p < 2.5)
     p       数值 ||f||_p              精确值         相对偏差
   1.0       1.66666667       1.66666667    1.559e-14
   1.5       1.84201575       1.84201575    1.217e-14
   2.0       2.23606798       2.23606798    9.136e-15
   2.2       2.62152485       2.62152485    7.962e-15
   2.4       3.82362246       3.82362246    6.156e-15
  2.49       9.18392051       9.18392051    4.449e-15
Hölder 不等式:||f g||_1 <= ||f||_p ||g||_q,f = x^(-0.2),g = x^(-0.3)
    p       q      ||f||_p      ||g||_q     ||fg||_1        右端/左端         理论比值
  1.5    3.00     1.268434     2.154435     2.000000     1.366379     1.366379
  2.0    2.00     1.290994     1.581139     2.000000     1.020621     1.020621
  2.5    1.67     1.319508     1.515717     2.000000     1.000000     1.000000
  3.0    1.50     1.357209     1.489675     2.000000     1.010900     1.010900
  4.0    1.33     1.495349     1.466853     2.000000     1.096728     1.096728

第一张表验证了 p 范数的计算与单调性。数值与精确值 (1−0.4p)−1/p 的相对偏差在 10−14 到 10−15(机器精度量级),说明换元 x=um 把端点奇性彻底消掉之后,中点求积的精度达到了浮点极限。范数随 p 增大而增大(1.6667→9.1839),并且增长率急剧上升:p 从 2.4 到 2.49 只增加了 0.09,范数从 3.8236 升到 9.1839(2.4 倍)。原因在公式里:1−0.4p 在 p→2.5 时趋于零,(1−0.4p)−1/p 发散。这也解释了 Lp 空间嵌套的方向:p 越大空间越小(∥f∥p 有限的函数越少),f=x−0.4 恰好落在 p<2.5 的空间里,p≥2.5 时不属于 Lp。

第二张表给出 Hölder 不等式的完整读数。∥fg∥1=2.000000(三类 p 值下都一样,因为 fg=x−0.5 与 p 无关),右端 ∥f∥p∥g∥q 随 p 变化。比值(右端除以左端)依次是 1.366379、1.020621、1.000000、1.010900、1.096728,全部不小于 1,与不等式一致。p=2.5 时比值恰好为 1.000000,这是等号条件成立的情形:fp=x−0.5 与 gq=x−0.5 逐点相等,满足「|f|p 与 |g|q 几乎处处成比例」。理论比值一列与数值完全一致(差值在 10−6 以内),说明数值实现没有系统误差。比值的形状(中间取最小值 1、两端上升)说明 p 偏离等号条件时不等式与等号之间的余量增大。

实验四:卷积平滑与 Cantor 函数 ​

第一部分用热核平滑阶跃函数,观察 L1 收敛与一致收敛的差别;第二、三部分研究 Cantor 函数。

python
import math
import numpy as np

print("(a) 用热核 K_eps(x) = exp(-x^2/(4 eps)) / sqrt(4 pi eps) 平滑阶跃函数")
def phi(z):
    return 0.5 * (1.0 + math.erf(z / math.sqrt(2.0)))

print(f"{'eps':>10} {'L1 误差':>14} {'最大点态误差':>16} {'L1 比值':>10}")
xg = np.linspace(-1, 1, 4001)
f0 = (xg > 0).astype(float)
prev_l1 = None
for eps in [1e-1, 1e-2, 1e-3, 1e-4]:
    fe = np.array([phi(v / math.sqrt(2 * eps)) for v in xg])
    l1 = float(np.trapezoid(np.abs(fe - f0), xg))
    sup = float(np.max(np.abs(fe - f0)))
    ratio = "-" if prev_l1 is None else f"{prev_l1 / l1:.2f}"
    print(f"{eps:>10.1e} {l1:>14.6f} {sup:>16.6f} {ratio:>10}")
    prev_l1 = l1

def cantor(x, n=40):
    """Cantor 函数:把三进制展开中的数字 2 改成二进制 1,遇到数字 1 则截断"""
    if x >= 1.0:
        return 1.0
    y = 0.0
    for i in range(1, n + 1):
        x *= 3
        d = int(x)
        if d == 2:
            y += 2.0 ** (-i)
            x -= 2
        elif d == 1:
            y += 2.0 ** (-i)
            return y
    return y

print("(b) Cantor 函数:连续、单调,导数几乎处处为零,但 f(1) - f(0) = 1")
print(f"  f(1/3) = {cantor(1/3):.10f},f(2/3) = {cantor(2/3):.10f},f(1) = {cantor(1.0):.10f}")
print(f"  f(1/4) = {cantor(0.25):.10f}(理论值 1/3 = {1 / 3:.10f})")
print(f"{'网格点数':>12} {'最大步长增量':>16} {'零增量步数占比':>18} {'总变差':>12}")
for N in [10 ** 4, 10 ** 5, 10 ** 6]:
    xs = np.linspace(0, 1, N + 1)
    ys = np.array([cantor(v) for v in xs])
    dv = np.diff(ys)
    print(f"{N:>12} {float(np.max(dv)):>16.8f} {float(np.mean(dv == 0.0)):>18.6f} "
          f"{float(np.sum(np.abs(dv))):>12.8f}")

print("(c) 奇异测度:导数的质量集中在不断变细的集合上")
print(f"{'网格点数':>12} {'导数非零的步数占比':>20} {'Σ|Δf|':>12} {'最大 |Δf|/Δx':>16}")
for N in [10 ** 3, 10 ** 4, 10 ** 5, 10 ** 6]:
    xs = np.linspace(0, 1, N + 1)
    ys = np.array([cantor(v) for v in xs])
    dv = np.diff(ys)
    slopes = dv / np.diff(xs)
    print(f"{N:>12} {float(np.mean(dv > 0)):>20.6f} {float(np.sum(np.abs(dv))):>12.8f} "
          f"{float(np.max(slopes)):>16.4e}")

输出:

text
(a) 用热核 K_eps(x) = exp(-x^2/(4 eps)) / sqrt(4 pi eps) 平滑阶跃函数
       eps          L1 误差           最大点态误差      L1 比值
   1.0e-01       0.352882         0.500000          -
   1.0e-02       0.112838         0.500000       3.13
   1.0e-03       0.035683         0.500000       3.16
   1.0e-04       0.011285         0.500000       3.16
(b) Cantor 函数:连续、单调,导数几乎处处为零,但 f(1) - f(0) = 1
  f(1/3) = 0.5000000000,f(2/3) = 0.5000000000,f(1) = 1.0000000000
  f(1/4) = 0.3333333333(理论值 1/3 = 0.3333333333)
        网格点数           最大步长增量            零增量步数占比          总变差
       10000       0.00195312           0.936200   1.00000000
      100000       0.00048828           0.972540   1.00000000
     1000000       0.00012207           0.988196   1.00000000
(c) 奇异测度:导数的质量集中在不断变细的集合上
        网格点数            导数非零的步数占比        Σ|Δf|       最大 |Δf|/Δx
        1000             0.160000   1.00000000       9.7656e+00
       10000             0.063800   1.00000000       1.9531e+01
      100000             0.027460   1.00000000       4.8828e+01
     1000000             0.011804   1.00000000       1.2207e+02

(a) 平滑核的收敛形态。卷积 fε=Kε∗f 是光滑函数(热核的卷积给出解析函数),误差在 L1 意义下从 0.352882(ε=10−1)降到 0.011285(ε=10−4),相邻比值 3.13、3.16、3.16 对应 10,即误差按 O(ε) 下降。最大点态误差恒为 0.5:阶跃处的值 fε(0)=12,而 f(0) 按右极限取 1(或按左极限取 0),差值总是 12,与 ε 无关。这条对照说明 L1 收敛与一致收敛的实质差别:光滑函数可以逼近不连续函数(在积分意义下),但不能逼近到点态一致(在跳跃点处必然差 12)。5.6 节讨论的「一致收敛保证连续性」在这里以反面形态出现:若一致收敛成立,极限函数必须连续,而阶跃函数不连续。数值实现上这条曲线可以用误差曲线在 ε 减小时的形态验证:L1 误差随 ε 下降而最大值不动,两条曲线走向分离。

(b) Cantor 函数的基本性质。f(1/3)=0.5 与 f(2/3)=0.5:中间三分之一区间 [1/3,2/3] 被压缩成一个点(函数在整个区间上是常数 0.5),这是构造中「删除中间三分之一」的直接结果。f(1/4)=0.3333333333 与理论值 13 逐位一致(1/4 的三进制展开是 0.020202…,对应二进制 0.010101…=13)。f(1)=1.0000000000(实现中对 x≥1 单独处理,避免 1=0.2222…3 的进位问题)。

网格数据给出两条关键信息。最大步长增量随网格加密按 14 下降(0.00195312→0.00048828→0.00012207,每次网格点数增到 10 倍、步长减到 110,而最大增量减到 14),说明函数在网格尺度上是连续的(没有跳变)。零增量步数占比从 0.936200 升到 0.988196,即超过 98% 的网格步上函数值完全不变;而总变差恒为 1.00000000(f 单调上升 1)。这两条数据合起来说明:函数的全部增量集中在不到 1.2% 的网格步上,且这个比例随网格加密继续下降。

(c) 奇异测度的数值特征。导数非零的网格步占比从 0.160000(N=103)降到 0.011804(N=106),持续下降且没有稳定到某个正数,趋向零。∑|Δf| 在所有网格层次上都精确等于 1.00000000。最大斜率从 9.7656 增长到 1.2207×102(每次网格加密约 2.4 倍,与 (3/2)log3⁡10=2.15 的量级接近)。三列数据给出奇异测度的完整图像:测度的总质量恒为 1,但承载质量的集合的测度趋于零,同时密度(导数)在某些点上趋于无穷。这与绝对连续的情形形成对照:若 f 绝对连续(例如 f(x)=x),导数非零的网格步占比恒为 1,最大斜率恒为 1,不存在「质量集中」的现象。数值工作的一条实用规则由此得到:判断一个分布是否有密度函数,不能只看直方图形状,要检查「质量落在测度趋于零的集合上」的可能,或者用更高分辨率的统计检验(例如比较不同尺度下的局部维数)。

5.10.8 本节小结 ​

测度论的五层内容

本节把测度与 Lebesgue 积分组织为五层。测度层给出 σ 代数(对补集与可数并封闭)与测度(σ 可加性)两个概念,Lebesgue 测度是 Rn 上平移不变且区间测度等于长度的那个测度;零测集是这一层的枢纽概念,它给出「几乎处处」的语言,并使「改变零测集上的取值不影响积分」成立。可测函数层把可测性从集合搬到函数({f>a} 可测),可测函数对四则运算与可数上确界、逐点极限封闭,任何非负可测函数都可以用简单函数列从下方单调逼近。积分层用「简单函数的积分之和」与「上确界的逼近」定义 Lebesgue 积分,与 Riemann 积分的关系是包含(Riemann 可积蕴含 Lebesgue 可积且值相等),Dirichlet 函数在 Lebesgue 意义下可积且积分为零;Lebesgue 积分只处理绝对可积的情形,条件收敛的反常积分不属于 L1。收敛定理层给出三条工具:单调收敛定理 lim∫=∫lim(只需非负单调,实验一第一组 (1+x/n)n 的积分从 1.5 升到 1.717922933235,趋近 e−1=1.718281828459)、Fatou 引理 ∫lim inf≤lim inf∫(不需要收敛性假设,实验一第二、三组给出严格不等号:质量逃逸到无穷与集中到一点,两种情形下积分列的极限都是 1 而极限函数的积分都是 0)、控制收敛定理(需要可积控制函数,结论包含 L1 收敛)。空间层给出 Lp 与测度分解:Lp 是完备的 Banach 空间(p=2 时是 Hilbert 空间,接上 5.7 节的正交展开),Hölder 不等式 ∥fg∥1≤∥f∥p∥g∥q 在 |f|p∝|g|q 时取等号(实验三:p=2.5 时比值精确为 1.000000,p=1.5 与 4 时分别是 1.366379 与 1.096728),p 范数关于 p 单调递增且在空间边界处发散(f=x−0.4 的 ∥f∥p 从 p=1 的 1.6667 升到 p=2.49 的 9.1839);Radon-Nikodym 定理刻画密度的存在性(ν≪μ 当且仅当 ν 有关于 μ 的密度),Lebesgue 分解 ν=νac+νsing 对应概率分布的三种类型。实验四给出两个边界例子:热核平滑阶跃函数时 L1 误差按 O(ε) 下降(0.352882→0.011285)而最大点态误差恒为 0.5;Cantor 函数连续单调、导数几乎处处为零,在 106 个网格点上 98.82% 的网格步上函数值不变而总变差恒为 1.00000000,Newton-Leibniz 公式对它失效,对应的测度关于 Lebesgue 测度奇异,这就是「绝对连续」这个条件不可省略的原因。

测度论给出了积分的严格基础,下一节回到几何与变分。曲线与曲面的曲率、测地线、Euler-Lagrange 方程与 Sobolev 空间构成了变分法的内容,其中最优化、机器学习与物理中的大量问题都可以写成「求一个泛函的极小值」,本节建立的 Lp 完备性与收敛定理是那些极小值存在性证明的基础。

练习题 ​

第 1 题 概念推导 ​

(a) 证明零测集的子集是零测集,并说明为什么「f=0 a.e. 且 f≥0 可测」蕴含 ∫f=0。(b) 说明 Riemann 可积与 Lebesgue 可积的关系,并给出一个 Lebesgue 可积但 Riemann 不可积的例子。(c) 解释为什么 Lp 空间要把几乎处处相等的函数视为同一个元素。

参考答案

(a) 设 N 是零测集(μ(N)=0),M⊂N。由测度的单调性直接得 μ(M)≤μ(N)=0,即 μ(M)=0。严格地说,若只要求「N 可以被总长度任意小的区间列覆盖」而没有完备性,需要先做完备化(把所有零测集的子集加入 σ 代数并规定其测度为 0),完备化后的测度空间称完备测度空间,Lebesgue 测度是完备的。

积分部分的证明:设 f=0 a.e.,零测集记为 N。对任意简单函数 φ≤f,φ 只在 N 之外可能取正值,因此 ∫φ=∑ciμ(Ai) 中每个 Ai⊂Nc 的项贡献 ciμ(Ai),而 Ai∩N 部分测度为零;更直接的做法是用 ∫f=sup{∫φ} 与「f≤0 a.e. 且 f≥0 则 f=0 a.e.」这两条性质配合单调性得到。结论 ∫f=0 与「积分为零的非负函数几乎处处为零」互为逆命题,后者是 Lp 中范数正定性的基础。

(b) 关系是包含:f 在 [a,b] 上 Riemann 可积 ⇒ Lebesgue 可积且两个积分相等。证明的思路是 Riemann 可积给出上下和之差可以任意小,用阶梯函数(简单函数的特殊情形)从两侧夹住 f,再用上下积分的相等推出 Lebesgue 积分的值。反之不成立。

Lebesgue 可积但 Riemann 不可积的例子是 Dirichlet 函数 D(x)=1Q∩[0,1]。它在每个小区间上同时取 0 与 1,上下和分别是 1 与 0,Riemann 不可积。在 Lebesgue 框架下,有理数集是可数的(可以逐个列出并用总长度任意小的区间覆盖),因此测度为零,∫Ddμ=1×μ(Q∩[0,1])+0×μ([0,1]∖Q)=0。

(c) 若不认同几乎处处相等的函数,∥⋅∥p 就不是范数:取 f=1{0}(只在一点取 1),则 ∥f∥p=0 而 f≠0,范数的正定性(∥f∥=0⇒f=0)失效,从而三角不等式与收敛的唯一性都受影响(极限不再唯一)。标准的处理是在 Lp 的定义中取「几乎处处相等的函数的等价类」,把所有与 f 几乎处处相等的函数视为同一元素。这样做的代价是不能讨论「某一点上的取值」,收益是范数成为真正的范数,空间成为赋范空间(进而可以讨论完备性、正交性、投影)。实际使用中这条约定通常不引起问题,因为分析中的结论本身都以「几乎处处」的形式出现(例如 fn→f a.e. 或 Lp 收敛)。

第 2 题 计算推理 ​

(a) 用单调收敛定理计算 ∫01∑k=1∞xkdx,并说明交换求和与积分的依据。(b) 判断下面的极限交换是否合法:limn→∞∫01nx1+n2x2dx,写出积分值并说明理由。(c) 判断 f(x)=x−1/3 属于哪些 Lp[0,1]。

参考答案

(a) 被积函数是正项级数:∑k≥1xk=x1−x(0≤x<1)。每一项 xk≥0,部分和单调递增,由单调收敛定理可以交换求和与积分:

∫01∑k=1∞xkdx=∑k=1∞∫01xkdx=∑k=1∞1k+1=∞

结论是发散。右侧的调和级数发散,左侧的积分 ∫01x1−xdx 在 x=1 处发散,两者一致。这个例子说明单调收敛定理允许积分值为 +∞,与「积分有限」是两回事。若把级数换成 ∑xkk2,同样的交换给出 ∑1k2(k+1)(有限),此时用控制收敛定理也可以(控制函数为 ∑1k2=π26)。

(b) 交换不合法,因为被积函数列没有可积的控制函数:fn(x)=nx1+n2x2 的最大值在 x=1n 处等于 12,但它对每个 x>0 都趋于零(n 很大时 fn(x)≈1nx→0),逐点极限是零函数。supnfn(x) 在 x 接近 0 时按 12x 增长,不是可积函数。直接计算积分(换元 u=nx):

∫01nx1+n2x2dx=12nln⁡(1+n2)→∞

积分列发散到无穷,而 ∫limfn=0,lim∫≠∫lim。这是一条与本书实验一第二、三组同类的反例(质量向零点集中),提示:看到被积函数含有 n1+n2x2 这类「峰随 n 增高、宽度收窄」的因子时,先检查是否有可积的控制函数,再决定能否交换。

(c) f=x−1/3 在 [0,1] 上的 p 次幂是 x−p/3,其可积性要求 p3<1,即 p<3。因此 f∈Lp 对 p∈[1,3),p≥3 时不属于 Lp。用 5.10.5 节的公式核对:∥f∥p=(∫01x−p/3dx)1/p=(11−p/3)1/p,p→3− 时发散,与实验三中 f=x−0.4 在 p→2.5− 时的行为同源(指数 a 给出边界 p=1a)。这条结论在偏微分方程的弱解理论中很重要:解的奇性程度决定了它属于哪个 Lp,Sobolev 嵌入定理把 Lp 的可积指数与导数的可积阶数联系起来(5.11 节)。

第 3 题 代码验证 ​

用本节代码做三组实验并解释:(a) 在实验一里把第二组的区间从 (n,n+1) 改成 (n,n+1n)(质量同时逃逸并且变薄),观察积分列的变化;(b) 在实验三里把被积函数的指数从 0.4 改成 0.49,观察 p 范数在 p→2.0408 附近的行为;(c) 在实验四里把 Cantor 函数换成 f(x)=x(绝对连续),比较两者在 (b)(c) 两张表上的差别。

参考答案

(a) 新的函数列是 fn=1(n,n+1/n),它的积分是 1n(区间长度乘 1),因此积分列趋于零,lim∫fn=0=∫limfn,交换成立。这个结果说明「质量逃逸」本身不必然导致交换失败,关键在于总质量是否保持(本例中质量随 n 变薄并且没有被别处补充)。若把函数改成 fn=n1(n,n+1/n)(在逃逸的同时保持高度),积分恒为 1,交换重新失败。这类构造说明 Fatou 引理的方向性:∫lim inf≤lim inf∫ 中的不等号源于「质量在极限过程中消失或逃逸」,具体是哪种情形以及是否出现,需要用被积函数的具体形式判断。

(b) 指数 0.49 对应边界 p∗=10.49=2.0408(1/0.49=2.040816…),∥f∥p=(1−0.49p)−1/p 在 p→2.0408− 时发散,且发散速度比指数 0.4(边界 2.5)时更快:在 p 距离边界相同比例的位置(例如 p=0.99p∗),(1−0.49p)−1/p 的数值更大。数值实现上的注意点是换元参数 m=⌈31−0.49p⌉ 在接近边界时迅速增大(p=2.0 时 1−0.49×2=0.02,m=150),计算量的增加与精度的保持都需要额外注意(m 大时被积函数 um−1−cm 的指数接近 0,来自 u 接近 0 的数值贡献衰减)。

(c) 取 f(x)=x(f(1)−f(0)=1,绝对连续,导数恒为 1)。在 (b) 表上的差别:零增量步数占比恒为 0(每个网格步上函数值都增加),最大步长增量等于步长(N=106 时为 10−6),总变差恒为 1.00000000。在 (c) 表上:导数非零的步数占比恒为 1(每一步都有正的增量),最大斜率恒为 1,∑|Δf|=1。两组数据的对照给出判别奇异性的直接方法:绝对连续情形下「导数非零的步数占比」与网格无关(恒为 1),奇异情形下随网格加密趋向零。这条判别不需要事先知道分布的形式,只需要在两级网格上比较这个比例。更细致的情形(局部维数在 1 与 0 之间,例如某些自相似测度)需要比较多级网格下的比例衰减速度,才能区分「奇异但维数不为零」与「绝对连续」。

第 4 题 综合应用 ​

某统计程序需要从 n=104 个样本估计一个「期望的期望」E[E[X∣Y]](内层期望通过对 Y 的分布积分得到,外层通过对样本求平均得到),程序需要判断「先对 Y 积分再对样本平均」与「先对样本平均再对 Y 积分」两种次序是否给出相同结果。请给出判断的框架,说明需要用到的定理与检查步骤,并举出一个会失败的情形。

参考答案

判断框架的核心是把两次运算都写成积分,然后用 Fubini 定理或收敛定理判断换序是否合法。设 X 的分布为 μ(⋅∣y)(给定 Y=y 时),Y 的分布为 ν。两次运算分别是

∫Y(∫Xxμ(dx∣y))ν(dy)与∫Xx(∫Yμ(dx∣y)ν(dy))

(第二种写法是「先对样本平均」,即先用样本估计 Y 的分布再用它构造 X 的边缘分布)。

检查步骤分三步。

  1. 绝对可积性。检查 ∬|x|μ(dx∣y)ν(dy)<∞,即 E|X|<∞。这一步决定能否使用 Fubini 定理。若 E|X|=∞,换序可能给出不同的值(经典的例子是重尾分布下的「样本均值与理论均值的次序问题」,此时样本均值不收敛,两种次序没有可比性)。

  2. 可测性与条件期望的存在性。∫Xxμ(dx∣y) 作为 y 的函数需要可测(由条件期望的定义与 Radon-Nikodym 定理保证),否则「对 y 积分」没有意义。这一步在实践中通常自动满足(条件期望按 Radon-Nikodym 定理定义,本身就要求可测),但在非标准的情形(例如参数空间不是欧氏空间)需要单独检查。

  3. 数值可辨识性。即使理论上两种次序相等,数值上仍可能有偏差:内层期望若用少量样本估计(例如用 Y 的 100 个分位点做数值积分),偏差的量级是 1100 量级;外层用 104 个样本估计,标准误是 σ104=σ100。两者的量级相当,因此换序带来的差异可能被数值误差掩盖。检查方式是用同一批随机数做两次计算(公共随机数),比较结果的差与各自的标准误。

会失败的情形:E|X|=∞ 时换序不保证成立。具体例子是 Y 服从均匀分布、给定 Y=y 时 X 服从 Cauchy 分布(位置参数 y、尺度 1)。此时 E|X|=∞(Cauchy 分布的期望不存在),内层「期望」没有定义。若改用样本均值代替期望,则内层样本均值的分布本身是重尾的(样本均值的分布也是 Cauchy),随着 Y 的分位点取法不同会给出完全不同的结果,两种次序的差可以达到任意大。另一类失败情形是内层期望存在但换序需要控制条件:若 X 的奇性随 y 移动(例如内层函数是 y 的 δ 型尖峰),Fubini 的条件(绝对可积)可能被满足但数值积分的收敛很慢,实践中应当改用重要性采样或解析处理内层积分。

实施建议:先用解析方法确认 E|X|<∞,然后用 Fubini 定理给出换序的合法性;数值实现上把内层积分做成一个函数(输入 y、输出期望估计),对外层用样本平均,并报告两部分各自的误差估计;最后用公共随机数检验两种次序的差是否落在误差范围内。报告中说明所用的定理、检查的步骤与数值误差的来源,这三项合起来构成完整的验证。

常见错误 ​

错误 1 · 把「几乎处处」当作「处处」使用

原因:Lebesgue 理论的结论大多以「几乎处处」的形式成立,忽略这个限定会得到不成立的强结论。典型例子是:f=0 a.e. 不蕴含 f 在每一点为零(Dirichlet 函数在有理点取 1 但几乎处处为零);fn→f a.e. 不蕴含一致收敛(实验四(a) 的平滑核给出 L1 误差按 O(ε) 趋于零,而跳跃点处的点态误差恒为 0.5);L1 收敛不蕴含逐点收敛(一般结论,本节未给出例子)。把 a.e. 结论加强成处处结论,会在跳跃点、可数集、奇异集附近出错。

解决:写结论时保留「几乎处处」的限定,除非确实证明了处处成立(连续函数的情形通常可以,因为连续函数在零测集外相等蕴含处处相等)。涉及具体数值的结论(某点的值、某处的导数)要单独确认,不能从 a.e. 的结论直接推出。调试时把「在哪些点上结论可能失效」作为检查项,特别是跳跃点、定义域端点与奇异集合附近。

错误 2 · 在没有控制条件时交换极限与积分

原因:控制收敛定理需要可积的控制函数,单调收敛定理需要单调性,条件不满足时交换可能失败。本节实验一的后两组、练习 2(b) 的 ∫01nx1+n2x2dx 都是失败的情形(积分列发散或趋于非零值,极限函数的积分为零)。这类错误的表现形式是「计算结果比理论值大一截」或「结果随参数变化没有规律」,根源在于质量在极限过程中的逃逸或集中。

解决:交换前按顺序检查三条:单调性(非负且单调递增时直接用单调收敛定理);可积控制函数(找到 g∈L1 使 |fn|≤g a.e.);一致可积性(比控制函数更弱,适合概率论中的情形)。都不满足时用 Fatou 引理得到方向性的不等式,或者改用别的论证(例如 5.6 节的一致收敛、单调性加强为紧性等)。报告中说明所用的控制条件与它为什么成立。

错误 3 · 把条件收敛的反常积分当作 Lebesgue 可积

原因:Lebesgue 积分只处理绝对可积的情形。∫1∞sin⁡xxdx 在 Riemann 意义下条件收敛(值有限),但 ∫1∞|sin⁡xx|dx=∞,因此这个函数不属于 L1。把它当作 L1 中的元素会导致一系列结论失效:Fubini 定理不可用(不能交换积分次序)、控制收敛定理没有可积控制函数、Parseval 等式等 L2 结论也不适用(sin⁡xx 甚至不属于 L2,因为 L2 是绝对可积的平方)。

解决:区分「反常 Riemann 积分收敛」与「Lebesgue 可积」,后者要求绝对值可积。使用 Lp 理论的结论前先确认函数属于 Lp(计算 ∫|f|p),条件收敛的情形单独处理(按定义取截断极限,注意截断方式会影响结果,参考 5.5 节的 Cauchy 主值讨论)。数值计算中这条区别表现为「采样估计的方差」:条件收敛的被积函数在尾部按 1x 衰减,方差可能发散,Monte Carlo 的收敛速率会差于标准的 n−1/2。

错误 4 · 用直方图或网格上的差分判断密度是否存在

原因:有限分辨率的数值结果无法区分绝对连续与奇异。实验四(c) 的数据给出明确的证据:Cantor 函数在 N=106 的网格上,∑|Δf|=1.00000000(看起来「有总量为 1 的导数」),最大斜率 122.07(有限),只有「导数非零的步数占比」这一项在暴露异常(0.0118,且随网格加密持续下降)。若只报告「导数的总和」或「导数的最大值」,会得出「这个函数有密度」的错误结论。直方图的问题类似:任何分布的直方图在足够粗的分辨率下都看起来很平滑,奇异性只在分辨率提高且观察「质量集中在多少比例的网格上」时暴露。

解决:判断密度是否存在时检查「质量所在的集合随分辨率如何变化」:在两级或多级网格上计算「非零增量的步数占比」与「最大增量随步长的变化」,若占比随网格加密趋向零而总变差保持不变,说明质量集中在一个测度趋零的集合上,属于奇异型;若占比保持为 1、最大增量与步长成正比(斜率有界),说明绝对连续。统计上对应的检验是比较不同尺度下的局部维数或使用多尺度熵、Rényi 维数等工具。报告中给出多级分辨率的结果,避免只报单一分辨率下的数值。