matlab的PDE工具箱的简单使用

时间:2024-05-18 13:33:32

matlab的PDE工具箱的简单使用

问题选择

在一个二维的有界区域Ω\Omega上,matlab的PDE工具箱主要使用有限元方法解决下面四类问题:

  • 椭圆形方程(elliptic)
    (cu)+au=f-\nabla\cdot(c\nabla u)+au=f
  • 抛物型方程(parabolic)
    dut(cu)+au=fd\frac{\partial u}{\partial t}-\nabla (c\cdot \nabla u)+au = f
  • 双曲型方程(hyperbolic)
    d2ut2(cu)+au=fd\frac{\partial^2 u}{\partial t^2}-\nabla (c\cdot \nabla u)+au = f
  • 特征值问题(eigen)
    (cu)+au=λdu-\nabla (c\cdot \nabla u)+au = \lambda du

这些系数和右端项是可以包含时间tt(如果有的话)、函数uu,函数的梯度u\nabla u

边界条件选择

  • 狄利克雷边界条件(Dirichlet)
    hu=rhu=r
  • 诺依曼边界条件(Neumann)
    n(cu)+qu=g\vec{n} \cdot (c\nabla u)+qu =g
    这里n\vec{n}是外法向量。
  • 方程组求解的情况下,还有混合边界条件。

这上边的参数可以使空间变量、时间变量以及函数uu的函数。

菜单按钮和简单使用

命令行输入pdetool,打开GUI编辑界面如下:

matlab的PDE工具箱的简单使用

matlab的PDE工具箱的简单使用

注意到工具栏上,就是我们要用到的,从左到右依次使用每个工具,就完成了整个pde的求解过程。每个工具的含义如下:

matlab的PDE工具箱的简单使用

简单地说,就是前面几个拿来画区域的,后面一个Ω\partial \Omega拿来设置边界条件,带三角形的是拿来剖分以及加密的,等号是求解,最后那个带图的那个是画图。

工具栏上的菜单栏,我们常用到的有Option下的坐标轴显示网格,坐标轴限制以及坐标轴显示是否等宽。再有就是Draw下的对区域的旋转选项,以及mesh下的显示网格编号,到处网格节点、边、面等。最重要的是Solve下对于抛物问题和双曲问题的参数设定(和时间有关的步长,终止时间,初值等),解的导出也在solve下。如果知道真解的话,可以使用plot下拉下的参数选项,选择user entry来绘制误差曲线。

当然,还有一些简单的tip,比如,在设置边界条件时,若多个边界的边界条件时一样的,那么可以shift+单击选中多个边界,一次性设置边界条件。在plot当中还可以生成动画等。

一个简单的小例子

utΔu=0 in Ω=[0,1]2nu=0 on Ωu(0,x,y)=R0(x0.5)2+(y0.5)2u_t - \Delta u = 0 \ in \ \Omega=[0,1]^2\\ n \cdot \nabla u = 0 \ on \ \partial \Omega\\ u(0,x,y) = R_0 - \sqrt{(x-0.5)^2+(y-0.5)^2}

对于这样一个问题,我们如何用pde工具箱求解呢?假定R0=1/4R_0 = 1/4,求解的时间t=3/256t = 3/256,那么,操作如下:

  • 命令行输入pdetool打开工具箱

  • 使用矩形工具(第一个)拖动绘制矩形。双击画出的矩形,填写Left=0,Bottom=0,Width=1,Height =1,如下: matlab的PDE工具箱的简单使用点击OK。

  • 使用Options下Axes Limits可以调整横纵坐标的显示。

  • 点击Ω\partial \Omega,边界以红色显示(红蓝绿依次表示狄利克雷、诺依曼和混合边界条件)。使用shift和鼠标点击,选中四条边界,设置为诺依曼边界条件,根据问题,填写q=0,g=0q=0,g=0,点选OK。

  • 点击PDE按钮,选择抛物方程,设置参数如下:matlab的PDE工具箱的简单使用

  • 点击三角形按钮,以及后面的加密按钮,对区域进行三角形剖分。

  • 选择Solve下拉菜单中的参数,根据问题设置参数如下:matlab的PDE工具箱的简单使用

  • 点击等号,即进行求解了。matlab的PDE工具箱的简单使用
    这里一般用颜色的深浅来表示值的大小。

  • 点击带图案的那个按钮,选中Color选项,以及Height(3-D plot)选项和Animation选项,其他想勾的也可以勾,比如show mesh。点击plot,就进行绘图以及动画的制作。matlab的PDE工具箱的简单使用

PDE工具箱还有针对性地为一些领域的具体问题提供了解决方案,如:结构力学、静电学、电磁学、热传导等。当然,除了图形界面,也可以编写m文件求解PDE。但是,它也有很大的局限性,就是只能求解特定的PDE,且网格密度大的时候,运算量巨大。