连续但处处不可导的函数
主要翻译自 Stephen Abbott 的 Understanding Analysis(2015)的 5.4 A Continuous Nowhere-Differentiable
Function
1872年 Karl Weierstrass展示了一类连续但是每个点处都不可导的函数。
f
(
x
)
=
∑
n
=
0
∞
a
n
cos
b
n
x
f(x)=\sum_{n=0}^{\infty}a^n\cos{b^nx}
f(x)=n=0∑∞ancosbnx
其中a和b的值是精心选择的。
这类函数是傅立叶序列的一类特例。
Weierstrass的例子可以通过用有类似的振荡特性的分段线性函数替换cos函数来简化。
定义[-1,1]上的函数
h
(
x
)
=
∣
x
∣
h(x)=|x|
h(x)=∣x∣
然后通过约定
h
(
x
+
2
)
=
h
(
x
)
h(x+2)=h(x)
h(x+2)=h(x) 扩展定义到
R
\R
R上。
然后定义
g
(
x
)
=
∑
n
=
0
∞
h
n
(
x
)
=
∑
n
=
0
∞
1
2
n
h
(
2
n
x
)
g(x)=\sum_{n=0}^{\infty}h_n(x)=\sum_{n=0}^{\infty}\frac{1}{2^n}h(2^nx)
g(x)=n=0∑∞hn(x)=n=0∑∞2n1h(2nx)
g(x)在
R
\R
R上连续但处处不可导。
已知 h(x)在
R
R
R上的连续性,根据第4章的相关定理可知以下有限和在
R
R
R 上连续
g
m
(
x
)
=
∑
n
=
0
m
1
2
n
h
(
2
n
x
)
g_m(x)=\sum_{n=0}^{m}\frac{1}{2^n}h(2^nx)
gm(x)=n=0∑m2n1h(2nx)
这带给我们一个在分析学中的典型问题:什么时候对有限的场景有效的结论可以扩展到无限的情况?一般来说不能,不过对这个例子来说可以证明。
绘制 g m ( x ) g_m(x) gm(x)的图像
import numpy as np
import matplotlib.pyplot as plt
def h(x):
# return np.cos(x)
x = (x + 1) % 2 - 1
return np.abs(x)
m_value = 5 # Replace with your desired value
plt.plot(x, g_m(x, m_value))
plt.xlabel('x')
plt.ylabel('g_m(x)')
plt.title(f'Plot of g_m(x) for m = {m_value}')
plt.grid(True)
plt.show()
练习:
假设g为连续的,在[0,2]找到 g(x) 的最大值,记D为[0,2]上g达到最大值的点集,找到一个点。D是否有限,可数或不可数?
不可微性
首先观察x=0的点。g在这一点看起来不可微。考虑数列
x
m
=
1
/
2
m
x_m=1/2^m
xm=1/2m, 不难证明
g
(
x
m
)
−
g
(
0
)
x
m
−
0
=
m
+
1
\frac{g(x_m)-g(0)}{x_m-0}=m+1
xm−0g(xm)−g(0)=m+1
如果考虑
x
m
=
−
1
/
2
m
x_m=-1/2^m
xm=−1/2m,则可以发现两者分别趋向
∞
\infty
∞和
−
∞
-\infty
−∞。g在x=0这一点的几何表示是一个尖点。
接下来可以考虑 x=1 和 x=1/2 的点。然后是所有形如
p
/
2
k
p/2^k
p/2k 的点处,其中
p
∈
Z
,
k
∈
N
p\in \Z , k\in \N
p∈Z,k∈N,
g
′
(
x
)
g'(x)
g′(x) 都不存在。这些点被称为二分点。
不难发现当
n
≥
k
n\geq k
n≥k时的二分点处
h
n
(
x
)
h_n(x)
hn(x)都有一个角,因此这些点处g都不可微。对于二分点之间的点,这个结论需要更加精细对待。
假设x不是一个二分点,那么对一个固定的
m
∈
N
m\in \N
m∈N,x会落在两个连续的二分点之间
p
m
2
m
<
x
<
p
m
+
1
2
m
\frac{p_m}{2^m}\lt x \lt \frac{p_m+1}{2^m}
2mpm<x<2mpm+1
记
x
m
=
p
m
/
2
m
x_m=p_m/2^m
xm=pm/2m以及
y
m
=
(
p
m
+
1
)
/
2
m
y_m=(p_m+1)/2^{m}
ym=(pm+1)/2m。
对每个
m
∈
N
m \in \N
m∈N重复此过程得到两个数列
(
x
m
)
(x_m)
(xm)和
(
y
m
)
(y_m)
(ym)满足
lim
x
m
=
lim
y
m
=
x
a
n
d
x
m
<
x
<
y
m
\lim x_m=\lim y_m=x \space and \space x_m<x<y_m
limxm=limym=x and xm<x<ym
首先有一个引理:假设函数f在一个开区间J上在
a
∈
J
a\in J
a∈J 可微。如果数列
(
a
n
)
(a_n)
(an)和
(
b
n
)
(b_n)
(bn)满足
a
n
<
a
<
b
n
a_n<a<b_n
an<a<bn 以及
lim
a
n
=
lim
b
n
=
a
\lim a_n=\lim b_n=a
liman=limbn=a,则有
f
′
(
a
)
=
lim
n
→
∞
f
(
b
n
)
−
f
(
a
n
)
b
n
−
a
n
f'(a)=\lim_{n→\infty}\frac{f(b_n)-f(a_n)}{b_n-a_n}
f′(a)=n→∞limbn−anf(bn)−f(an)
根据此引理可证
g
′
(
x
)
g'(x)
g′(x) 不存在。
Weierstrass在1872年最初的论文中无穷和
f
(
x
)
=
∑
n
=
0
∞
a
n
cos
(
b
n
x
)
f(x)=\sum_{n=0}^{\infty}a^n\cos(b^nx)
f(x)=n=0∑∞ancos(bnx)
在
0
<
a
<
1
0<a<1
0<a<1和b为奇数且
a
b
>
1
+
3
π
/
2
ab>1+3\pi/2
ab>1+3π/2时连续但处处不可微。
a的条件比较好理解,定义了一个收敛的几何级数。但是b的条件比较神秘。
1916年 G.H. Hardy 把 Weierstrass的结果扩展到包含任意
a
b
≥
1
ab\geq1
ab≥1的b。不考虑上述条件的细节,我们仍然可以有一个直观的感觉,即可微性的缺少和压缩因子(参数a)以及震荡频率增加的速率(参数b)有错综复杂的关系。
后序
Weierstrass的类似的例子应该给我们的直觉带来了一些引导,关于连续函数这远非一种异常现象而是在我们的理解的边缘。我们眼中以连续曲线出现的连续性严重地误导了我们,这一结果实际上是我们被过度地暴露给只占一小类的可微函数带来的认知偏差。我们从中得到的教训是连续性相比可微性的要求弱得多。
在3.6章节中,我们间接接触了Baire Category Theorem,表明 Weierstrass 构造的是典型的连续函数。我们将会看到大部分连续函数是处处不可导的,所以实际上可微函数才是特例。如何严格地表述这个观察在8.2章节中。
如果说处处不可微的函数在每个点处都有尖角实际上没有得到重点。Weierstrass 的原始的例子中的函数是由连续的三角函数的和得到的。实际上是稠密的震荡结构使得切线的定义不可能实现。所以如果我们把注意力放在单调函数上会如何呢?一个递增函数可以有多不可微?给定一个点的有限集合,不难组成一个有尖角因而在每个点处不可导的单调函数。接下来一个自然的问题是,是否存在一个连续的、单调函数是处处不可导的。Weierstrass怀疑这样的函数是存在的,但是只构造出来一个仅在一个可数密集合(countable dense set)上不可微的连续的递增函数。在1903年,法国数学家Henri Lebesgue(1875-1941) 证明了 Weierstrass的直觉这次错了。Lebesgue证明了一个连续的、单调函数必然在定义域上“几乎”处处可微。具体来说,Lebesgue证明了,对于任意 ϵ > 0 \epsilon \gt 0 ϵ>0,函数不可微的点集可以被一组可数的长度的和不超过 ϵ \epsilon ϵ 的区间的并集覆盖。“零长度”或者“零测度”的概念,我们在Cantor set部分遇到,并且在 7.6 章节更完整地研究,并且讨论了Legesgue对积分理论的扎实贡献。