Differential equation and events - MATLAB Cody - MATLAB Central

Problem 42891. Differential equation and events

Difficulty:Rate

You have to solve the non-linear time variant differential equation:

(cos(y)+2)*y''+atan(y)*sin(0.01*t)^2+y*sin(0.5*t)=0

with initial condition as input of the function

[y(0);y'(0)]=[a,b]

and return the time 'te' when 'y' crosses zero from the negatives values to the positive values.

te=zero_crossing(a,b)

tip: use the 'Events' option in odeset to detect the crossing, stop integration and get the time 'te'. See how to use it here : http://www.mathworks.com/help/matlab/math/ode-event-location.html?searchHighlight=ballode

Additional info:

  • in the test case, the solver ode45 is used, with options 'RelTol'=1e-8 and 'AbsTol'=1e-10.
  • because you don't know in advance the final time of the crossing, you can solve again further in time if no crossing is detected, starting from the point of the final time of previous integration.

Solution Stats

39.66% Correct | 60.34% Incorrect
Last Solution submitted on Aug 14, 2024

Problem Comments

Solution Comments

Show comments

Group

The Prime Directive Image
The Prime Directive
  • 14 Problems
  • 36 Finishers

Problem Recent Solvers18

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Go to top of page