利用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')