Hello, I'm having a problem with this code
%%DATA
%Starting Point
R_I = [-5.5106881000000003e+03 1.5889450000000002e+03 5.8383016000000007e+03];V_I = [-3.8639999999999999e+00 -6.5410000000000004e+00 -1.2840000000000000e+00];%Planet
mi = 398600;equat_Rt = 6378.1363;polar_Rt = 6356.7523142;%%COMPUTIING
t_0 = 0.1;t_f = 100000;options = odeset('Reltol',1e-13,'Abstol',1e-14,'Event',@closed_orbit);X_0 = [R_I(1); R_I(2); R_I(3); V_I(1); V_I(2); V_I(3)];[T,X] = ode113(@orbit_dynamics,[t_0 t_f],X_0,options,mi,R_I);
The function orbit_dynamics is this one
function [dX] = orbit_dynamics(X,mi,varargin)x = X(1);y = X(2);z = X(3);u = X(4);v = X(5);w = X(6);% Position derivative is velocity
dx = u;dy = v;dz = w;% Velocity derivative is acceleration
R = [x,y,z];norm_R = norm(R);du = -mi/norm_R^3 * x;dv = -mi/norm_R^3 * y;dw = -mi/norm_R^3 * z;% Terminating data
dX = [dx dy dz du dv dw]';end
The error that Matlab gives is
Index exceeds matrix dimensions.Error in orbit_dynamics (line 4)y = X(2);Error in odearguments (line 90)f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode113 (line 115) odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);Error in orbit_motion (line 18)[T,X] = ode113(@orbit_dynamics,[t_0 t_f],X_0,options,mi,R_I);
I ran the debug and it seems that when it enters the function orbit_dynamics, the vector X turns in a 1×1 vector, can anyone help me with that?
Best Answer