傅里叶级数的前世今生
傅里叶变换应用在我们生活中的方方面面,它本身值的用“传奇”两个字来评价。
相信学习通信和自动化的朋友们,都能够领会到这个变换的强大之处。
它提供了一个全新的视角去理解这个世界——从“时域”到“频域”。
不过在最开始的时候,约瑟夫傅里叶创造它并不是为了纯数学的优雅,而是为了解决一个非常实际的热传导问题——如何精确地描述热量在物体(比如一块金属)中随时间扩散和分布的规律?
现在让我们把视角转到十九世纪,来回顾一下“傅里叶级数”的前世今生。(当然从级数到变换中间还有很长的路要走,这里从级数开始讲起)
1.热传导问题的核心是解一个偏微分方程
我们以一根细杆的一维热传导为例来介绍。设 u(x,t) 表示在位置 x 处、时间 t 的温度,那么当时人们已经能够总结出基本的热传导方程如下所示:
∂t∂u=k∂x2∂2u,
u(x,0)=f(x),
求$u(x,t)$
其中
∂t∂u是温度对时间的一阶偏导数
∂x2∂2u是温度对空间的二阶偏导数
k是一个常数,代表热扩散率
已知初始时刻t=0的温度分布$u(x,0)=f(x)$,求任意$t$时间的任意$x$的温度$u(x,t)$:
这个热传导方程的难点就是不限制$f(x)$,对于给定一个任意的$f(x)$,都要求出$u(x,t)$。
像这样的偏导数求解,在傅里叶那个年代人类还从来没有遇到过,不知道怎么求解。
而傅里叶创造出傅里叶级数,就是为解这样的方程创造的一个工具。
基础补充:什么是偏导数:
考虑到有些朋友已经忘记偏导数是什么了。这里补充说明一下。如果对偏导数很熟悉的朋友可以跳过。
单变量场景-导数
首先我默认各位朋友知道什么是“导数”。导数就是瞬时变化率。以一辆汽车为例,假设任意 t 时间的速度是$v(t)$,那么它的导数就是$v'(t)$速度的瞬时变化率,物理意义上就是加速度。
多变量场景-偏导数
如果速度和多个变量相关呢?
例如火箭发射中燃料不停的消耗,整个系统的质量$m$在不断的减少。在这个系统中,速度$v(m, t)$就和时间 t ,质量 m 两个参数相关了。
偏导数是多元函数对其中一个自变量的导数,而将其他自变量视为常数。
上述这个例子中就有两个偏导数:
∂t∂v 这表示:固定质量不变时,速度随时间的变化率(纯粹由于加速度引起的变化)
∂m∂v这表示:固定时间不变时,速度随质量的变化率(质量减少对速度的影响)
2.如何解这个偏微分方程
2.1 当时人们对这个方程的认知
当时的人们对于
$\begin{cases}
CodeBlock Loading...
\end{cases}$
这个问题,十九世纪的人们已经有以下几点认知:
- 如果$u(x)= B$ ,那么 u(x,t)=B
- 如果$u(x)= Bcos(\omega x)$ ,那么 u(x,t)=Bcos(ωx)e−Kω2t
- 如果$u(x)= Csin(\omega x)$ ,那么 u(x,t)=Csin(ωx)e−Kω2t
这三个公式是当时的人们试凑出来的,我们把结论代回方程,也可以证明这三个式子成立
公式一验证
u(x,t)=B
求对t的一阶导数 ∂t∂u:因为B是一个常数,不随时间$t$变化,所以最后的结果为0
求对x的二阶导数∂x2∂2u,因为B也不随空间$x$变化,所以左后结果为0。
可以得到$\frac{\partial u}{\partial t}=k\frac{\partial ^2u}{\partial x^2}$成立。
令t=0,求$u(x,t)=B$:$u(x,0)=B=u(x)$
可以得到$u(x,0)=u(x)$成立。
公式二验证
u(x,t)=Bcos(ωx)e−Kω2t
求对t的一阶导数 ∂t∂u: ∂t∂u=Bcos(ωx)e−Kω2t(−Kω2)
求对x的二阶导数$\frac{\partial ^2u}{\partial x^2}$,方法为先求一阶导$\frac{\partial u}{\partial x}$,再对$\frac{\partial u}{\partial x}$求一次导得到二阶导 ∂x2∂2u:
这里需要用复合函数求导的法则,因为是对x求导,所以$e^{-k{\omega}^2 t}$看做是一个常数。
链式求导法则:1.先识别最外层函数,求导。2.再乘以内层函数的导数。3.如果嵌套,继续向内
∂x∂u=−Bsin(ωx)e−kω2tω
再对$x$做一阶导可得二阶导 :
∂x2∂2u=−Bcos(ωx)e−Kω2tω2
可以得到$\frac{\partial u}{\partial t}=k\frac{\partial ^2u}{\partial x^2}$成立。
u(x,t)=Bcos(ωx)e−Kω2t把初始条件$t=0代入$。
u(x,0)=Bcos(ωx)e−Kxω2∗0=Bcos(ωt)e0=Bcos(ωt)
所以$u(x,0)=u(x)$成立。
公式三验证
u(x,t)=Csin(ωx)e−Kω2t
求对t的一阶导数 ∂t∂u: ∂t∂u=Ccos(ωx)e−Kω2t(−Kω2)
求对x的二阶导数$\frac{\partial ^2u}{\partial x^2}$,方法为先求一阶导$\frac{\partial u}{\partial x}$,再对$\frac{\partial u}{\partial x}$求一次导得到二阶导 ∂x2∂2u:
∂x∂u=Ccos(ωx)e−Kω2tω
再对$x$做一阶导可得二阶导 :
∂x∂u=−Csin(ωx)e−Kω2tω2
可以得到$\frac{\partial u}{\partial t}=k\frac{\partial ^2u}{\partial x^2}$成立。
同样再把初始条件$t=0代入$。
u(x,0)=Csin(ωx)
所以$u(x,0)=u(x)$成立。
3 傅里叶的假设
假设一:
u(x)=B0+∑k=1+∞Bkcos(kω0x)+∑k=1+∞Cksin(kω0x)
这里往往称$B{0}$为直流分量,$\omega{0}$为基波频率,而$k\omega_{0}$为k次谐波频率。
那么热传导方程的解是下面这个公式:
u(x,t)=B0+∑k=1+∞Bkcos(kω0x)e−Kω02t+∑k=1+∞Cksin(kω0x)e−Kω02t
Note
这里$e^{-{K\omega _0}^2t}$上面是大K哦,和小k不是同一个,是一个系数。
假设二:
如果任意一个函数$u\left( x \right)$都可以分解为$B0+\sum{k=1}^{+\infty}{Bk\cos \left( k\omega 0 \right)}+\sum{k=1}^{+\infty}{Ck\sin \left( k\omega _0 \right)}$。那就能找到任意函数的热传导方程的解。
在这里就把问题转化为——如何把一个函数$u\left( x \right)$分解为$B0+\sum{k=1}^{+\infty}{Bk\cos \left( k\omega 0 x\right)}+\sum{k=1}^{+\infty}{Ck\sin \left( k\omega _0 x\right)}$这种形式
3.1 如何计算$B_0$
u(x)=B0+∑k=1+∞Bkcos(kω0x)+∑k=1+∞Cksin(kω0x)
Important
如何计算$B_0$?两边同时积分:
∫0ω02πf(x)dx=∫0ω02πB0dx+∑k=1+∞∫0ω02πBkcos(kω0x)dx+∑k=1+∞∫0ω02πCksin(kω0x)dx
然后可以证明:
∑k=1+∞∫0T0Bkcos(kω0x)dx=0;
∑k=1+∞∫0T0Cksin(kω0x)dx=0;
所以最后可以的到$B_0$
B0=T0∫0T0u(x)dx
3.1.1 如何证明$\sum{\mathrm{k}=1}^{+\infty}{\int0^{T0}{\mathrm{B}{\mathrm{k}}\cos \left( \mathrm{k\omega}_0 x\right)}}\mathrm{dx}=0$
Important
因为$T_0$是基波周期,导致积分后的$sin(2k\pi)$在k为正整数的时候一直为0
∫0ω02πBkcos(kω0x)dx=Bk[kω0sin(kω0x)]0ω02π=Bk(kω0sin(kω0ω02π)−kω0sin(kω0∗0))=Bk(kω0sin(2πk)−kω0sin(0))=Bk(0−0)=0
所以最后它的级数$\sum{\mathrm{k}=1}^{+\infty}{\int0^{\frac{2\mathrm{\pi}}{\mathrm{\omega}0}}{\mathrm{B}{\mathrm{k}}\cos \left( \mathrm{k\omega}_0 x\right)}}\mathrm{dx}$也为0。
3.1.2 如何证明$\sum{\mathrm{k}=1}^{+\infty}{\int0^T{\mathrm{C}{\mathrm{k}}\sin \left( \mathrm{k\omega}0 x\right)}}\mathrm{dx}=0$
∫0ω02πCksin(kω0x)dx=ck[−kω0cos(kω0x)]0ω02π=ck(−kω0cos(kω0ω02π)−−kω0cos(kω00))=ck(−kω0cos(2kπ)−−kω0cos(0))=ck(−kω01−−kω01)=0
3.2 如何计算$B_k$
Important
如何计算$Bk$,两边同乘以$\cos \left(a \omega 0x \right) $再做积分
∫0T0u(x)cos(aω0x)dx=∫0T0B0cos(ω0x)dx+∑k=1+∞∫0T0Bkcos(kω0x)cos(ω0x)dx+∑k=1+∞∫0T0Cksin(kω0x)cos(ω0x)dx
这里先假设以下这四个公式成立:
1.$\int0^{T0}{\cos \left( k1\omega 0x \right) \cos \left( k2\omega 0x \right) dx}=0$,前提条件$k1\neq k2$
2.$\int0^{T0}{\cos \left( k1\omega 0x \right) \sin \left( k2\omega 0x \right) dx}=0$,前提条件$k1\neq k2$
3.$\int0^{T0}{\cos ^2\left( k\omega 0x \right) dx}=\frac{T0}{2}$
4.$\int0^{T0}{\sin^2\left( k\omega 0x \right) dx}=\frac{T0}{2}$
那么上述式子可以得出:
∫0T0u(x)cos(aω0x)dx=∫0T0B0cos(aω0x)dx+∑k=1+∞∫0T0Bkcos(kω0x)cos(aω0x)dx+∑k=1+∞∫0T0Cksin(kω0x)cos(aω0x)dx∫0T0u(x)cos(aω0x)dx=0+0+2T0Ba+0=2T0BaBa=T02∫0T0u(x)cos(aω0x)dx
也就是说$Bk=\small{\frac{2}{T0}}\int0^{T0}{u\left( x \right) \cos \left( k\omega _0x \right) dx}$
Important
这四个函数不难证明,只是繁琐而已。需要用到高中三角函数的几个公式。
cosαcosβ=21[cos(α+β)+cos(α−β)]
cosαsinβ=21[sin(α+β)−sin(α−β)]
cos2α=21+cos2α
sin2α=21−cos2α
3.2.1 证明$\int0^{T0}{\cos \left( k1\omega 0x \right) \cos \left( k2\omega 0x \right) dx}=0$,前提条件$k1\neq k2$
Important
利用$\cos \alpha \cos \beta =\frac{1}{2}\left[ \cos \left( \alpha +\beta \right) +\cos \left( \alpha -\beta \right) \right] 这个公式,以及sin2k \pi=0,cos2k\pi=1$的特性去求解即可。
∫0T0cos(k1ω0x)cos(k2ω0x)dx=∫0T021[cos(k1ω0x+k2ω0x)+cos(k1ω0x−k2ω0x)]dx=21[∫0T0cos(k1ω0x+k2ω0x)dx+∫0T0cos(k1ω0x−k2ω0x)dx]=21[k1ω0+k2ω0sin(k1ω0x+k2ω0x)∣0T0+k1ω0−k2ω0sin(k1ω0x−k2ω0x)∣0T0]=21[(k1ω0+k2ω0sin(k1ω0T0+k2ω0T0)−k1ω0+k2ω0sin(k1ω00+k2ω00))+(k1ω0−k2ω0sin(k1ω0T0−k2ω0T0)−k1ω0−k2ω0sin(k1ω00−k2ω00))]=21[(k1ω0+k2ω0sin2(k1+k2)π−k1ω0+k2ω0sin(0))+(k1ω0−k2ω0sin2(k1−k2)π−k1ω0−k2ω0sin(0))]=0
3.2.2 证明$\int0^{T0}{\cos \left( k1\omega 0x \right) \sin \left( k2\omega 0x \right) dx}=0$,前提条件$k1\neq k2$
Important
利用$\cos \alpha \sin \beta =\frac{1}{2}\left[ \sin \left( \alpha +\beta \right) -\sin \left( \alpha -\beta \right) \right] 这个公式,以及sin2k \pi=0,cos2k\pi=1$的特性去求解即可。
∫0T0cos(k1ω0x)sin(k2ω0x)dx=∫0T021[sin(k1ω0x+k2ω0x)−sin(k1ω0x−k2ω0x)]dx=21[k1ω0+k2ω0−cos(k1ω0x+k2ω0x)∣0T0−k1ω0−k2ω0−cos(k1ω0x−k2ω0x)∣0T0]=21[(k1ω0+k2ω0−cos(k1ω0T0+k2ω0T0)−k1ω0x+k2ω0x−cos(k1ω00+k2ω00))−(k1ω0−k2ω0−cos(k1ω0T0−k2ω0T0)−k1ω0−k2ω0−cos(k1ω00−k2ω00))]=21[(k1ω0+k2ω0−cos2(k1+k2)π−k1ω0x+k2ω0x−cos(0))−(k1ω0−k2ω0−cos2(k1−k2)π−k1ω0−k2ω0−cos(0))]=21[(k1ω0+k2ω0−1−k1ω0x+k2ω0x−1)−(k1ω0−k2ω0−1−k1ω0−k2ω0−1)]=0
3.2.3 证明$\int0^{T0}{\cos ^2\left( k\omega 0x \right) dx}=\frac{T0}{2}$
Important
利用$\cos ^2\alpha =\frac{1+\cos 2\alpha}{2}$这个公式去代,$\int0^{T0}{\frac{\cos 2k\omega _0x}{2}dx}$这个式子在3.2.1里面证明过了等于0。
∫0T0cos2(kω0x)dx=∫0T021+cos2kω0xdx=∫0T021dx+∫0T02cos2kω0xdx=∫0T021dx+0=2T0
3.2.4 证明$\int0^{T0}{\sin^2\left( k\omega 0x \right) dx}=\frac{T0}{2}$
∫0T0sin2(kω0x)dx=∫0T021−cos2αdx=∫0T021dx−∫0T02cos2kω0xdx=∫0T021dx−0=2T0
3.3 如何计算$C_k$
Tip
这里和计算$B_k$时的思路类似
∫0T0u(x)sin(aω0x)dx=∫0T0B0sin(aω0x)dx+∑k=1+∞∫0T0Bkcos(kω0x)sin(aω0x)dx+∑k=1+∞∫0T0Cksin(kω0x)sin(aω0x)dx=0+0+2T0Ca
最后可得$Ck=\frac{2}{T0}\int0^{T0}{u\left( x \right) \sin \left( k\omega _0x \right) dx}$
3.4 总结
如果有一个$f\left( x \right) =B0+\sum{k=1}^{+\infty}{Bk\cos \left( k\omega 0x \right)}+\sum{k=1}^{+\infty}{Ck\sin \left( k\omega _0x \right)}$
T0是基波周期等于$\frac{2\pi}{\omega}$
则
B0=T0∫0T0f(x)dx
Bk=T02∫0T0f(x)cos(kω0x)dx
Ck=T02∫0T0f(x)sin(kω0x)dx
以此解热传导方程可得:
f(x,t)=B0+∑k=1+∞Bkcos(kω0x)e−Kω02t+∑k=1+∞Cksin(kω0x)e−Kω02t
Note
这里$e^{-{K\omega _0}^2t}$上面是大K哦,和小k不是同一个,是一个系数。
4. 后续
傅里叶当年提交这篇论文之后被法国科学院拒绝了。
这个推理中有一个收敛性的问题。
这里默认了
f(x)=B0+∑k=1+∞Bkcos(kω0x)+∑k=1+∞Cksin(kω0x)
问题是为什么$f(x)$可以写成这样呢?
傅里叶想到了这个问题,他当年写了一小句:我认为对于常规的方波,三角波,是能够证明收敛性的。
但是他没有证明,只是说了“我觉得可以”。
从他1805年提出这篇论文,直到1832年才有另外一个人,叫做“狄利赫里”才把它基本上解决了,这部分内容放到下一节再聊。