Problème résolution ODE 45 d'une équation diff
bonjour à tous j'ai un problème avec la résolution d'une équa diff sous matlab et je ne comprends pas pourquoi :
erreur :
Code:
1 2
| When the first argument to ode45 is a function handle, the tspan argument must have at
least two elements. |
script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
%temps
t0 = 0; tf =length(10801)-1; dt = 1;
tps = t0:dt:tf;
% paramètres modèle
kr = 0.00048; %s-1
kd = 0.000299; %s-1
tau = 1/0.1460; % s
sigma = 0.0019; % m2/umol
mu0 = 0.02;
% conditions initiales et para
% model
C0 = 1;
CI = [C0];
% Lumier
I0 = 84; % uE.m-2.s-1 (ce que nos led vont donner au max)
a = - log(0.01)/tf; % Coefficient d'absorption
I = repmat(I0,1,length(tps));
%I = I0.*exp(-a*tps);
% paramètres
par = [sigma tau kr kd];
% Simulations
%X = [Sin P0 q0];
[t u]=ode45(@(t,x)f_stage(t,x,par,I),tps,CI); |
fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| function du = f_stage(t,x,par,I)
% Résoud le système differentiel du modèle de Han
% V1 : lumière considéré comme consante.
%% ----------------------------------------------------
% Variables, Paramètres et fcts
du = zeros(1,1);
% Paramètres
sigma = par(1);
tau = par(2);
kr = par(3);
kd = par(4);
% Variable d'état
C = x(1,:);
tp = floor(t*1) +1;
%% -------------------------------------------------
% Système ODEs
du(1) = kd*(sigma*I(tp) - sigma*I(tp).*(1-C)./(I(tp)*sigma*tau + 1)- (sigma*I(tp)+kr).*C);
end |
Savez-vous quel est mon problème ?
merci beaucoup pour votre aide.
DJ