下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 偏微分方程(PDEs)的MATLAB数值解法

偏微分方程(PDEs)的MATLAB数值解法.pdf

偏微分方程(PDEs)的MATLAB数值解法

Ronwayne
2011-09-07 0人阅读 举报 0 0 暂无简介

简介:本文档为《偏微分方程(PDEs)的MATLAB数值解法pdf》,可适用于工程科技领域

打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycn偏微分方程的MATLAB求解精讲©作者:dynamic时间:版权:AllRightsReservedBywwwmatlabskycn★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★MatlabSky联盟打造最优秀、专业和权威的Matlab技术交流平台!网址:http:wwwmatlabskycncomorgnet邮箱:matlabskygmailcomQQ群:(满了)(满了)论坛拥有多个专业版块内容涉及资料下载、视频教学、数学建模、数学运算、程序设计、GUI开发、simulink仿真、统计概率、拟合优化、扩展编程、算法研究、控制系统、信号通信、图像处理、经济金融、生物化学、航空航天、人工智能、汽车设计、机械自动化、毕业设计等几十个方面!请相信我们:拥有绝对优秀的技术人员热情的版主严谨负责的管理团队免费提供技术交流和在线解答★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycnMATLAB求解微分偏微分方程一直是一个头大的问题两个字“难过”由于MATLAB对LaTeX的支持有限所有方程必须化成MATLAB可接受的标准形式不支持像其他三个数学软件那样直接傻瓜式输入这个真把人给累坏了!不抱怨了还是言归正传回归我们今天的主体吧!MATLAB提供了两种方法解决PDE问题一是pdepe()函数它可以求解一般的PDEs据用较大的通用性但只支持命令行形式调用。二是PDE工具箱可以求解特殊PDE问题PDEtool有较大的局限性比如只能求解二阶PDE问题并且不能解决偏微分方程组但是它提供了GUI界面从繁杂的编程中解脱出来了同时还可以通过File>SaveAs直接生成M代码一、一般偏微分方程组(PDEs)的MATLAB求解、pdepe函数说明、实例讲解二、PDEtool求解特殊PDE问题、典型偏微分方程的描述()椭圆型()抛物线型()双曲线型()特征值型、偏微分方程边界条件的描述()Dirichlet条件()Neumann条件、求解实例打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycn一、一般偏微分方程组(PDEs)的MATLAB求解、pdepe函数说明MATLAB语言提供了pdepe()函数可以直接求解一般偏微分方程(组)它的调用格式为sol=pdepe(m,pdefun,pdeic,pdebc,x,t)【输入参数】pdefun:是PDE的问题描述函数它必须换成下面的标准形式(,,)(,,,)(,,,)()mmuuuucxtxxfxtusxtuxtxxx¶¶¶¶¶=¶¶¶¶¶式这样PDE就可以编写下面的入口函数c,f,s=pdefun(x,t,u,du)m,x,t就是对应于(式)中相关参数du是u的一阶导数由给定的输入变量即可表示出出c,f,s这三个函数pdebc:是PDE的边界条件描述函数必须先化为下面的形式(,,)(,,)*(,,,)upxtuqxtufxtux¶=¶于是边值条件可以编写下面函数描述为pa,qa,pb,qb=pdebc(x,t,u,du)其中a表示下边界b表示下边界pdeic:是PDE的初值条件必须化为下面的形式(,)uxtu=股我们使用下面的简单的函数来描述为u=pdeic(x)m,x,t:就是对应于(式)中相关参数【输出参数】sol:是一个三维数组sol(:,:,i)表示ui的解换句话说uk对应x(i)和t(j)时的解为sol(i,j,k)通过sol我们可以使用pdeval()直接计算某个点的函数值打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycn、实例讲解试求解下面的偏微分()()uuFuutxuuFuutx춶=ïï¶¶í¶¶ï=ﶶî其中()xxFxee=且满足初始条件(,),(,)uxux==及边界条件(,),(,),(,),(,)uutututtxx¶¶====¶¶【解】()对照给出的偏微分方程根据标注形式则原方程可以改写为()*()uuFuuxuuFuuttx¶éùêúéùéùéù¶¶¶=êúêúêúêú¶¶¶ëûëûêúëûêú¶ëû可见m=且(),,()uFuuxcfsuFuux¶éùêúéùéù¶===êúêúêú¶ëûêúëûêú¶ëû目标PDE函数functionc,f,s=pdefun(x,t,u,du)c=f=*du()*du()temp=u()u()s=*(exp(*temp)exp(*temp))()边界条件改写为**uffuéùéùéùéùéùéù==êúêúêúêúêúêúëûëûëûëûëûëû下边界上边界边界条件函数functionpa,qa,pb,qb=pdebc(xa,ua,xb,ub,t)a表示下边界b表示上边界pa=ua()打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycnqa=pb=ub()qb=()初值条件改写为uuéùéù=êúêúëûëû初值条件函数functionu=pdeic(x)u=()最后编写主调函数clcx=::t=::m=sol=pdepe(m,pdefun,pdeic,pdebc,x,t)figure('numbertitle','off','name','PDEDemobyMatlabsky')subplot()surf(x,t,sol(:,:,))title('TheSolutionofu')xlabel('X')ylabel('T')zlabel('U')subplot()surf(x,t,sol(:,:,))title('TheSolutionofu')xlabel('X')ylabel('T')zlabel('U')XTheSolutionofuTUXTheSolutionofuTU打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycn二、PDEtool求解特殊PDE问题MATLAB的偏微分工具箱(PDEtoolbox)可以比较规范的求解各种常见的二阶偏微分方程但是惋惜的是只能求解特殊二阶的PDE问题并且不支持偏微分方程组!PDEtoolbox支持命令行形式求解PDE问题但是要记住那些命令以及调用形式真的很累人还好MATLAB提供了GUI可视交互界面pdetool在pdetool中可以很方便的求解一个PDE问题并且可以帮我们直接生成M代码(File>SaveAs)。下面我们先了解下三个典型的二阶PDE然后介绍pdetool至于命令行我们就免了真的很累人如果的确需要的话那就让Matalb直接生成就好了。、典型偏微分方程的描述()椭圆型偏微分方程的一般形式为()*(,)**(,),,ndivcuaufxtcuaufxtxxxcafÑ=¶¶¶=¶¶¶L即()其中为给定的函数或者常数()抛物线型偏微分方程的一般形式*()*(,)***(,),,,nuddivcuaufxttudcuaufxttxxxdcaf¶Ñ=¶¶¶¶¶=¶¶¶¶L即()其中必须是常数()双曲线型偏微分方程的一般形式打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycn*()*(,)***(,),,,nuddivcuaufxttudcuaufxttxxxdcaf¶Ñ=¶¶¶¶¶=¶¶¶¶L即()其中必须是常数()特征值型偏微分方程的一般形式注意它是()的变形不能算独立的一类()*******ndivcuauducuauduxxxllÑ=¶¶¶=¶¶¶L即()从上面可以看出三类典型二阶偏微分方程的区别在于u对t的导数阶次。椭圆型PDEs中c、a、d和f可以是给定的函数或者常数但是其它两类必须都是常数。MATLAB是采用有限元的方法求解各种PDE。MATLAB为我们提供一个pdetool的交互界面可以求解二元偏微分u(x,x)(注意只能求解二元)。方程的参数由a、c、d和f确定求解域由图形确定求解域确定好后需要对求解域进行栅格化(这个是自动)。打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycn、偏微分方程边界条件的描述一般在PDE中边界条件包括Dirichlet(狄利克莱)条件和Neumann(纽曼)条件:()Dirichlet条件一般描述为(,,,)*|(,,,)uuhxtuurxtuxx¶W¶¶=¶W¶¶其中表示求解域的边界假设在边界上满足该方程则只需给出r和h即可它们可以是常数也可以是给定的函数()Neumann条件一般描述为()*|ucuqugunn¶W¶¶Ñ=¶¶其中表示的法向偏导数通过下面的操作调出边界条件设置注意在这之前一定要使用【区域边界】按钮制定边界打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycn、求解实例试求解双曲线型偏微分方程uuuutxy¶¶¶=¶¶¶求解域s为:()xyxy££=UIss:sss)(ss边界条件为构成求解域的边界值都为【解】由给定的PDE可以的d=,c=,a=,f=再说一次对于抛物线和双曲线型偏微分方程个系数必须是常数否则MATLAB无能为力打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycnstep:点击工具栏的【PDE】按钮如下输入PDE的参数注意选择Hyperbolicstep:绘制求解域对坐标轴的操作可以在【Options】主菜单中操作包括设置网格、坐标系范围等()【Options】>AxisLimits设置如下其它设置如下()点击工具栏上的第三个按钮【绘制椭圆】任意绘制一个椭圆双击椭圆设置如下打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycn重复上面的操作参数如下于是得到打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycn()在setformula中如下输入“”表示求并集“”表示求差集注意没有直接求交接的操作符step:边界条件和初值条件初值条件可以通过【Solve】>【Parameters…】设置边值条件设置如下()点击工具栏的第个按钮【区域边界】显示如下()【Boundary】>【RemoveAllSubdomainBorders】移除所有子域的边界将得到所有子域合并成一个求解域()【Boundary】>【SecifyBoundaryConditons…】设置边界如下注意我们这里只有Dirichlet条件打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycnstep:生成使用有限元方法求解方程所需的栅格点击工具栏的第个按钮对求解域生成栅格多次点击可以在原来基础上继续细化栅格直到自己觉得满意为止当然可以通过【Mesh】主菜单进行精确控制step:求解方程点解工具栏的第个按钮“=”【求解方程】step:求解结果绘图点击第个按钮【绘制图形】里面的选项很丰富可以绘制等高线等好多甚至播放动画具体大家可以自己慢慢摸索打造最优秀、专业和权威的Matlab技术交流平台!http:wwwmatlabskycn动画播放设置:()【Solve】>【Parameters】设置合适的时间向量Time()【Plot】>【Parameters】选中【Animation】点击后面的【Options】设置播放速度和次数比如fps表示每秒帧()【Plot】>【ExportMovie…】输入动画保存的变量名比如M()在CommandWindows中直接输入movie(M)即可播放()使用movieve(M,’demoavi’)命令可以将动画保存为avi文件

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/14

偏微分方程(PDEs)的MATLAB数值解法

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利