MATLAB: “Not Enough Arguments” Error in ode23 – code is perfect as far as I know…

emergencyMATLABnot enough input argumentsode23ode45

function kinetics=examquestion1(t,Y)
kinetics=zeros(3,1);
kinetics(1)=-Y(1)*Y(2)+0.1*Y(3);
kinetics(2)=-Y(1)*Y(2)+0.1*Y(3);
kinetics(3)=Y(1)*Y(2)-0.1*Y(3);
[tv,Yv]=ode45(@examquestion1,[0 10],[1;1;0],t);
plot(tv,Yv(:,1),'+',tv,Yv(:,2),'x',tv,Yv(:,3),'o')
hold on
grid
title('Solutions w/k1=1 and k-1=0.1')
text(0.3,14,'-+- A(t)')
text(0.3,10,'-x- B(t)')
text(0.3,-12,'-o- P(t)')
xlabel('time')
hold off
end
Above is my code, error is in line 4 "kinetics(1)=……." I have no clue what to do!! Please help, time is of the essence. Thank you 🙂
Code is for solving a system of 3 differential equations, representing the kinetics of an A + B = C reaction.

Best Answer

Put this in an m-file:
function kinetics=examquestion1(t,Y)
kinetics=zeros(3,1);
kinetics(1)=-Y(1)*Y(2)+0.1*Y(3);
kinetics(2)=-Y(1)*Y(2)+0.1*Y(3);
kinetics(3)=Y(1)*Y(2)-0.1*Y(3);
save it as examquestion1. Then run:
[tv,Yv]=ode45(@examquestion1,[0 10],[1;1;0]);
plot(tv,Yv(:,1),'+',tv,Yv(:,2),'x',tv,Yv(:,3),'o')
hold on
grid
title('Solutions w/k1=1 and k-1=0.1')
text(0.3,14,'-+- A(t)')
text(0.3,10,'-x- B(t)')
text(0.3,-12,'-o- P(t)')
xlabel('time')
hold off