ODE 24 "not enough input arguments"
8 views (last 30 days)
Show older comments
I am having some difficulty using ODE45 utilizing a system of differential equation. Below is my code which produces the error "not enough input arguments" for line 9; which defines the variable "ra". I am confused on what this error code means. my original script utilizes a set of 4 initial condition for C(1) C(2) C(3) and C(4) and a defined time span of [0 500]. Thank you for the help in advance; any input on what this code will be appreciated.
function conversion=ODEFUNCTION611b(t,C)
V0=200; %dm^3
Kc=1.08; %given equilibirum constant
k=9*10^-5;%dm^3/mol*s rate constant
v=0.05; %dm^3/s
Cb0=10.93; %mol/dm^3
%Ca0=7.72 %mol/dm^3
ra=-k*((C(1)*C(2))-((C(3)*C(4))/Kc))
V=V0+v*t
dCadt=ra-(v/V)*C(1)
dCbdt=ra+((v*(Cb0-C(2)))/V)
dCcdt=-ra-((v*C(3))/V)
dCddt=-ra-((v*C(4))/V)
eqns=[dCadt dCbdt dCcdt dCddt]
conversion=eqns
end
0 Comments
Accepted Answer
Star Strider
on 24 Mar 2020
This runs without error (R2020a):
function conversion=ODEFUNCTION611b(t,C)
V0=200; %dm^3
Kc=1.08; %given equilibirum constant
k=9*10^-5;%dm^3/mol*s rate constant
v=0.05; %dm^3/s
Cb0=10.93; %mol/dm^3
%Ca0=7.72 %mol/dm^3
ra=-k*((C(1)*C(2))-((C(3)*C(4))/Kc));
V=V0+v*t;
dCadt=ra-(v/V)*C(1);
dCbdt=ra+((v*(Cb0-C(2)))/V);
dCcdt=-ra-((v*C(3))/V);
dCddt=-ra-((v*C(4))/V);
eqns=[dCadt dCbdt dCcdt dCddt];
conversion=eqns(:);
end
with:
ic = zeros(4,1)+1;
ts = [0 500];
[T,C] = ode45(@ODEFUNCTION611b, ts, ic);
figure
semilogy(T,C)
grid
Make appropriate changes to get the result you want.
4 Comments
More Answers (0)
See Also
Categories
Find more on Ordinary Differential Equations 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!