Error with calling out ODE Function for my Code
Show older comments
Hi All,
I'm trying to get my code to run. It's supposed to call out my odefun1 function and use it for the ODE113 solver. But I'm getting an error stating:
Undefined function 'X_0' for input arguments of type 'double'.
Error in odefun1 (line 3) x_1 = X_0(1);
Error in odearguments (line 88) f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode113 (line 114) [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
Error in HW4 (line 11) [t,y] = ode113(@odefun1, tspan, X_0); %calls ODE113
My function file is saved as odefun1.m with the following code: function ydot = odefun1(t,y)
x_1 = X_0(1);
y_1 = X_0(2);
z_1 = X_0(3);
x_2 = X_0(4);
y_2 = X_0(5);
z_2 = X_0(6);
mu = 0.012; %mass ratio for Earth-Moon System
r_1 = sqrt((x_1+mu)^2 + y_1^2 + z_1^2);
r_2 = sqrt((x_1-1+mu)^2 + y_1^2 + z_1^2);
ydot(1,1) = x_2;
ydot(2,1) = y_2;
ydot(3,1) = z_2;
ydot(4,1) = x_1-((1-mu)*(x_1+mu)/r_1^3)-(mu*(x_1-1+mu)/r_2^3)+(2*y_2);
ydot(5,1) = y_1-((1-mu)*y_1/r_1^3)-(mu*y_1/r_2^3)-(2*x_2);
ydot(6,1) = -((1-mu)*z_1/r_1^3)-(mu*z_1/r_2^3);
I tried calling it from another mfile using:
t_0 = 0;
t_f = 5.906784808167686;
tspan = [t_0 t_f]; %time span to integrate over
X_0 = [0.999970555399038; -0.000035183036743; 0; 0.339376400085973; -0.243910167049855; 0]; %initial condition
[t,y] = ode113(@odefun1, tspan, X_0); %calls ODE113
but errors keep popping up. I'm not sure what's wrong. Any help is appreciated!
Accepted Answer
More Answers (0)
Categories
Find more on Ordinary Differential Equations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!