Z must be a matrix, not a scalar or vector when solving using surf in pdepe
1 view (last 30 days)
Show older comments
I am not an expert in MATLAB and I did my best in coding my 5 PDE's using pdepe command but keep getting this massage?
Z must be a matrix, not a scalar or vector.
My codes are
m = 0;
x = linspace(-10,20,200);
t = linspace(1,20,100);
sol = pdepe(m,@chagastwpde,@chagastwic,@chagastwbc,x,t);
% Extract the first solution component as u.
u1 = sol(:,:,1);
u2 = sol(:,:,2);
u3 = sol(:,:,3);
u4 = sol(:,:,4);
u5 = sol(:,:,5);
figure
surf(x,t,u2)
title('Numerical solution of I_{ha}')
xlabel('Distance x')
ylabel('Time t')
function [c,f,s] = chagastwpde(x,t,u,DuDx)
c = [1;1;1;1;1];
f =[0 ;0 ;0 ;0.4 ; 0.4].*DuDx;
s1=(50*exp(-(1/100)*(u(1)+u(2)+u(3))))*(u(1)+0.1*(1-0.1)*u(2)+0.3*(1-.1)*u(3))-0.7*u(1)-((3*u(1)*u(5))/(u(1)+u(2)+u(3)))+0.7*u(2);
s2=(50*exp(-(1/100)*(u(1)+u(2)+u(3))))*((0.1*0.1*u(2))+0.3*0.1*u(3))+((3*u(1)*u(5))/(u(1)+u(2)+u(3)))-(0.7+0.2+0.7+0.4)*u(2);
s3=0.4*u(2)-(0.7+0.5)*u(3);
s4=100*(u(4)+u(5))*exp(-(1/200)*(u(4)+u(5)))-((0.2*u(4)*u(2))/(u(1)+u(2)+u(3)))-((2.6*u(4)*u(3))/(u(1)+u(2)+u(3)))-1.2*u(4);
s5=((0.2*u(4)*u(2))/(u(1)+u(2)+u(3)))+((2.6*u(4)*u(3))/(u(1)+u(2)+u(3)))-1.2*u(5);
s = [s1;s2;s3;s4;s5];
% --------------------------------------------------------------
function u0= chagastwic(x);
u0 = (heaviside(x+2)-heaviside(x-2))*ones(5,1);
% --------------------------------------------------------------
function [pl,ql,pr,qr] = chagastwbc(xl,ul,xr,ur,t)
pl = [0;0;0;0;0];
ql = [1;1;1;1;1];
pr = [0;0;0;0;0];
qr = [1;1;1;1;1];
The full error massage is:
Warning: Failure at t=1.000000e+00. Unable to meet integration tolerances without reducing the step size below the smallest value allowed (3.552714e-15) at time t. > In ode15s at 668 In pdepe at 289 In chagastw at 21 Warning: Time integration has failed. Solution is available at requested time points up to t=1.000000e+00. > In pdepe at 303 In chagastw at 21 Error using surf (line 78) Z must be a matrix, not a scalar or vector
Error in chagastw (line 31) surf(x,t,u2)
4 Comments
Answers (0)
See Also
Categories
Find more on Boundary Conditions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!