Effacer les filtres
Effacer les filtres

Vector input for ODE45

4 vues (au cours des 30 derniers jours)
Oday Shahadh
Oday Shahadh le 22 Fév 2017
Commenté : Walter Roberson le 23 Fév 2017
Sirs, I have something like the below formula:
T=(A+B+C)+(D*T) dt where A, B and C are vectors with let me say (1,6000) length How Can I integrate this formula using ODE45, please help, and thanks in advance

Réponse acceptée

Walter Roberson
Walter Roberson le 22 Fév 2017
x0 = ... something same length as A;
[T, X] = ode45( @(t, x) f(t, X, A, B, C, D), tspan, x0);
function dy = f(t, y, A, B, C, D)
dy = (A + B + C) + (D*t);
... except of course if that were really your formula you would construct
x0 = ... something same length as A;
ApBpC = A + B + C;
[T, X] = ode45( @(t, x) f(t, X, ApBpC, D), tspan, x0);
function dy = f(t, y, ApBpC, D)
dy = ApBpC + (D*t);
  11 commentaires
Oday Shahadh
Oday Shahadh le 23 Fév 2017
how to develope the loop? to avoid overwriting a previues values?
Walter Roberson
Walter Roberson le 23 Fév 2017
i_vals = 1 : 10 : t;
num_i = length(i_vals);
Tdot = zeros(num_i, 1);
for i_idx = 1 : num_i
i = i_vals(i_idx);
Tdot(i_idx) = A(i) + B(i) + C(i) - T;
end
result = TDot;
Note that the resulting value changes length as t increases. If t represents the time parameter to the ode, then this would mean that you are trying to return a different number of derivatives as time goes on.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays 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