Solving two systems of DEs using the ode45 function.

24 vues (au cours des 30 derniers jours)
Vassil Botev
Vassil Botev le 22 Juil 2014
Commenté : Vassil Botev le 23 Juil 2014
I am trying to solve two systems of differential equations in variables x1, x2, x3 using the ode45 function. The equations are given below:
dx1=-2*lambda*beta*x1+2*lambda*alpha*x2+lambda^2*sigma^2;
dx2=beta*x1-(alpha+lambda*beta)*x2+lambda*alpha*x3;
dx3=2*beta*x2-2*alpha*x3;
where alpha=alpha0+alpha1*t and beta=beta0+beta1*t and alpha0, alpha1, beta0, beta1, sigma, lambda are known constants.
The values I am trying to find are X1, X2 and X3. The derivatives of these desired values are given by:
dX1=beta*x1;
dX2=alpha*x2;
dX3=x3;
I am having difficulties implementing the above using the ode45 function given that the problem is defined by two sets of simultaneous differential equations. Any suggestions as to how this can be solved would be much appreciated. Thanks.

Réponse acceptée

Mischa Kim
Mischa Kim le 23 Juil 2014
Vassil, check out
function my_ode()
alpha0 = 1;
alpha1 = 1;
beta0 = 1;
beta1 = 1;
lambda = 1;
sigma = 1;
param = [alpha0; alpha1; beta0; beta1; lambda; sigma];
[t,X] = ode45(@EOM,[0 5],[1 2 3 4 5 6],[],param);
plot(t,X(:,1))
grid
end
function dX = EOM(t,x,param)
x1 = x(1);
x2 = x(2);
x3 = x(3);
alpha0 = param(1);
alpha1 = param(2);
beta0 = param(3);
beta1 = param(4);
lambda = param(5);
sigma = param(6);
alpha = alpha0+alpha1*t;
beta = beta0+beta1*t;
dx1 = -2*lambda*beta*x1+2*lambda*alpha*x2+lambda^2*sigma^2;
dx2 = beta*x1-(alpha+lambda*beta)*x2+lambda*alpha*x3;
dx3 = 2*beta*x2-2*alpha*x3;
dX1 = beta*x1;
dX2 = alpha*x2;
dX3 = x3;
dX = [dx1; dx2; dx3; dX1; dX2; dX3];
end
  1 commentaire
Vassil Botev
Vassil Botev le 23 Juil 2014
Thanks a lot Mischa, really appreciate your help!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Numerical Integration and Differential Equations dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by