ODE System with 4 equations

363 views (last 30 days)
Hi all,
I have a system with 4 ODEs which I want to solve simultanously.Each equations are feeded with some variables. All derivatives are with respect to time (t) only. The variables are x,v,p and u.
dx/dt = v(t)
dv/dt = - 2*v(t) - 1000*x(t) - p(t)
dp/dt = v(t) - u(t)
du/dt = p(t) - abs(u(t) * u(t)
Initial conditions are all zero at t = 0, i.e. x(0) = 0; v(0) = 0; p(0) = 0; u(0) = 0.
Looking forward to get your help.
I don't have any preference over the integration scheme but an application of ode45 should help. I also have access to the symbolic toolbox.
Best regards,
Baris
  1 Comment
Malak Abuhusien
Malak Abuhusien on 14 Jun 2021
how solution with for loop?

Sign in to comment.

Accepted Answer

Josh Meyer
Josh Meyer on 5 May 2020
Edited: Josh Meyer on 5 May 2020
When you have a system of equations, each equation gets its own spot in the solution vector y.
With the conventions
y(1) = x, dydt(1) = dx/dt
y(2) = v, dydt(2) = dv/dt
y(3) = p, dydt(3) = dp/dt
y(4) = u, dydt(4) = du/dt
You can write the system of equations in an ODE function as
function dydt = ODEsystem(t,y)
dydt = zeros(4,1);
dydt(1) = y(2);
dydt(2) = - 2*y(2) - 1000*y(1) - y(3);
dydt(3) = y(2) - y(4);
dydt(4) = y(3) - abs(y(4) * y(4));
end
After you save the function in a file in your current directory, you can set the initial conditions and integrate with:
y0 = zeros(4,1);
tspan = [0 10];
[t,y] = ode45(@ODEsystem,tspan,y0);
plot(t,y,'-o')
For your problem, with the initial conditions all zero, this integration doesn't do much because all of the terms in the equations depend on x, v, y, or p, so the terms all remain zero.
  5 Comments
Baris Gungordu
Baris Gungordu on 5 May 2020
Great, many thanks.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!