3.3.1 一维KdV方程
1834年,英国科学家、造船工程师Scott Russel观察到一只运行的木船船头挤出一堆水来,当船突然停下时,这堆水竟保持着它的形状,以大约13km/h的速度往前传播。1895年由荷兰数学家Korteweg和de Vries共同导出了在浅水沟表面上按照一个方向传播的波的运动方程,也就是KdV方程(Kortewegde Vries equation),它的形式可以写成:

u是时间t和空间x的函数。式(3-32)的孤子解为a2/4·sech2{1/2[ax(a+a3)t+δ]},其中,a和δ为任意常数。对上式做傅里叶变换,得到:

使用t=0时的孤子解作为初始条件,令a=2、δ=0,则u(x,0)=sech2(x),用傅里叶谱方法求解KdV方程的代码如下:
程序3-6
主程序代码如下:
(https://www.daowen.com)

KdV.m文件代码如下:

程序输出结果如图3-8所示,左图为空域上的u(x,t),右图为频域上的û(k,t)。由孤子的解析解可知,孤子的形状保持不变,并以5个空间单位/1个时间单位的速度向x正方向移动,相应地,频域上的振幅始终不变,这与图中的计算结果完全一致。

图3-8 KdV方程的孤子解