matlab 离散点求导_【Spectral Method】8.谱求导矩阵求解波动方程

本文介绍了使用谱方法在MATLAB中求解1D和2D波动方程的过程,重点在于构建谱求导矩阵。1D情况遵循达朗贝尔公式,2D情况则考虑了薄膜波动方程。通过这种方法,能够模拟正行波和反行波的传播。
摘要由CSDN通过智能技术生成
  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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值