利用MATLAB工具箱求解偏微分方程

MATLAB的pdepe指令可以解决形如以下的偏微分方程:

[m frac{partial c}{partial t} + frac{partial }{partial x} left( f(x,t,u, frac{partial u}{partial x}) right) = s(x,t,u, frac{partial u}{partial x}) ]

其中,时间范围为 (0 leq t leq t_f), 空间范围为 (a leq x leq b)。参数m表示问题的对称性,可取0(平板)、1(圆柱)或2(球体)。当(m > 0)时,a必须等于b,表示圆柱或球体的对称性。

方程式中各项的含义如下:

  • (f(x,t,u, frac{partial u}{partial x})) 表示流通量(flux)。
  • (s(x,t,u, frac{partial u}{partial x})) 表示来源项(source)。
  • (c(x,t,u, frac{partial u}{partial x})) 表示偏微分方程的对角线系数矩阵。对角线元素为0表示椭圆型偏微分方程,为正值表示抛物型偏微分方程。

离散化方法

类似于抛物型方程的处理方法,我们将xt平面剖分成矩形网格,x方向步长为h,t方向步长为τ。通过不同的差商近似偏导数,可以得到方程的不同差分格式,并结合离散化的初始条件,得到最终的差分格式。