过冷水诚挚邀请你加入Matlab仿真秀官方交流群进行Matlab学习、问题咨询、 Matlab相关资料下载,qq:927550334
在平常的学习中可以通过Matlab中的偏微分工具箱求解偏微分方程。Matlab pde工具箱是利用有限元法求解二维线性和非线性微分方程的工具。本期过冷水就和大家详细了解一下pde工具箱
Pde工具箱求解问题类型和方法
方程类型
偏微分方程工具箱求解的基本方程有椭圆型方程、抛物线方程、双曲线方程、特征值方程、椭圆型方程组、非线性椭圆型方程。
椭圆型方程:
抛物型方程:
双曲型方程:
特征值方程:
非线性椭圆型方程:
方程组:
边界条件
1 Dirichlet 条件 hu=r
式中h是一个标量,r是因变量u在边界上数值,对于二维体系有:
2 广义Neumann条件
对于二维体系:
3 混合边界条件,Dirichlet和Neumann线性组合:
二维体系:
初始条件
对于抛物型和双曲线型方程的定解问题,需要给出初始条件。
抛物型方程
双曲型方程
利用Matlab偏微分方程工具箱求解偏微分方程问题可以有两种方法,一是利用工具箱图像用户界面,二是利用工具箱提供的各种函数编程求解非标准形式问题:
GUI求解PDE问题一般步骤
在Matlab命令窗口键入pdetool命令,即可打开工具箱GUI界面
采用GUI求解偏微分方程,步骤如下。
(1)画求解区间;
(2)设置边界条件;
(3)设置方程;
(4)网格刨分;
(5)解方程,输出网格和解的数值;
(6)图形结果。
具体案例:
例题5计算高宽比为2∶1的矩形管内不可压缩层流的流速分布,并求该矩形管内的平均流速。已知该管内流速符合以下方程:
边界条件:u = 0(x= 0,x = l,y= 0,y = 1),壁面处速度为0
解:
以上方程为椭圆型偏微分方程,具有Dirichlet边界条件。
(1〉绘制求解区域
首先利用Draw菜单绘制矩形求解区域。Draw菜单的各选项意义如表所示。
菜单选项 | 作用 |
Draw Mode | 进入绘图模式 |
Rectangle | 以角点方式绘制矩形或正方形 |
Rectangle(Centered) | 以中心方式绘制矩形或正方形 |
Ellipse | 以角点方式绘制椭圆或圆形 |
Ellipse(Centered) | 以中心方式绘制椭圆或圆形 |
polygon | 绘制多边形 |
rotate | 图形旋转 |
Export Geometry | 输出求解区域模型 |
选择"Rectangel/square”选项,将鼠标移动至绘图区域,在绘图区域拖动,绘制一个矩形,Matlab会自动命名。 绘制后双击图形,弹出参数设置对话框。参数设置如图所示。
如图所示的设
(2)定义边界条件
在Boundary菜单中点击“Eoudary Mode”选项,进人边界条件模式,此时几何模型图中的边界会变成红色箭头所示,每两个箭头为一段独立的边界。用鼠标单击边界,则边界变黑,表明它已被选中。按住Shift键可以连续选择多段边界。选择结束以后,则边界上双击或点击Boundary菜单上的“Specify Boundary Conditions”选项,则弹出如图7.5所示的边界条件设置对话框。
(3)设置方程
选中PDE菜单中的PDE Mode 进入PDE设置模式 此时几何模型以灰色图形显示。选中PDE菜单中的PDE Specification弹出PDE设置对话框。
本例中,所求方程为椭圆型方程,其标准形式为:
在对话框中选择Elliptic,输入c=-1,a=0,f=-256,点击OK
(4)网格剖分
选中Mesh菜单中的“Mesh Mode”则进入网格剖分模式,并自动生成初始网格,这与点击Initial Mesh选项(工具栏中的△按钮)的效果相同。选中 Remesh选项,自动加密网格。
选择“Display Triangle Quality"选项,将显示网格质量。图中,三角形网格质量最好定为l,并以红.色表示,质量最差的定为0,以蓝色表示,两者之间的网格以红色和监色之间的过渡色表示。如果对网格质量不满意可以继续加密网格,还可以利用Mesh菜单中的JiggleMesh选项对网格进行微调。
执行“Export Mesh”选项,则可将生成的阿格数据输出至变量空间的三个变量中。
(5)求解方程
在Solve菜单中选择“Solve PDE”"选项,即可对此前定义的PDE问题进行求解,并获得图形解。
Solve菜单中的Parameters选项可用于设置求解方法和参数,Export solution可将解输出至变量空间。
(6)解的图形显示
PDE工具箱默认的图形解为色彩图,除此之外,PDE工具箱还可以多种图形方式显示解。选中 Plot菜单中的“Parameters”选项。
(7)解的后处理
最后需要求平均速率,可以点击“Solve-Export solution”选项,waniaiele nare Tar solBiorL.emeagl指定一个变量名,如u,点击“OK”.
则可以将求解结果输出到MATLAB的变量空间中。在命令窗口输入:
>> mean(u) ans = 13.7612
过冷水发表于 仿真秀 平台原创文章,未经授权禁止私自转载,如需转载请需要和作者沟通表明授权声明,未授权文章皆视为侵权行为,必将追责。如果您希望加入Matlab仿真秀官方交流群进行Matlab学习、问题咨询、 Matlab相关资料下载均可加群:927550334。
精品回顾
过冷水和你分享 matlab读取存储各种文件的方法 文末有独家金曲分享