Subplot in ODE45

1 visualización (últimos 30 días)
Hüseyin Cagdas Yatkin
Hüseyin Cagdas Yatkin el 26 de Nov. de 2019
Respondida: Hüseyin Cagdas Yatkin el 27 de Nov. de 2019
Hi guys, I try to subplot with changing 'd' value. How should I do it?
function hw5q2b
ode45(@b2,[0 2],[130 10 5]);
xlabel('time (mins)')
ylabel('concentration (mg/L)')
end
function y = b2(~,C)
k1 = 0.56; %1/h
k2 = 0.28; %1/h
Q = 300/1000; %m^3/h-Flowrate
d = [0.20 0.30 0.50]; % m, given diameters
for i = 1:length(d)
A = pi*(d(i)^2); %m^2, area
v = Q/A ; %m/h
y(1) = -(k1*C(1))/v;
y(2) = (k1*C(1)-k2*C(2))/v;
y(3) = (k2*C(2))/v;
y = y(:);
end
end

Respuesta aceptada

Stephan
Stephan el 26 de Nov. de 2019
Editada: Stephan el 26 de Nov. de 2019
d = [0.20 0.30 0.50];
for ii = 1:numel(d)
sol(ii)=ode45(@(t,C)b2(t,C,d(ii)),[0 2],[130 10 5]);
t{:,ii}=sol(ii).x';
y{:,:,ii}=sol(ii).y';
subplot(3,1,ii)
plot(t{:,ii},y{:,:,ii})
end
function y = b2(~,C,d)
k1 = 0.56; %1/h
k2 = 0.28; %1/h
Q = 300/1000; %m^3/h-Flowrate
A = pi*d^2; %m^2, area
v = Q/A ; %m/h
y(1) = -(k1*C(1))/v;
y(2) = (k1*C(1)-k2*C(2))/v;
y(3) = (k2*C(2))/v;
y = y(:);
end

Más respuestas (1)

Hüseyin Cagdas Yatkin
Hüseyin Cagdas Yatkin el 27 de Nov. de 2019
Thanks a lot! It will be very helpful.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by