matlab的PDE工具箱的简单使用
问题选择
在一个二维的有界区域上,matlab的PDE工具箱主要使用有限元方法解决下面四类问题:
- 椭圆形方程(elliptic)
- 抛物型方程(parabolic)
- 双曲型方程(hyperbolic)
- 特征值问题(eigen)
这些系数和右端项是可以包含时间(如果有的话)、函数,函数的梯度。
边界条件选择
- 狄利克雷边界条件(Dirichlet)
- 诺依曼边界条件(Neumann)
这里是外法向量。 - 方程组求解的情况下,还有混合边界条件。
这上边的参数可以使空间变量、时间变量以及函数的函数。
菜单按钮和简单使用
命令行输入pdetool,打开GUI编辑界面如下:
注意到工具栏上,就是我们要用到的,从左到右依次使用每个工具,就完成了整个pde的求解过程。每个工具的含义如下:
简单地说,就是前面几个拿来画区域的,后面一个拿来设置边界条件,带三角形的是拿来剖分以及加密的,等号是求解,最后那个带图的那个是画图。
工具栏上的菜单栏,我们常用到的有Option下的坐标轴显示网格,坐标轴限制以及坐标轴显示是否等宽。再有就是Draw下的对区域的旋转选项,以及mesh下的显示网格编号,到处网格节点、边、面等。最重要的是Solve下对于抛物问题和双曲问题的参数设定(和时间有关的步长,终止时间,初值等),解的导出也在solve下。如果知道真解的话,可以使用plot下拉下的参数选项,选择user entry来绘制误差曲线。
当然,还有一些简单的tip,比如,在设置边界条件时,若多个边界的边界条件时一样的,那么可以shift+单击选中多个边界,一次性设置边界条件。在plot当中还可以生成动画等。
一个简单的小例子
对于这样一个问题,我们如何用pde工具箱求解呢?假定,求解的时间,那么,操作如下:
-
命令行输入pdetool打开工具箱
-
使用矩形工具(第一个)拖动绘制矩形。双击画出的矩形,填写Left=0,Bottom=0,Width=1,Height =1,如下: 点击OK。
-
使用Options下Axes Limits可以调整横纵坐标的显示。
-
点击,边界以红色显示(红蓝绿依次表示狄利克雷、诺依曼和混合边界条件)。使用shift和鼠标点击,选中四条边界,设置为诺依曼边界条件,根据问题,填写,点选OK。
-
点击PDE按钮,选择抛物方程,设置参数如下:
-
点击三角形按钮,以及后面的加密按钮,对区域进行三角形剖分。
-
选择Solve下拉菜单中的参数,根据问题设置参数如下:
-
点击等号,即进行求解了。
这里一般用颜色的深浅来表示值的大小。 -
点击带图案的那个按钮,选中Color选项,以及Height(3-D plot)选项和Animation选项,其他想勾的也可以勾,比如show mesh。点击plot,就进行绘图以及动画的制作。
PDE工具箱还有针对性地为一些领域的具体问题提供了解决方案,如:结构力学、静电学、电磁学、热传导等。当然,除了图形界面,也可以编写m文件求解PDE。但是,它也有很大的局限性,就是只能求解特定的PDE,且网格密度大的时候,运算量巨大。