MATLAB: ODE 24 “not enough input arguments”

differential equationsinputMATLABode45

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

Best Answer

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.