Solving coupled 2nd order ODEs

15 visualizaciones (últimos 30 días)
OJAS POTDAR
OJAS POTDAR el 18 de Jul. de 2021
Comentada: OJAS POTDAR el 28 de Jul. de 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 comentarios
Torsten
Torsten el 18 de Jul. de 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 el 28 de Jul. de 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);

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Ordinary Differential Equations en Help Center y File Exchange.

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by