我正在尝试使用线法求解以下 PDE 波动方程:
波动方程:u_tt = u_xx
初始条件:u(0,x) = sin*pi,u_t(0,x)=0, 0 < x < 1
边界条件:u(t,0) = 0, u(t,1) = 0, t >= 1
已编辑:删除旧代码并将很快发布新代码。:)
我正在尝试使用线法求解以下 PDE 波动方程:
波动方程:u_tt = u_xx
初始条件:u(0,x) = sin*pi,u_t(0,x)=0, 0 < x < 1
边界条件:u(t,0) = 0, u(t,1) = 0, t >= 1
已编辑:删除旧代码并将很快发布新代码。:)
问题是odeint解决了形式的一阶ODE
冒着听起来粗鲁的风险:在对此类代码进行细微修改之前,您应该首先阅读一些 PDE 以了解您要解决的问题。一个好的起点可以是Randy LeVeque的附录 E,普通和偏微分方程的有限差分方法,SIAM 2007。
由于波动方程涉及时间上的二阶导数,因此需要两个初始条件:初始位移和初速度. 我没有看到您的问题中指定的初始速度条件。这使我怀疑您链接到的教程有问题...
正如我所怀疑的,本教程中的代码是用于热方程,而不是波动方程。为了求解波动方程,您还需要完全使用不同的时间步进方案。教程中实现的那个不适用于波动方程。