whats wrong with my code?

1 次查看(过去 30 天)
function ped1
sol =pdepe(m,@pdefun,@pdeic,@pdebc,xmesh,tspan);
u=sol(:,:,1);
function [c,f,s]= pdefun(x,t,u,DuDx)
c = V/D;
f = DuDx;
s=0;
end
ped1
Undefined function or variable 'V'.
Error in pdefun (line 2)
c = V/D;
Error in pdepe (line 246)
[c,f,s] = feval(pde,xi(1),t(1),U,Ux,varargin{:});
Error in ped1 (line 27)
sol =pdepe(m,@pdefun,@pdeic,@pdebc,xmesh,tspan);
  2 个评论
Stephen23
Stephen23 2018-12-3
Before this line:
c = V/D;
Where are V and D defined?
Shangeetha Mahendran
I have defined in ped1
function ped1
m=1;
R=2.2e-4; %radius of lumen (m)
dm = 13.04e-6; % TM thickness (m)
r1 =R + dm; %radius of outer surface of membrane (m)
L=1; %height of the membrane (m)
Q = 6.5e-9; %volumetric flow rate
D=1.76e-9;
RT = 2477.6;
H = 1.62; %Henry's law constant Pam^3/mol
u0= 285.1;
xn = 10; % grid-steps channel x-axis(radius side)
xmesh = linspace(0,R,xn);
tspan =linspace(0,L,10); %counter point of length% spatial solution domain (m)
dx = 1/(xn-1);
x = [xmesh];
V = Q/3.14/R^2;
%U_z =zeros(1,xn);
%for ii=1:xn
%U_z(ii) =2*U_a *(1- x(ii)^2/R^2);
%end
sol =pdepe(m,@pdefun,@pdeic,@pdebc,xmesh,tspan);
u=sol(:,:,1);
surf(x,t,u)
xlabel('radi')
ylabel('height')
figure
plot(x,u(end,:))
xlabel('radi')
ylabel('concentration')
end
function [c,f,s]= pdefun(x,t,u,DuDx)
c = V/D;
f = DuDx;
s=0;
end
function [pl,ql,pr,qr] = pdebc(xl,ul,xr,ur,t)
pl=0;
ql=1;
pr= u0 *(1-0.6*x/R)* H / RT / x / log (r1/R);
qr=1;
end
function u0 = pdeic(x)
u0 =285.1;
end

请先登录,再进行评论。

采纳的回答

Stephen23
Stephen23 2018-12-3
编辑:Stephen23 2018-12-3
Make pdefun and pdebc nested functions by defining them inside of ped1:
function ped1()
...
V = ...
D = ...
R = ...
...
function [...]= pdefun(...)
...
V/D
...
end
function [...] = pdebc(...)
...
end
end
  5 个评论
Stephen23
Stephen23 2018-12-4
编辑:Stephen23 2018-12-4
"in pdefun; is that possible to use array for the term "c" nstead of constant?"
MATLAB does not have any "constant" class, so it is not clear what you mean. Perhaps you mean that c is scalar?
In any case, the pdepe help states the the first output c should be a column vector. Given that both V and D are scalars, it is not clear what you expect c to be. Please show an example.
Shangeetha Mahendran
function [c,f,s]= pdefun(x,t,u,DuDx)
c = V/D;
f = DuDx;
s=0;
end
"c" is from this function.
if v is a column vector and t is the raw matrix is that possible to solve with pdepe

请先登录,再进行评论。

更多回答(0 个)

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by