Unable to meet integration tolerances without reducing the step size below the smallest value

5.1k Views Asked by At

I am solving system of Differential-Algebraic using ODE15s MATLAB, and this is a segment of my code

 options = odeset('Mass',M,'RelTol',1e-3,...,
                 'Vectorized','off','MaxStep',1e-4);

  tspan = [0 50];

  [t,y] = ode15s(@fs,tspan,y0,options);

But I got this error message

"Unable to meet integration tolerances without reducing the step size below the smallest value allowed (5.551115e-17) at time t."

But I did not understand the message, How can I fix it? I think I should choose fit values for step size and tolerance error, Any advises?

Thanks a lot

2

There are 2 best solutions below

1
On

Well, this means that the graph of the function has gotten so steep that MATLAB can't graph it. What could this imply? A singularity at that point.

Perhaps use the ode23t function instead?

Documentation can be found here: http://www.mathworks.com/help/matlab/ref/ode23t.html

3
On

It could be that your solution is encountering a singularity of some sort, or it could be that you have a "stiff" system that is difficult for numerical methods to handle. You might want to see what it's doing just before the time where the error occurs. Is it going off to infinity or oscillating wildly? Is it approaching a place where the equations become undefined? Does this reflect possible behaviour in the actual system you're trying to model, or is it an artifact of the numerical method?