I have a higher order system of ode's that I am trying to solve using ode45. I am receiving an error:
Subscript indices must either be real positive integers or logicals.
My two files are below, followed by a complete list of errors.
function xdot = fdynamics(t,y)F = 0;T = 0;m1 = 2;m2 = 3;g = 9.81;l1 = 1;l2 = 1;xdot(1) = y(2);xdot(2) = (F-m2*g*sin(y(3)))/m2 + (l1+y(1))*y(4)^2;xdot(3) = y(4);xdot(4) = (T-(2*m2*(l1+y(1)))*y(4)*y(2) - g*cos(y(3))*(m1*(l1/2)+m2*(l1+y(1))) /((1/3)*m1*(l1)^2 + (1/12)*m2*l2^2 + m2(l1+y(1))^2));xdot = xdot';end
//AND//
clcclearoptions = odeset('Refine',1','MaxStep',1/60);[t,y]=ode45(@fdynamics,[0 5],[0; 0; 0; 0],options);plot(t,y(:,1),'-x')title('D vs t'); xlabel('Time t'); ylabel('D'); legend('D')figure plot(t,y(:,2),'-x') title('D-Dot vs t'); xlabel('Time t'); ylabel('D-Dot'); legend('D-Dot') figure plot(t,y(:,3),'-x') title('Theta vs t'); xlabel('Time t'); ylabel('Theta'); legend('Theta') figure plot(t,y(:,4),'-o') title('Theta-Dot vs t'); xlabel('Time t'); ylabel('Theta-Dot'); legend('Theta-Dot')
//ERRORS//
Subscript indices must either be real positive integers orlogicals.Error in fdynamics (line 16)xdot(4) = (T-(2*m2*(l1+y(1)))*y(4)*y(2) -g*cos(y(3))*(m1*(l1/2)+m2*(l1+y(1))) /((1/3)*m1*(l1)^2 +(1/12)*m2*l2^2 + m2(l1+y(1))^2));Error in ode45 (line 262) f(:,3) = feval(odeFcn,t+hA(2),y+f*hB(:,2),odeArgs{:});Error in attempt2 (line 9)[t,y]=ode45(@fdynamics,[0 5],[0; 0; 0; 0],options);
Best Answer