本编文章探讨一下数学物理方法中一个常见的问题,即如何用傅立叶变换得到PDE或者积分方程的解。在文章的最后,会附上MATLAB的实现代码。学疏才浅,欢迎大家指点!
1. 什么是傅立叶变换?
- 从数学形式上来看,FT的表示在各个领域有着细微的差别。
(*本文遵循以下的定义)
- 从直观意义上来说,我们通过将波形
分解成许多不同频率的正弦波的叠加把时域信号转换到频域。从而把对原函数的研究转化为不同频率分量的幅值和相位的研究。
更详细的入门介绍可以看这里:
Heinrich:傅里叶分析之掐死教程(完整版)更新于2014.06.06zhuanlan.zhihu.com非常推荐3Blue1Brown的相关视频:
【官方双语】形象展示傅里叶变换_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com还有斯坦福EE的公开课!时间充裕的话,了解一下。
EE261 - The Fourier Transform and its Applicationssee.stanford.edu2. 傅立叶变换的优势
傅立叶变换与拉普拉斯变换不同,可以处理全平面上的问题,不要求时间
- 微分性质
如果
对一个函数的导数做傅里叶变换,结果上等于这个函数的傅里叶变换乘以因子。
对于一个偏微分方程来说,计算上假设我们对空间变量做傅里叶变换,那我们可以将关于空间的偏微分算符转换成简单的系数乘积
- 积分性质
对一个函数的积分做傅里叶变换,结果上等于这个函数的傅里叶变换除以因子。
3. 傅立叶变换的局限性(选读)
总的来说, 傅里叶变换的分析思路是将时域特征和频域特征完全分离开来处理的。做完变换之后,频域内不包含任何时域信息。同样的,时域中也没有关于频率的信息。对于频谱当中的某一特定频率信号
我们知道对于光子来说,
那么什么是非平稳信号呢?可以看下下图左侧的例子。
具体的解决方案可移步以下问题,写的很详细
如何通俗地讲解傅立叶分析和小波分析间的关系?www.zhihu.com4. 具体的例子:一维波动方程
考虑如下的微分方程:
和边界条件:
出于一些约定习俗,我们对等式两边做关于空间变量
变换的结果如下,
*请读者到这里思考一下,对空间作傅里叶变换有什么实际的物理意义吗?
从这里我们可以看到FT的优势是如何体现出来的:
将关于空间的多次偏微分直接操作了出来,而关于时间的偏微分化为常微分。
当然我们也必须把边界条件作傅立叶变换。
如果不清楚具体的数学过程的话,先看MATLAB代码段:
>> syms x w;
>> f1 = cos(x);
>> f2 = sin(x);
>> F1 = fourier(f1)
F1 =
pi*(dirac(w - 1) + dirac(w + 1))
>> F2 = fourier(f2)
F2 =
-pi*(dirac(w - 1) - dirac(w + 1))*1i
* 关于fourier()这个指令我们看看更多的例子:
经过以上处理后,我们已经把一个PDE问题转化为ODE问题。
和变换后的边界条件:
可以解得,
代码段:
>> U = dsolve('D2U = -w^2* U','U(0) = F1, DU(0) =F2','t')
U =
(exp(-t*w*1i)*(F1*w + F2*1i))/(2*w) - (exp(t*w*1i)*(F2*1i - F1*w))/(2*w)
最后,我们把得到的解做一个傅立叶逆变换就能得到原问题的解了。很简单吧!
代码段:
>> syms t
>> U = (exp(-t*w*1i)*(F1*w + F2*1i))/(2*w) - (exp(t*w*1i)*(F2*1i - F1*w))/(2*w)
>> u = ifourier(U)
u =
(pi*exp(- t*1i + x*1i) + pi*exp(t*1i - x*1i))/(2*pi)
现在你可以自己创建一个问题,来验证下是不是掌握了这个流程呢?
5. 新增的例子:MATLAB求解微分积分方程 (选读)
这一章节, 我们尝试求解以下方程
求解的关键在于第二小节中提到的微分和积分性质。假设
然后用MATLAB,简化运算
>> syms t w;
>> g = exp( -abs(t) );
>> G = fourier(g)
G =
2/(w^2 + 1)
>> X = G/(i*(w+4/w));
>> x = ifourier(X,t)
x =
((2*pi*exp(-abs(t))*sign(t))/3 - (2*pi*exp(-2*abs(t))*sign(t))/3)/(2*pi)
稍微整理下形式,我们可以得到
函数图像如下: