matlab使用杂谈4-偏微分方程求解之pdede函数使用
偏微分方程
偏微分方程(Partial Differential Equation,PDE)指含有未知函数及其偏导数的方程,自变量的个数为两个或两个以上。描述自变量、未知函数及偏导数之间的关系
偏微分方程分为
1、线性偏微分方程式
2、非线性偏微分方程式
求解偏微分方程的数值方法
1、有限元法(Finite Element Method,FEM)
2、有限体积法(Finite Volume Method,FVM)
3、有限差分法(Finite Difference Method,FDM)
还有其他FFEM、XFEM、MFEM、DGFEM等方法
Matlab解偏微分方程
pdepe()函数
可求解一般的PDEs,具有较大的通用性,但指支持命令行形式调用
matlab中关于pdepe函数的用法
语法
sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan)
sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan,options)
[sol,tsol,sole,te,ie] = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan,options)
变量
参数 | 含义 |
---|---|
m | 与该问题的对称性相对应的参数。m 可以是平板 = 0,柱状 = 1,或球面 = 2。 |
pdefun | 定义函数句柄 |
icfun | 初始条件函数句柄 |
bcfun | 边界条件函数句柄 |
xmesh | 向量 [x0, x1, …, xn],用于指定需要针对 tspan 中每个值求数值解的点。xmesh 的元素必须满足 x0 < x1 < … < xn。xmesh 的长度必须 >= 3。 |
tspan | 向量 [t0, t1, …, tf],用于指定需要针对 xmesh 中每个值求解的点。tspan 的元素必须满足 t0 < t1 < … < tf。tspan 的长度必须 >= 3。 |
options | 基础 ODE 求解器的部分选项可以在 pdepe 中使用:RelTol、AbsTol、NormControl、InitialStep、MaxStep 和 Events。在大多数情况下,这些选项的默认值可提供满意解 |
分割线----------------------------------------------------------------------------------
注 :该部分涉及数学知识可不过分关注,但需要充分理解方程格式
pdepe函数主要用来结算以下格式的PDE方程
x与t的范围需要处于有限范围
对于 t = t0 和所有 x,解分量均满足以下格式的初始条件
对于所有 t 和 x = a 或 x = b,解分量满足以下形式的边界条件
q 的元素全部为零或都不为零(至于原因是什么,我还没有搞懂…)。请注意,边界条件以通量 f 的方式而不是 ∂u/∂x 表示。同时,在这两个系数之间,只有 p 可以依赖于 u。
分割线----------------------------------------------------------------------------------
在调用 sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan) 中:
m 与 m 对应。
xmesh(1) 和 xmesh(end) 对应 a 和 b。
tspan(1) 和 tspan(end) 对应 t0 和 tf 。
pdefun 计算项 c、f 和 s (公式 1)。其格式为
[c,f,s] = pdefun(x,t,u,dudx)
输入参数为标量 x 和 t,以及向量 u 和 dudx,分别接近于解 u 及其相对于 x 的偏导数
icfun 计算初始条件。其格式为
u = icfun(x)
当与参数 x 一起调用时ÿ