Solving coupled 2nd order ODEs

19 views (last 30 days)
OJAS POTDAR
OJAS POTDAR on 18 Jul 2021
Commented: OJAS POTDAR on 28 Jul 2021
Hi,
I am trying to solve coupled 2nd order ODEs. When one consider quadratic air resistance, equations of motion of a projectile take the form:
mx"=-cx'(sqrt(x'^2+y'^2))
my"=-mg-cy'(sqrt(x'^2+y'^2))
where x is horizontal distance and y is vertical distance.
Can this be done in Matlab? I understand, I can reduce one second order ODE to a series of first order ODEs, but how to address coupled part i.e. x'' depends on y' and y'' depends on x'.
Thanks
  2 Comments
Torsten
Torsten on 18 Jul 2021
x1' = x2
x2' = -c*x2*sqrt(x2^2+x4^2)/m
x3' = x4
x4' = -g -c*x4*sqrt(x2^2+x4^2)/m
where x1 is horizontal distance, x2 is horizontal velcocity, x3 is vertical distance and x4 is vertical velocity.
Now you can use one of the ODE solvers (ODE45, ODE15S).
OJAS POTDAR
OJAS POTDAR on 28 Jul 2021
Thanks. This worked nicely:
function dydt = CatchAPass(t,y,C)
dydt = zeros(4,1);
dydt(1)= y(2);
dydt(2)= -C*y(2)*sqrt(y(2)^2+y(4)^2);
dydt(3)= y(4);
dydt(4)= -9.8-C*y(4)*sqrt(y(2)^2+y(4)^2);

Sign in to comment.

Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!