4.8.2 偏微分方程
在自然科学的很多领域内,都会遇到微分方程初值问题,特别是偏微分方程,它的定解问题是描述自然界及科学现象的最重要的工具。可以说,几乎自然界和各种现象都可以通过微分方程(特别是偏微分方程)来描述。
MATLAB提供了一个专门用于求解偏微分方程的工具箱PDE Toolbox。本小节仅介绍一些最简单、经典的偏微分方程,如椭圆型、双曲型、抛物型等偏微分方程,并给出求解方法。用户可以从中了解其解题的基本方法,从而解决类似的问题。
1.椭圆型问题
assempde函数是PDE工具箱中的一个基本函数,它使用有限元法组合PDE问题。该函数用来有选择地生成PDE问题的解。可以用assempde函数求解下面的标量椭圆型问题:
或系统椭圆型问题:
对于标量的情况,用解的列向量代表解矢量u,列矢量中的值对应于p的对应节点处的解。对于具有np个节点的N维系统,u1的前np行描述u的第1个元素,接下来的np行描述u的第2个元素,依次类推。这样,u的元素就作为N块节点行放到u中。assempde函数的调用语法如下。
(1)u=assempde(b,p,e,t,c,a,f): 通过在线性方程组中剔除Dirichlet边界条件来组合和求解PDE问题。
(2)[K,F]=assempde(b,p,e,t,c,a,f): 通过刚性位移近似Dirichlet边界条件来组合和求解PDE问题。K和F分别为刚性矩阵和右边项。PDE问题的有限元解为u1=K\F。
(3)[K,F,B,ud]=assempde(b,p,e,t,c,a,f):通过从线性方程组剔除Dirichlet边界条件来组合PDE问题。u1=K\F,则返回非Dirichlet点上的解。完整的PDE问题可以通过MATLAB中的表达式u=B*u1+ud求解。
(4)[K,M,F,Q,G,H,R]=assempde(b,p,e,t,c,a,f):给出PDE问题的分离表示。
(5)u=assempde(K,M,F,Q,G,H,R):将PDE问题的分离表示转换为单一矩阵或矢量的形式,然后