MATLAB: WHY do I get this error

functionode45

function dydt = free25(t,y);
g = 9.81;
l = 1;
dydt = [y(2);-g/l.*sin(y(1))];
end
[t,y]= ode45('free25',[0 10],[0 0.09]);%I typed this in command window
plot(t,y(:,1));
refline([0 0]);
Error using feval Undefined function 'free25' for input arguments of type 'double'.
Error in odearguments (line 87) f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 115) odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);

Best Answer

mahesh, is the above code all in one and the same script? If it is modify like this:
[t,y]= ode45(@free25,[0 10],[0 0.09]);%I typed this in command window
plot(t,y(:,1))
function dydt = free25(t,y)
g = 9.81;
l = 1;
dydt = [y(2);-g/l.*sin(y(1))];
end
Another option would be to store the first part of the script (first two commands) in one function and the second part in a different function. For this second option make sure you name the file the same way you name the function: free25.m