Solve first order nonlinear ODE
    13 views (last 30 days)
  
       Show older comments
    
    Missael Hernandez
 on 8 Sep 2020
  
    
    
    
    
    Commented: Missael Hernandez
 on 8 Sep 2020
            Hello I am tryin to solve this nonlinear ODE

with the IC

This is my code 
tspan = [0 5];
x0 = 3;
[t,x] = ode45(@(t,x) (x^4)-(7*x^2)+6*x, tspan, x0);
plot(t,x,'b')
My problem is that I get the following error: Warning: Failure at t=2.004757e-02.  Unable to meet integration tolerances without reducing the step size below the smallest value allowed (5.551115e-17) at time t. What should I do because the graph of the solution looks worng. Thanks.
2 Comments
  J. Alex Lee
      
 on 8 Sep 2020
				If you have a solution form that you expect, what is it? It's not surprising that the thing explodes for x(0)>1, for which your rate of change increases to produce a snowball effect.
Accepted Answer
  Alan Stevens
      
      
 on 8 Sep 2020
        The value of x increases far too quickly, and reaches a value beyond the numerics ability to cope with  when x(0) > 2.  Works just fine if x(0) = 1.5, or 0.5, say.
More Answers (1)
  Sam Chak
      
      
 on 8 Sep 2020
        
      Edited: Sam Chak
      
      
 on 8 Sep 2020
  
      The x(t) response rises rapidly. It cannot go pass t = 0.0463782 sec.
The x(t) response diverges for x(0) > 2 and converges to some steady-state points for x(0) < 2.
tspan = [0 0.046378];
x0 = 2.5;
[t, x] = ode45(@(t,x) (x^4) - (7*x^2) + 6*x, tspan, x0);
plot(t, x, 'b')

2 Comments
  J. Alex Lee
      
 on 8 Sep 2020
				so there you go, taken together with my comment and Alan's answer, looks like you are all set.
See Also
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!




