赡芄酵频加写砦螅绻凑漳愕汲龅墓郊扑悖峒扑愠鲂橹担缓蟛煌5乃姥贰H缃玴u3/pt的最后k*Ac前面的负号改为正号则有解。从你的边界条件来看,似乎这个分量也应该跟其他两个应该是不一样的。
function [ output_args ] = PDEs1( input_args )
m=0;
x=linspace(0,0.02,3);
t=linspace(0,1,3);
sol=pdepe(m,@pdes1pde,@pdes1ic,@pdes1bc,x,t);
u1=sol(:,:,1);
u2=sol(:,:,2);
u3=sol(:,:,3);
figure
surf(x,t,u1)
title('u1(x,t)')
xlabel('Distance x')
ylabel('Time t')
figure
surf(x,t,u2)
title('u2(x,t)')
xlabel('Distance x')
ylabel('Time t')
figure
surf(x,t,u3)
title('u3(x,t)')
xlabel('Distance x')
ylabel('Time t')
function[c,f,s]=pdes1pde(x,t,u,DuDx)
c=[1;1;1];
D1=1.25*10^(-9);
D2=1.838*10^(-9);
D3=1.856*10^(-9);
V=0.59;
k=1.03*10^(-4)/60;
Ac=1.9;
Ksp=5.51*10^(-14);
f=[D1/(1+V);D2/(1+V);D3/(1+V)].*DuDx;
s=[-k*Ac/(1+V)*((u(1)*u(2)*u(3)/Ksp)^(1/3)-1);-k*Ac/(1+V)*((u(1)*u(2)*u(3)/Ksp)^(1/3)-1);k*Ac/(1+V)*((u(1)*u(2)*u(3)/Ksp)^(1/3)-1);];
end
function u0 = pdes1ic(x)
u0 = [0;0;0];
end
function [pl,ql,pr,qr] = pdes1bc(xl,ul,xr,ur,t)
pl = [ul(1)-0.0493; ul(2)-0.07142;ul(3)-0.0387];
ql = [0;0;0];
pr = [ur(1)-0.0106;ur(2)-0.03272;ur(3)];
qr = [0;0;0];
end
end,