MATLAB: What wrong in the code when i use ode 45,and what the error are mean

functionMATLABode45

function [dw,ds] = Mass_On_Stick_012345678(w,s,parameter)
%Parameter=[ b m R G g ]
b=parameter(1);m=parameter(2);R=parameter(3);G=parameter(4);g=parameter(5);
fi_1=w(1);
fi1_dot=w(2);
teta_1=s(1);
teta1_dot=s(2);
%%rt=R*[sin(teta_1)*cos(fi_1),sin(teta_1)*sin(fi_1),cos(teta_1)];
dw=[0;0];
dw(1)=fi1_dot;
dw(2)=(-fi1_dot)*((2*teta1_dot)/tan(teta_1)+(b/m));
ds=[0;0];
ds(1)=teta1_dot;
ds(2)=(g/R)*sin(teta_1)-((G*teta_1)/(m*(R^2)))+0.5*(fi1_dot^2)*sin(2*teta_1)-((b*teta1_dot)/m);
end
Not enough input arguments.
Error in Mass_On_Stick_012345678 (line 3)
b=parameter(1);m=parameter(2);R=parameter(3);G=parameter(4);g=parameter(5);

Best Answer

Try changing this
[t,y]=ode45('Mass_On_Stick_012345678',tSpan,y0,opts,Parameter);
to this
[t,y]=ode45(@(t,y)Mass_On_Stick_012345678(t,y,Parameter),tSpan,y0,opts);
Related Question