1. 1D情况

 想象这么一个情景:有一根两端固定的、柔韧度足够的弦,若它的平衡位置设置为x轴,u(x,t)表示弦上坐标为x的点在时刻t垂直于x方向的位移,则弦的自由震动方程为:

02deb559766537bf8fd08e01c60ccee5.png(可以取a=1)

   依旧拿之前的例子作为初始条件,它对于波动的表现较形象:

4fada1b6ba7349dfccfabcd9dce230c3.png

0a8671ce6a94ae03b9efceb00b0d311e.png

  《数理方程》中介绍过达朗贝尔公式,根据公式,这2个sech函数将分别分裂成两半,以速度a沿着x轴的正方向和负方向传播,即正行波和反行波,这些正行波和反行波的叠加就形成了弦的总位移。

基本思路就是:

b633bdc57efbc4e0662d06547ffc4f0f.png

    步骤和利用FFT求解的时候略有不同:

   除了常规的离散设置,还需要有一步骤构建谱求导矩阵(上一章我说过),利用ode45求解方程组之后得到的时间层t*u矩阵,不涉及什么空域频域之分,因此无需再ifft之类的操作。

751d6ddea59319b02e40ccb10a333995.png

b258e77186e2b3542ee0d5a0d7437568.png

可以发现,完全符合达朗贝尔公式。

b5d8f2d626ac5b04b7713acc202fba2f.png

2. 2D情况:

89186cea7fc4ff904c999fdf131088d4.png

可以把他认为是薄膜波动方程。U(x,y,t)表示在t时刻(x,y)处薄膜的位移。

同样取a = 1,初始条件给一个Guass波包:

c8c74bdefefe2b9a476db600cfbcfe51.png

对于高阶偏导,我们有:

a631cc809fd77d75e2f99ba03e895def.png

因此为二阶导数构造二阶的谱求导矩阵:

e53cff61ae50b344f8912767a810e168.png

在求解的时候,u先转化成N*N矩阵形式,中间变量v可以是列向量。

显示:

7e213a2d8d394527c1317262a551a011.png

这里再次说明:谱方法(概称)是应用于周期性边界条件的,关于一二三边界的处理,过一阵有时间可以说一说切比雪夫谱方法,不过由于今儿时间原因,我想把谱方法在求解其他偏微分方程组时有意思的东西留到下一次。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐