Error in ode45; Graphing ODE

2 visualizzazioni (ultimi 30 giorni)
Isaiah Duhme
Isaiah Duhme il 20 Nov 2020
Risposto: Star Strider il 20 Nov 2020
I'm trying to graph two ODE, but I keep getting an error.
function dcdt = CODE(t,p)
v1 = 330;
v2 = 170;
cbar = 10;
k = 5.5;
cdcdt = [ p(1).*((p(2)*k+k)/v1);
p(2).* ((k*p(1)-k)-cbar/v2)];
end
t0 = 0;
tfinal = 180;
p0 = [1; 1];
[t,p] = ode45(@CODE, [t0 tfinal],p0);
plot(t,p)
title('Concentrations over time')
xlabel('t')
ylabel('concentration')
legend('C1','C2')
Error in ode45 (line 115)
odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
Error in concen (line 6)
[t,p] = ode45(@CODE, [t0 tfinal],p0);

Risposta accettata

Star Strider
Star Strider il 20 Nov 2020
Note that ‘cdcdt’ is not the same as ‘dcdt’.
Change this to:
dcdt = [ p(1).*((p(2)*k+k)/v1);
p(2).*((k*p(1)-k)-cbar/v2)];
and it works, although it has a singularity at t=5.726570e+00, and stops with an appropriate warning.
We all encounter our own typographical errors, so no worries!

Più risposte (0)

Categorie

Scopri di più su Programming in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by