How to solve differential equations that are in matrix form?

46 visualizaciones (últimos 30 días)
Benjamin Watson
Benjamin Watson el 1 de Feb. de 2019
Editada: Bjorn Gustavsson el 1 de Feb. de 2019
Hello,
I'm trying to use matlab to solve these differential equations and am struggling to find a method that works.

Respuestas (1)

Bjorn Gustavsson
Bjorn Gustavsson el 1 de Feb. de 2019
Editada: Bjorn Gustavsson el 1 de Feb. de 2019
This seems to be exactly the type of ODE the odeNN-functions are designed to solve. Just put your ode into a function:
function dp = myode(t,p,A)
dp = A*p;
end
Then integrate your ODE like this:
A = [-lambd mu;lambda -mu];
p0 = [1;0];
t_span = [t_initial,t_final]
P = ode45(@(t,p) myode(t,p,A),t_span,p0);
Or if you want to solve it symbolically:
syms mu lambda t
syms p1(t) p0(t)
Dp1 = diff(p1);
Dp0 = diff(p0);
A = [-lambda mu;lambda -mu];
P = dsolve([Dp0;Dp1] == A*[p0;p1],[p0(0);p1(0)]==[1;0]);
HTH

Community Treasure Hunt

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

Start Hunting!

Translated by