gusucode.com > demos工具箱matlab源码程序 > demos/pdex5.m
function pdex5 %PDEX5 Example 5 for PDEPE % This example is a mathematical model of the first steps of tumour-related % angiogenesis [1]. The PDEs are % % Dn/Dt = D(d*Dn/Dx - a*n*Dc/Dx)/Dx + s*r*n*(N - n) % Dc/Dt = D(Dc/Dx)/Dx + s*(n/(n+1) - c) % % In the form expected by PDEPE, the equations are % % |1| |n| | d*D(n)/Dx - a*n*D(c)/Dx | | s*r*n*(N - n) | % | | .* D_ | | = D_ | | + | | % |1| Dt |c| Dx | D(c)/Dx | | s*(n/(n+1) - c | % % Figures 3 and 4 of [1] correspond to the parameter values d = 1e-3, a = 3.8, % s = 3, r = 0.88, and N = 1. % % The initial conditions are perturbations of the constant steady state n = 1, % c = 0.5 for 0 <= x <= 1. A linear stability analysis predicts evolution of % the system to a spatially inhomogeneous solution. Step functions are specified % as initial values in PDEX5IC to stimulate the evolution. % % At both ends of [0,1], both solution components are to have zero flux, so both % the left and right boundary conditions are % % |0| |1| | d*D(n)/Dx - a*n*D(c)/Dx | |0| % | | + | | .* | | = | | % |0| |1| | D(c)/Dx | |0| % % See the subfunctions PDEX5PDE, PDEX5IC, and PDEX5BC for the coding of the % problem definition. % % It is found that a long time interval is needed to see the limiting % distributions. Also, the limit distribution for c(x,t) varies by only 0.1% % over the interval [0,1], so a relatively fine mesh is appropriate. % % [1] M.E. Orme and M.A.J. Chaplain, A mathematical model of the first steps % of tumour-related angiogenesis: capillary sprout formation and secondary % branching, IMA J. of Mathematics Applied in Medicine & Biology, 13 (1996) % pp. 73-98. % % See also PDEPE, FUNCTION_HANDLE. % Lawrence F. Shampine and Jacek Kierzenka % Copyright 1984-2014 The MathWorks, Inc. m = 0; x = linspace(0,1,41); t = linspace(0,200,10); sol = pdepe(m,@pdex5pde,@pdex5ic,@pdex5bc,x,t); n = sol(:,:,1); c = sol(:,:,2); figure; surf(x,t,c); title('Distribution of fibronectin--c(x)'); xlabel('Distance x'); ylabel('Time t'); figure; surf(x,t,n); title('Distribution of ECs--n(x)'); xlabel('Distance x'); ylabel('Time t'); figure; plot(x,n(end,:)); title('Final distribution of n(x).'); figure; plot(x,c(end,:)); title('Final distribution of c(x).'); % -------------------------------------------------------------------------- function [c,f,s] = pdex5pde(x,t,u,DuDx) d = 1e-3; a = 3.8; S = 3; r = 0.88; N = 1; c = [1; 1]; f = [ d*DuDx(1) - a*u(1)*DuDx(2) DuDx(2) ]; s1 = S*r*u(1)*(N - u(1)); s2 = S*(u(1)/(u(1) + 1) - u(2)); s = [s1; s2]; % -------------------------------------------------------------------------- function u0 = pdex5ic(x) u0 = [1; 0.5]; if x >= 0.3 & x <= 0.6 u0(1) = 1.05 * u0(1); u0(2) = 1.0005 * u0(2); end % -------------------------------------------------------------------------- function [pl,ql,pr,qr] = pdex5bc(xl,ul,xr,ur,t) pl = [0; 0]; ql = [1; 1]; pr = [0; 0]; qr = [1; 1];