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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
...
%boucle de résolution
while(n < nombre);
n = n+1;
assignin('caller', 'n', n);
dose = D;
R = dose./perf; % débit de perf en mg/h
[t, Y1] = ode45(@BU1diff, tspan1, y1,[], R, Ke);
assignin('caller', 'Y1', Y1);
%conditions initiales pour diff2
ytemp = Y1(((1/pas).*borne1), :);
y1 = y0 + ytemp';
[t, Y2] = ode45(@BU2diff, tspan2, y1,[], Ke);
assignin('caller', 'Y2', Y2);
% nouvelles conditions initiales pour diff2
ytemp = Y2(((1/pas).*(borne2 - borne1)), :);
y1 = y0 + ytemp';
tspan1 = tspan1 + borne2;
assignin('caller', 'tspan1', tspan1);
tspan2 = tspan2 + borne2;
assignin('caller', 'tspan2', tspan2);
Qi = [Y1;Y2];
Q16 = [Q16;Qi]; % matrice des qté pour les 31 valeurs
CONCi = Qi./Vd;
CONC16 = [CONC16; CONCi];
%résultats
PROB = PARAM(:,3);
assignin('caller', 'PROB', PROB);
TARGET = (AUCavg>=3.68 & AUCavg<=6.14);
F = TARGET.*PROB';
CUMPROBA = sum(F);
assignin('caller', 'CUMPROBA', CUMPROBA);
function dy = BU1diff(t, y, R, Ke);
dy = [R - Ke.*y(1)];
function dy = BU2diff(t, y, Ke);
dy = [- Ke.*y(1)]; |
Partager