matlab 离散点求导_【Spectral Method】8.谱求导矩阵求解波动方程
1D情况想象这么一个情景:有一根两端固定的、柔韧度足够的弦,若它的平衡位置设置为x轴,u(x,t)表示弦上坐标为x的点在时刻t垂直于x方向的位移,则弦的自由震动方程为:(可以取a=1)依旧拿之前的例子作为初始条件,它对于波动的表现较形象: 《数理方程》中介绍过达朗贝尔公式,根据公式,这2个sech函数将分别分裂成两半,以速度a沿着x轴的正方向和负方向传播,即正行波和反行波,这...
-
1D情况
想象这么一个情景:有一根两端固定的、柔韧度足够的弦,若它的平衡位置设置为x轴,u(x,t)表示弦上坐标为x的点在时刻t垂直于x方向的位移,则弦的自由震动方程为:
(可以取a=1)
依旧拿之前的例子作为初始条件,它对于波动的表现较形象:


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

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


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

2. 2D情况:

可以把他认为是薄膜波动方程。U(x,y,t)表示在t时刻(x,y)处薄膜的位移。
同样取a = 1,初始条件给一个Guass波包:

对于高阶偏导,我们有:

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

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

这里再次说明:谱方法(概称)是应用于周期性边界条件的,关于一二三边界的处理,过一阵有时间可以说一说切比雪夫谱方法,不过由于今儿时间原因,我想把谱方法在求解其他偏微分方程组时有意思的东西留到下一次。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)