一、利用PDE求解偏微分方程组
初值为:
针对上述方程组,利用matlab自带工具箱和函数PDE进行求解。
以下是matlab中对工具箱中pdepe函数的解释。
二、matlab编程
在matlab中编程,利用PDE函数求解以上偏微分方程。
clc;
clear;
syms y
global gama beta alpha delta
gama=3;
beta=0.22;
alpha=0.5;
delta=0.62;
%%PDE标准形式
x = linspace(0,299,300);
t = linspace(0,269,270);
m=0;
sol = pdepe(m,@pdex1pde,@pdex1ic,@pdex1bc,x,t);
figure('numbertitle','off','name','PDE')
plot(x,sol(:,:,1),x,sol(:,:,2))
title('The Solution of u,v')
xlabel('x')
ylabel('u,v->')
function [c,f,s] = pdex1pde(x,t,u,dudx)
gama=3;
beta=0.22;
alpha=0.5;
delta=0.62;
c=[1;1];
f=[dudx(1);dudx(2)];
s=[gama*u(1)*(1-u(1))*(u(1)+beta)-u(1)*u(2)/(1+alpha*u(1));u(1)*u(2)/(1+alpha*u(1))-delta*u(2)];
end
function u0 = pdex1ic(x)
if (0<=x)&&(x<=3)
u0=[1;1];
elseif (3<x)&&(x<=300)
u0=[1;0];
end
end
function [pl,ql,pr,qr] = pdex1bc(x,u,xl,ul,xr,ur,t)
pl=[0;0];
ql=[0;0];
pr=[0;0];
qr=[0;0];
end
运行结果如下图,得到u和v的曲线。