MATLAB偏微分方程求解_第1页
MATLAB偏微分方程求解_第2页
MATLAB偏微分方程求解_第3页
MATLAB偏微分方程求解_第4页
MATLAB偏微分方程求解_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题目 用MATLAB求解偏微分方程 主讲人 班级 时间 基础知识预习 微分方程的 求解包含 常微分方程的 求解 上节课已经讲过 这里不再赘述 偏微分方程的 求解 本次教学内容 偏微分方程概念 偏微分方程 PartialDifferentialEquation 简称PDE 指含有未知函数及其偏导数的方程 描述自变量 未知函数及其偏导数之间的关系 偏微分方程分为 线性偏微分方程式与 非线性偏微分方程式 常常有几个解而且涉及额外的边界条件 常微分方程 在微分方程中 若自变量的个数只有一个的微分方程 偏微分方程 自变量的个数有两个或两个以上的微分方程 求解偏微分方程的方法 求解偏微分方程的数值方法 1 有限元法 FiniteElementMethod FEM hp FEM2 有限体积法 FiniteVolumeMethod FVM 3 有限差分法 FiniteDifferenceMethod FDM 其它 广义有限元法 GeneralizedFiniteElementMethod FFEM 扩展有限元法 eXtendedFiniteElementMethod XFEM 无网格有限元法 MeshfreeFiniteElementMethod 离散迦辽金有限元法 DiscontinuousGalerkinFiniteElementMethod DGFEM 等 MATLAB解偏微分方程 MATLAB提供了两种方法解决PDE问题 pdepe 函数 它可以求解一般的PDEs 具有较大的通用性 但只支持命令行形式调用 PDE工具箱 可以求解特殊PDE问题 PDEtool有较大的局限性 比如只能求解二阶PDE问题 并且不能解决偏微分方程组 但是它提供了GUI界面 从繁杂的编程中解脱出来了 同时还可以通过File SaveAs直接生成M代码使用pdeval 直接计算某个点的函数值 一般偏微分方程组 PDEs 的MATLAB求解 直接求解一般偏微分方程 组 它的调用格式为sol pdepe m pdefun pdeic pdebc x t 问题描述函数 初值条件 边界条件 输出参数 自变量 参数 输入参数 1 pdefun 是PDE的问题描述函数 它必须换成下面的标准形式PDE就可以编写下面的入口函数 c f s pdefun x t u du m x t就是对应于 式1 中相关参数和自变量 du是u的一阶导数 由给定的输入变量即可表示出出c f s这三个函数 输入参数 2 pdeic 是PDE的初值条件 必须化为下面的形式我们使用下面的简单的函数来描述为u0 pdeic x 输入参数 3 pdebc 是PDE的边界条件描述函数 必须先化为下面的形式于是边值条件可以编写下面函数描述为 pa qa pb qb pdebc x t u du 其中a表示下边界 b表示下边界 输入参数 4 m 就是对应于 式1 中相关参数x t 就是对应于 式1 中自变量 输出参数 sol 是一个三维数组 sol i 表示ui的解 换句话说uk对应x i 和t j 时的解为sol i j k 实例讲解 题目 例 初值条件 边界条件 实例讲解 解法 解 第一步根据 1 对照给出的偏微分方程 则原方程可以改写为 输入参数 1 目标PDE函数 目标PDE函数function c f s pdefun x t u du c 1 1 f 0 024 du 1 0 17 du 2 temp u 1 u 2 s 1 1 exp 5 73 temp exp 11 46 temp 输入参数 2 初值条件 初值条件改写为 初值条件函数functionu0 pdeic x u0 1 0 输入参数 3 边界条件 边界条件改写为 边界条件函数function pa qa pb qb pdebc xa ua xb ub t a表示左边界 b表示右边界pa 0 ua 2 qa 1 0 pb ub 1 1 0 qb 0 1 4 主调函数 clcx 0 0 05 1 t 0 0 05 2 m 0 sol pdepe m pdefun pdeic pdebc x t figure numbertitle off name PDEDemo byMatlabsky 创建个窗口 窗口名字是name后边的名字 NumberTitle off 是关掉默认显示名字 subplot 211 surf x t sol 1 sol i 表示ui的解title TheSolutionofu 1 xlabel X ylabel T zlabel U subplot 212 surf x t sol 2 sol i 表示ui的解title TheSolutionofu 2 xlabel X ylabel T zlabel U PDEtool求解特殊PDE问题 MATLAB的偏微分工具箱 PDEtoolbox 可以比较规范的求解各种常见的二阶偏微分方程 特殊二阶的PDE 典型偏微分方程的描述 3 双曲线型偏微分方程的一般形式 4 特征值型偏微分方程的一般形式 注意它是 1 的变形 不能算独立的一类 MATLAB采用有限元的方法求解各种PDE MATLAB为我们提供一个pdetool 在commandwindow中键输pdetool打开 的交互界面 可以求解二元偏微分u x1 x2 注意只能求解二元 方程的参数由a c d和f确定 求解域由图形确定 求解域确定好后 需要对求解域进行栅格化 这个是自动 偏微分方程边界条件的描述 Dirichlet 狄利克莱 条件Neumann 纽曼 条件 求解实例 解 由给定的PDE 可以得出d 1 c 1 a 2 f 10 step1 点击工具栏的 PDE 按钮 如下输入PDE的参数 注意选择Hyperbolic step2 绘制求解域对坐标轴的操作可以在 Options 主菜单中操作 包括设置网格 坐标系范围等 1 Options AxisLimits设置如下 2 点击工具栏上的第三个按钮 绘制椭圆 任意绘制一个椭圆 双击椭圆 设置如下 重复上面的操作 参数如下 得到 3 在setformula中如下输入 表示求并集 表示求差集 注意没有直接求交接的操作符 step3 边界条件和初值条件 初值条件可以通过 Solve Parameters 设置边值条件设置如下 1 点击工具栏的第6个按钮 区域边界 显示如下 2 Boundary RemoveAllSubdomainBorders 移除所有子域的边界 将得到所有子域合并成一个求解域 3 Boundary SecifyBoundaryConditons 设置边界如下 注意我们这里只有Dirichlet条件 step4 生成使用有限元方法求解方程所需的栅格 点击工具栏的第8 9个按钮 对求解域生成栅格 多次点击可以在原来基础上继续细化栅格 直到自己觉得满意为止 当然可以通过 Mesh 主菜单进行精确控制 step5 求解方程点解工具栏的第10个按钮 求解方程 step6 求解结果绘图点击第11个按钮 绘制图形 里面的选项很丰富 可以绘制等高线等好多 甚至播放动画 具体大家可以自己慢慢摸索 动画播放设置 1 Solve Parameters 设置合适的时间向量Time 2 Plot Parameters 选中 Anima

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论