pdepe 还是 Crank-Nicolson?pdepe有多好?

计算科学 pde matlab 数字
2021-12-16 20:47:28

我是 MATLAB 和类似的初学者。我播种并与我的教授讨论过几次模拟:他们写下了很多微积分,其中大多数使用 Crank-Nicolson 方法,因此在 MATLAB 上实现它们。

直到现在,我都无法想象 MATLAB 有 pdepe。今天我了解了 pdepe 并尝试编写我的教授用 Crank-Nicolson 编写的 PDE。结果完全一样,而且我的微积分更少。

我正在考虑这两种方法之间的区别。其实我很想知道什么时候用pdepe不是那么好(曾经觉得这很了不起,很简单……!)。其他方法对简单研究有什么好处?

提前谢谢了。

1个回答

Crank-Nicolson 是抛物线 PDE 的一种非常好的经典方法,例如它最初应用的传热 PDE。它相对容易理解和实现,因此经常在 PDE 数值方法的基础课程中介绍。pdepe 也非常适合此类 PDE(pdepe 中的第二个“p”代表抛物线)。与 Crank-Nicolson 的基本实现相比,它具有许多优势,包括准确性和性能。然而,pdepe 中的算法并不容易理解,而且实施起来更具挑战性。

话虽如此,pdepe 不太适合涉及对流的 PDE,例如那些模拟流体流动的 PDE。这些 PDE 被归类为双曲线,并且有大量关于解决这些问题的数值方法的文献。您可以找到许多用 MATLAB 和其他语言编写的用于此类 PDE 的优秀求解器。

底线是:如果您的目标是了解 PDE 数值解的不同算法,请务必编写自己的求解器。但是,如果您的目标只是将 PDE 作为您研究的一部分或进行求解,我强烈建议您寻找由该领域专家编写的求解器。