当前位置:文档之家› (完整版)偏微分方程的MATLAB解法

(完整版)偏微分方程的MATLAB解法

引言偏微分方程定解问题有着广泛的应用背景。

人们用偏微分方程来描述、解释或者预见各种自然现象,并用于科学和工程技术的各个领域fll。

然而,对于广大应用工作者来说,从偏微分方程模型出发,使用有限元法或有限差分法求解都要耗费很大的工作量,才能得到数值解。

现在,MATLAB PDEToolbox已实现对于空间二维问题高速、准确的求解过程。

偏微分方程如果一个微分方程中出现的未知函数只含一个自变量,这个方程叫做常微分方程,也简称微分方程;如果一个微分方程中出现多元函数的偏导数,或者说如果未知函数和几个变量有关,而且方程中出现未知函数对几个变量的导数,那么这种微分方程就是偏微分方程。

常用的方法有变分法和有限差分法。

变分法是把定解问题转化成变分问题,再求变分问题的近似解;有限差分法是把定解问题转化成代数方程,然后用计算机进行计算;还有一种更有意义的模拟法,它用另一个物理的问题实验研究来代替所研究某个物理问题的定解。

虽然物理现象本质不同,但是抽象地表示在数学上是同一个定解问题,如研究某个不规则形状的物体里的稳定温度分布问题,由于求解比较困难,可作相应的静电场或稳恒电流场实验研究,测定场中各处的电势,从而也解决了所研究的稳定温度场中的温度分布问题。

随着物理科学所研究的现象在广度和深度两方面的扩展,偏微分方程的应用范围更广泛。

从数学自身的角度看,偏微分方程的求解促使数学在函数论、变分法、级数展开、常微分方程、代数、微分几何等各方面进行发展。

从这个角度说,偏微分方程变成了数学的中心。

一、MATLAB方法简介及应用1.1 MATLAB简介MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

1.2 Matlab主要功能数值分析数值和符号计算工程与科学绘图控制系统的设计与仿真数字图像处理数字信号处理通讯系统设计与仿真财务与金融工程1.3 优势特点1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;2) 具有完备的图形处理功能,实现计算结果和编程的可视化;3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

1.4 MATLAB 产品族可以用来进行以下各种工作●数值分析 ●数值和符号计算 ●工程与科学绘图 ●控制系统的设计与仿真 ●数字图像处理技术 ●数字信号处理技术 ●通讯系统设计与仿真 ●财务与金融工程●管理与调度优化计算(运筹学)MATLAB 的应用范围非常广,包括信号和图像处理、通讯 MATLAB 在通讯系统设计与仿真的应用、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。

二、Laplacian 算子简介Laplacian 算子:2222yx ∂∂+∂∂=∆Poisson 方程(ellipptic):fu =∆Laplacian 算子的特征值问题:fu u =+∆λHeat equation(parabolic):ut u∆=∂∂Wave equation(hyperbolic):u t u ∆=∂∂22五点离散:hhh y x u y x u h y x u y h x u y x u y h x u y x u h 22),(),(2),(),(),(2),(),(-+-++-+-+=∆hP u S u E u W u N u p u h2)(4)()()()()(-+++=∆)(=∆P u hPoisson 方程离散:)()(P f P u h=∆特征值问题:)()(P P u u k k h λ=-∆热方程:),(),,(),,(2y x u t y x u t y x u h ∆=--+δδδ),(),,(),,(y x u t y x u t y x u h ∆+=+δδ波动方程:),(),,(),,(2),,(2y x u t y x u t y x u t y x u h ∆=-+-+δδδ),(),,(),,(y x u t y x u t y x u h ∆+=+δδ波动方程:),(),,(),,(2),,(2y x u t y x u t y x u t y x u h ∆=-+-+δδδ),(),,(),,(2),,(2y x u t y x u t y x u t y x u h ∆+--=+δδδδ椭圆方程:b Au =),(2y x f h b = 特征值方程:u Au h λ=-21热方程: )()()1(n n n Auuuσ+=+2h δσ=波动方程:)()1()()1(2n n n n Au u u u σ+-=-+2⎥⎦⎤⎢⎣⎡=h δδ)()1(n n Mu u =+热方程: )()1(n n Mu u =+ A I M σ+=波动方程:212≤⎥⎦⎤⎢⎣⎡=h δσ三、Matlab 解偏微分方程解偏微分方程不是一件轻松的事情,但是偏微分方程在自然科学和工程领域应用很广,因此,研究解偏微分方程的方法、开发解偏微分方程的工具是数学和计算机领域中的一项重要工作。

MATLAB提供了专门用于解二维偏微分方程的工具箱,使用这个工具箱,一方面解偏微分方程,另一方面,可以让我们学习如何把求解数学问题的过程与方法工程化。

应当承认,我们国家在数学软件的开发方面还比较落后,MATLAB是当今世界上最好的数学软件之一,通过对这个软件的认识,有助于研发我们自己的数学软件。

MATLAB的偏微分方程工具箱名字叫pdetool,它采用有限元法解偏微分方程。

用这个工具箱可以解如下方程。

椭圆方程抛物线方程双曲线方程特征值方程所有的方程都在二维平面Ω域上。

方程中,▽是Laplace 算子,u是待解的未知函数,c, a, f是已知的实值标量函数,d 是已知的复值函数,λ是未知的特征值。

MATLAB提供了两种方法Ⅲ解决PDE问题,一是pdepe函数,它可以求解一般的PDEs,具有较大的通用性,但只支持命令行形式调用。

二是PDE工具箱,可以求解特殊PDE问题,但有较大的局限性,比如只能求解二阶PDE问题,并且不能解决偏微分方程组。

它提供了GUI界面,可以从繁杂的编程中解脱出来,同时还可以通过FileSave As直接生成M代码。

3.1函数解法pdepe函数介绍它的调用格式为sol=pdepe(m,@pdefun,@pdeic,@pdebc,x,t) 输入参数:@pdefun:是PDE的问题描述函数@pdebc:是PDE的边界条件描述函数@pdeic:是PDE的初值条件输出参数:sol:是一个三维数组,sol(:,:,i)表示ui的解,换句话说uk 对应x(i)和t(j)时的解为sol(i,j ,k),通过sol ,我们可以使用pdeval()直接计算某个点的函数值。

实例讲解例:试求解下面的偏微分其中, ,且满足初始条件及边界条件 解:(1)对照给出的偏微分方程,根据标注形式,则原方程可以改写为可见m=0,且%目标PDE 函数function[c ,f ,s]--pdefun(x ,t ,u ,du) c=[1;1];f_[0.024*du(1);0.17*du(2)];)1()(170.0)(024.0212222212121⎪⎪⎩⎪⎪⎨⎧--∂∂=∂∂--∂∂=∂∂u u F x u t u u u F x u t ux x e e x F 46.1173.5)(--=0)0,(,1)0,(21==x u x u 1),1(,0),0(,0),0(121===∂∂t u t u t t u 0),1(,2=∂∂t tu )2()()(170.0024.0*.1121212121⎥⎦⎤⎢⎣⎡---+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡∂∂∂∂∂∂=⎥⎦⎤⎢⎣⎡∂∂⎥⎦⎤⎢⎣⎡u u F u u F x u x u t u u t ⎥⎦⎤⎢⎣⎡---=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡∂∂∂∂=⎥⎦⎤⎢⎣⎡=)()(,170.0024.0,11212121u u F u u F S x u x u f ctemp=u(1)一u(2);s=[一1;1].*(exp(5.73*temp)一exp(-11.46*temp));(2)边界条件改写为下边界上边界%边界条件函数function[pa .qa ,pb ,qb]--pdebe(xa ,ua ,xb ,ub ,t) %a 表示下边界,b 表示上边界 pa=[0;ua(2)]; qa=[1;0 ]; pb=[ub(1)一1;O]; qb=[O ;1]; (3)初值条件改写为%初值条件函数 function u0=pdeic(x) u0=[1;0];(4)最后编写主调函数 tic m=0;x=[0 0.005 0.01 0.05 0.1 0.2 0.5 0.7 0.9 0.95⎥⎦⎤⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡∂∂∂∂⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡00170.0024.0*.010212x u x u u ⎥⎦⎤⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡∂∂∂∂⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡-00170.0024.0*.0101211x u x u u )3(0121⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡u u0.99 0.995 1];T=[0 0.005 0.01 0.05 0.1 0.5 1 1.5 2];sol=pdepe(m,@pdefun,@pdeic,@pdebc,x,t);U1=sol(:,:,1);u2=sol(:,:,2);figuresurf(x,t,u1)title(’ul(x,t)’)xlabel(’Distance x’)ylabel(’Time t’)figuresurf(x,t,u2)tiffe(’u2(x,t)’)xlabel(’Distance x’)ylabel(’Time t’)结果图3.2偏微分方程的pdetool解法3.2.1偏微分方程工具箱的功能偏微分方程工具箱(PDE Toolbox)提供了研究和求解空间二维偏微分方程问题的一个强大而又灵活实用的环境。

PDE Toolbox 的功能包括:(1)设置PDE (偏微分方程)定解问题,即设置二维定解区域、边界条件以及方程的形式和系数;(2)用有限元法 (FEM) 求解PDE数值解;(3)解的可视化。

无论是高级研究人员还是初学者,在使用PDE Too1box时都会感到非常方便。

只要PDE定解问题的提法正确,那么,启动MATLAB后,在MATLAB工作空间的命令行中键人pdetool,系统立即产生偏微分方程工具箱(PDE Toolbox)的图形用户界面(Graphical User Interface,简记为GUI),即PDE解的图形环境,这时就可以在它上面画出定解区域、设置方程和边界条件、作网格剖分、求解、作图等工作,详见1.4节中的例子。

相关主题