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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
When the first argument to ode45 is a function handle, the tspan argument must have at
least two elements.
script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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