您的位置首页百科知识

利用MATLAB中pdepe函数求解一般的偏微分方程组

利用MATLAB中pdepe函数求解一般的偏微分方程组

的有关信息介绍如下:

利用MATLAB中pdepe函数求解一般的偏微分方程组

MATLAB可以求解常见的偏微分方程,现在我们一起探讨如何利用利用MATLAB中pdepe函数求解一般的偏微分方程组。

pdepe()函数的一般调用格式是:

sol=pdepe(m,@pdefun,@pdeic,@pdebc,x,t),其中pdefun是偏微分方程的描述函数,它必须写成如下标准形式,如下图所示:

pdeic是偏微分方程的初始条件,初始条件的描述为u(x,t0)=u0,

可以使用u0=pde(x);

pdebc是偏微分方程的边界条件,它的标准形式为:

p(x,t,u)+q(x,t,u).*f(x,t,u,ux)=0,则可以用[pa,qa,pb,qb]=pdebc(x,t,u,ux),a和b表示下边界和上边界。

例题:解下列偏微分方程组,方程如下图所示:

pdefun的命令为:

function[c,f,s]=pdefun(x,t,u,ux)%建立偏微分方程函数

c=[1;1];

y=u(1)-u(2);

F=exp(5.73*y)-exp(-11.46*y);

s=F*[-1;1];

f=[0.024*ux(1);0.017*ux(2)];

初始条件:

初始条件标准形式:[u1;u2]=[1;0]

可以编写描述初始条件的MATLAB函数。

function[u0]=pdeic(x)%建立偏微分方程的初始条件函数

u0=[1;0];

边界条件:

左边界:[0;u2]+[1;0].*f=[0;0]

右边界:[u1-1;0]+[0;1].*f=[0;0]

可以编写描述边界条件的MATLAB函数。

function[pa,qa,pb,qb]=pdebc(xa,ua,xb,ub,t)%建立偏微分方程的边界条件函数

pa=[0;ua(2)];qa=[1;0];

pb=[ub(1)-1;0];qb=[0;1];

求解偏微分方程组

计算程序如下所示:

>>x=0:0.05:1;t=0:0.05:2;m=0;

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

u1=sol(:,:,1);

u2=sol(:,:,2);

figure;

surf(x,t,u1)

title('u1(x,t)')

xlabel('Distancex')

ylabel('Timet')

figure;

surf(x,t,u2)

title('u2(x,t)')

xlabel('Distancex')

ylabel('Timet')