how to solve matrix form differential equations using ODE45?

26 views (last 30 days)
The equation is as above.
The initial values are X0 , Y0 = 30
Time range is 1 to 1000s
How should I write the code?
a,b are constants.
  2 Comments
James Tursa
James Tursa on 27 Apr 2021
Is the left hand side supposed to simply be a1*X' for the first equation and b1*Y' for the second equation?
yonghyeok lee
yonghyeok lee on 27 Apr 2021
a_1 , b_1 is constants.
The Equation can be expressed
X' means dx/dt
Y' means dy/dt

Sign in to comment.

Accepted Answer

Jan
Jan on 27 Apr 2021
Edited: Jan on 27 Apr 2021
y0 = [30; 30];
tspan = [1, 1000];
[t, y] = ode45(@YourODE, tspan, y0);
plot(t, y);
function dy = YourODE(t, y)
a1 = 2; % set accordingly
a2 = 3;
b1 = 4;
b2 = 5;
X = y(1);
Y = y(2);
dy = [-X / a1 + Y / a1 + a2 / a1; ...
X / b1 - Y / b1 + b2 / b1];
% Or:
% dy = [(-X + Y + a2) / a1; ...
% ( X - Y + b2) / b1];
% Or:
% dy = [-1/a1, 1/a1; 1/b1, -1/b1] * y + [a2/a1; b2/b1];
end

More Answers (0)

Categories

Find more on Numerical Integration and 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!