Solving ODE w/ Matlab ode45: Error Message Explained

  • Thread starter Thread starter eurekameh
  • Start date Start date
  • Tags Tags
    Matlab Ode45
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
5 replies · 4K views
eurekameh
Messages
209
Reaction score
0
I'm trying to solve an ODE using matlab's ode45, but I'm receiving the following error:

Warning: Failure at t=4.509803e+01. Unable to meet integration tolerances without reducing the step size below the smallest value allowed (1.136868e-13) at time t.

Can anybody explain what this means?
 
Physics news on Phys.org
function dxdt = test(t,x)
mu = 398600.64;
dxdt_1 = x(2);
dxdt_2 = (-mu/x(1)^3)*x(1);
dxdt = [dxdt_1;dxdt_2];

It's a second-order ODE and I'm trying to solve it from the time interval of 0 to 28800. When I lower this time interval to something like 50, the program seems to work fine, but anything higher than that, it stops to converge. Here is my code to run it:

t = 0:28800
[t x] = ode45(@test,t,[1000;-7]);
 
I'm trying to solve the orbit motion of equation x,doubledot = (-mu/x^3)*x, with an initial condition of x0 = 1000, and xdot,0 = -7.
 
Do you know why it's not converging?