How to solve differential equations that are in matrix form?

46 vues (au cours des 30 derniers jours)
Benjamin Watson
Benjamin Watson le 1 Fév 2019
Hello,
I'm trying to use matlab to solve these differential equations and am struggling to find a method that works.

Réponses (1)

Bjorn Gustavsson
Bjorn Gustavsson le 1 Fév 2019
Modifié(e) : Bjorn Gustavsson le 1 Fév 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