偏微分方程的MATLAB数值解法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

偏微分方程的MATLAB求解精讲©

作者:dynamic

时间:2008.12.10

版权:All Rights Reserved By

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

Matlab Sky联盟----打造最优秀、专业和权威的Matlab技术交流平台!

网址: /com/org/net

邮箱:matlabsky@

QQ群:23830382 40510634 16233891(满了) 44851559(满了)

论坛拥有40多个专业版块,内容涉及资料下载、视频教学、数学建模、数学运算、程序设计、GUI开发、simulink 仿真、统计概率、拟合优化、扩展编程、算法研究、控制系统、信号通信、图像处理、经济金融、生物化学、航空航天、人工智能、汽车设计、机械自动化、毕业设计等几十个方面!

请相信我们:1.拥有绝对优秀的技术人员,热情的版主,严谨负责的管理团队

2.免费提供技术交流和在线解答

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

MA TLAB求解微分/偏微分方程,一直是一个头大的问题,两个字,“难过”,由于MA TLAB对LaTeX的支持有限,所有方程必须化成MA TLAB可接受的标准形式,不支持像其他三个数学软件那样直接傻瓜式输入,这个真把人给累坏了!

不抱怨了,还是言归正传,回归我们今天的主体吧!

MA TLAB提供了两种方法解决PDE问题,一是pdepe()函数,它可以求解一般的PDEs,据用较大的通用性,但只支持命令行形式调用。二是PDE工具箱,可以求解特殊PDE问题,PDEtool有较大的局限性,比如只能求解二阶PDE问题,并且不能解决偏微分方程组,但是它提供了GUI界面,从繁杂的编程中解脱出来了,同时还可以通过File->Save As直接生成M代码

一、一般偏微分方程组(PDEs)的MA TLAB求解 (3)

1、pdepe函数说明 (3)

2、实例讲解 (4)

二、PDEtool求解特殊PDE问题 (6)

1、典型偏微分方程的描述 (6)

(1)椭圆型 (6)

(2)抛物线型 (6)

(3)双曲线型 (6)

(4)特征值型 (7)

2、偏微分方程边界条件的描述 (8)

(1)Dirichlet条件 (8)

(2)Neumann条件 (8)

3、求解实例 (9)

一、一般偏微分方程组(PDEs)的MATLAB 求解

1、pdepe 函数说明

MA TLAB 语言提供了pdepe()函数,可以直接求解一般偏微分方程(组),它的调用格式为

sol=pdepe(m,@pdefun,@pdeic,@pdebc,x,t)

【输入参数】

@pdefun :是PDE 的问题描述函数,它必须换成下面的标准形式

(,,

)[(,,,)](,,,)()m m u u u u c x t x x f x t u s x t u x t x x x

−∂∂∂∂∂=+∂∂∂∂∂式1 这样,PDE 就可以编写下面的入口函数 [c,f,s]=pdefun(x,t,u,du)

m,x,t 就是对应于(式1)中相关参数,du 是u 的一阶导数,由给定的输入变量即可表示出出c,f,s 这三个函数

@pdebc :是PDE 的边界条件描述函数,必须先化为下面的形式

(,,)(,,).*(,,,

)0u

p x t u q x t u f x t u x

∂+=∂ 于是边值条件可以编写下面函数描述为 [pa,qa,pb,qb]=pdebc(x,t,u,du)

其中a 表示下边界,b 表示下边界

@pdeic :是PDE 的初值条件,必须化为下面的形式

00(,)u x t u =

股我们使用下面的简单的函数来描述为 u0=pdeic(x)

m,x,t :就是对应于(式1)中相关参数

【输出参数】

sol :是一个三维数组,sol(:,:,i)表示u i 的解,换句话说u k 对应x(i)和t(j)时的解为sol(i,j,k)

通过sol ,我们可以使用pdeval()直接计算某个点的函数值

2、实例讲解

试求解下面的偏微分

211

1222

2212

20.024()0.17()

u u F u u t x

u u F u u t

x ∂∂=−− ∂∂ ∂∂ =−− ∂∂ 其中, 5.7311.46()x x F x e e −=−,且满足初始条件12(,0)1,(,0)0u x u x ==及边界条件

1221(0,)0,(0,)0,(1,)1,(1,)0u u

t u t u t t x x

∂∂====∂∂

【解】

(1)对照给出的偏微分方程,根据标注形式,则原方程可以改写为

111222120.024

()1.*1()0.17u u F u u x u u F u u t t x ∂

−−

∂∂∂=+ ∂−∂∂

可见m=0,且1122120.024()1,,1()0.17u F u u x c f s u F u u x ∂

−− ∂===

∂−

%% 目标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)边界条件改写为

12011010.*.*00000u f f u −

+=+=

下边界上边界

%% 边界条件函数

function [pa,qa,pb,qb]=pdebc(xa,ua,xb,ub,t) %a 表示下边界,b 表示上边界 pa=[0;ua(2)];

相关文档
最新文档