bonjour à tous j'ai un problème avec la résolution d'une équa diff sous matlab et je ne comprends pas pourquoi :
erreur :
script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2When the first argument to ode45 is a function handle, the tspan argument must have at least two elements.
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
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);
Savez-vous quel est mon problème ?
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
merci beaucoup pour votre aide.
DJ
Partager