没有合适的资源?快使用搜索试试~ 我知道了~
首页偏微分方程(PDEs)的MATLAB数值解法.pdf
偏微分方程(PDEs)的MATLAB数值解法.pdf
需积分: 26 271 浏览量
更新于2023-05-28
评论 1
收藏 506KB PDF 举报
偏微分方程(PDEs)的MATLAB数值解法偏微分方程(PDEs)的MATLAB数值解法
资源详情
资源评论
资源推荐

MATLAB 求解微分/偏微分方程,一直是一个头大的问题,两个字,“难过”,由于 MATLAB 对 LaTeX 的支持有
限,所有方程必须化成 MATLAB 可接受的标准形式,不支持像其他三个数学软件那样直接傻瓜式输入,这个真
把人给累坏了!
不抱怨了,还是言归正传,回归我们今天的主体吧!
MATLAB 提供了两种方法解决 PDE 问题,一是 pdepe()函数,它可以求解一般的 PDEs,据用较大的通用性,但
只支持命令行形式调用。二是 PDE 工具箱,可以求解特殊 PDE 问题,PDEtool 有较大的局限性,比如只能求解
二阶 PDE 问题,并且不能解决偏微分方程组,但是它提供了 GUI 界面,从繁杂的编程中解脱出来了,同时还可
以通过 File->Save As 直接生成 M 代码
一、一般偏微分方程组(PDEs)的 MATLAB 求解.............................................................................................................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
偏微分方程的
MATLAB
求解精讲
©

一、一般偏微分方程组(PDEs)的 MATLAB 求解
1、pdepe 函数说明
MATLAB 语言提供了 pdepe()函数,可以直接求解一般偏微分方程(组),它的调用格式为
sol=pdepe(m,@pdefun,@pdeic,@pdebc,x,t)
【输入参数】
@pdefun:是 PDE 的问题描述函数,它必须换成下面的标准形式
(,,)[(,,,)](,,,)()
mm
uuuu
cxtxxfxtusxtu
x
txxx
−
∂∂∂∂∂
=+
∂∂∂∂∂
式1
这样,PDE 就可以编写下面的入口函数
[c,f,s]=pdefun(x,t,u,du)
m,x,t 就是对应于(式 1)中相关参数,du 是 u 的一阶导数,由给定的输入变量即可表示出出 c,f,s 这三个函数
@pdebc:是 PDE 的边界条件描述函数,必须先化为下面的形式
(,,)(,,).*(,,,)0
u
pxtuqxtufxtu
x
∂
+=
∂
于是边值条件可以编写下面函数描述为
[pa,qa,pb,qb]=pdebc(x,t,u,du)
其中 a 表示下边界,b 表示下边界
@pdeic:是 PDE 的初值条件,必须化为下面的形式
00
(,)uxtu=
我们使用下面的简单的函数来描述为
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、实例讲解
试求解下面的偏微分
2
11
12
2
2
22
12
2
0.024()
0.17()
uu
Fuu
tx
uu
Fuu
tx
∂∂
=−−
∂∂
∂∂
=−−
∂∂
其中,
5.7311.46
()
xx
Fxee
−
=− ,且满足初始条件
12
(,0)1,(,0)0uxux==及边界条件
12
21
(0,)0,(0,)0,(1,)1,(1,)0
uu
tututt
xx
∂∂
====
∂∂
【解】
(1)对照给出的偏微分方程,根据标注形式,则原方程可以改写为
1
112
2212
0.024
()
1
.*
1()
0.17
u
uFuu
x
uuFuu
tt
x
∂
−−
∂∂
∂
=+
∂−
∂∂
∂
可见m=0,且
1
12
212
0.024
()
1
,,
1()
0.17
u
Fuu
x
cfs
uFuu
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)边界条件改写为
1
2
01
1010
.*.*
00000
u
ff
u
−
+=+=
下边界 上边界
%% 边界条件函数
function [pa,qa,pb,qb]=pdebc(xa,ua,xb,ub,t)
%a 表示下边界,b 表示上边界
pa=[0;ua(2)];
剩余12页未读,继续阅读








安全验证
文档复制为VIP权益,开通VIP直接复制

评论0