function mbiol %MBIOL Reaction-diffusion system from mathematical biology. % Solves the PDE and tests the energy decay condition. m = 0; xmesh = linspace(0,1,15); tspan = linspace(0,0.2,10); sol = pdepe(m,@mbpde,@mbic,@mbbc,xmesh,tspan); u1 = sol(:,:,1); u2 = sol(:,:,2); subplot(221) surf(xmesh,tspan,u1) xlabel('x','FontSize',12) ylabel('t','FontSize',12) title('u_1','FontSize',16) subplot(222) surf(xmesh,tspan,u2) xlabel('x','FontSize',12) ylabel('t','FontSize',12) title('u_2','FontSize',16) % Estimate energy integral. dx = xmesh(2) - xmesh(1); % Constant spacing. energy = 0.5*sum( (diff(u1,1,2)).^2 + (diff(u2,1,2)).^2, 2)/dx; subplot(212) plot(tspan',energy) xlabel('t','FontSize',12) title('Energy','FontSize',16) % ----------------------- Subfunctions ----------------------- function [c,f,s] = mbpde(x,t,u,DuDx) c = [1; 1]; f = DuDx/2; s = [1/(1+u(2)^2); 1/(1+u(1)^2)]; function u0 = mbic(x); u0 = [1+0.5*cos(2*pi*x); 1-0.5*cos(2*pi*x)]; function [pa,qa,pb,qb] = mbbc(xa,ua,xb,ub,t) pa = [0; 0]; qa = [1; 1]; pb = [0; 0]; qb = [1; 1];