卡在一个可怕的微分方程上

计算科学 pde matlab
2021-12-12 06:45:23

我被困在这个 PDE 上:

ρCTτ+uρCTr=λr2r(r2Tr)+KρCTVVτ
这应该描述快速热解过程中的焓变化。我知道所有参数(ρ,C,λ,K) 我可以得到uV从解析表达式。

假设我知道初始条件和两个边界条件,我想使用 matlab 对其进行数值求解。

有人可以帮帮我吗?提前致谢。

IC和BC:

Tτ=0=T00rR
Tr|r=0=0
Tr|r=R=C1(TmTR)

是的,τ是一个时间变量并且r是空间坐标。我期待一个简介T关于这两个变量。

如果我不能提供这么多有用的信息,我很抱歉,但是我得到了一篇科学论文来研究这些方程(有很多方程,但这个是最棘手的)的显示位置,但没有提到他们如何解决并得到结果。

3个回答

我还建议使用有限差分代码(如 Paul 和 AshikIdrisy 所建议的),而不是在两者中都离散化rτ, 我只会离散化r. 半离散微分方程r将产生一个 ODE 系统τ,然后可以使用 MATLAB 的内置 ODE 求解器之一在 MATLAB 中求解。

就 PDE 求解器而言,您可以尝试使用 MATLAB 的pdepe求解器,因为您的方程看起来是抛物线的。

它只是一个空间维度上的对流扩散方程。我不知道如何在 matlab 中做到这一点,但是大多数开源有限元库(deal.II、fenics、libmesh、...)中都有教程程序来演示如何解决这些问题。用有限元代码求解这个方程不会特别困难,只要(i)扩散支配平流,或者(ii)你适当地稳定方程,或者(iii)你可以提供足够细的网格,您可能可以这样做,因为您的模型只有 1d。

(免责声明:我是 deal.II 的作者之一。)

鉴于他们给出边界条件的方式,我建议使用上面 Paul 所暗示的有限差分代码。看来你可以设置一个网格τr并为τ和可能的中心差异方案r. 如果你知道有限差分,如果你最终想使用这种方法,我可以更详细地介绍。就像第一步一样,尽管您可能希望获得关于 的所有导数r一方面和那些τ在另一。

我知道 Matlab 已经内置了 ODE 求解器,但我不确定 PDE 求解器。我认为通过在 .m 文件中编写一些代码,自己进行第一次尝试,你会学到最多。