• Tidak ada hasil yang ditemukan

BAB V KESIMPULAN DAN SARAN

5.2 Saran

Pada penelitian ini dibahas mengenai analisis kestabilan model penyebaran virus HIV dengan menggunakan laju pertumbuhan sel CD4 yang konstan. Oleh karena itu terbuka peluang untuk pembaca melakukan penelitian selanjutnya menggunakan laju pertumbuhan sel CD4 yang tidak konstan. Selain itu juga untuk hasil yang lebih baik, dapat menggunakan kondisi free final state dan free final time atau dengan kata lain bebas menentukan waktu dan state akhirnya, karena pada skripsi ini waktu akhir telah ditentukan (fix final time) dan state akhir yang bebas (free final state), sehingga tidak dapat mengetahui pada hari ke berapa state

DAFTAR PUSTAKA

1. Anton, H., 1987, Aljabar Linier Elementer, Erlangga, Jakarta

2. Bronson R., Costa G.B., 2007, Differential Equations, The Mc Grow-Hill Companies,Inc., New Jersey

3. Felissa R. L., Jerry D. D., 2009, The person with HIV/AIDS: nursing perspectives, Springer Publishing Company, Inggris

4. Graham, A., dan Gurghes, D.N., Introduction to Control Theory Including Optimal Control, Halsted Press, New York

5. http://kkp-balikpapan.blogspot.com/2011/05/seputar-cd4.html, 3 April 2012 6. http://www.cdc.gov/hiv/resources/qa/transmission.htm, 9 April 2012

7. Jenny P., Maylani L., Delene P., Monica J., 2006. Working with HIV/AIDS, Juta Legal and Academic Publishers, Cape Town

8. Jones, D.S., Sleeman B.D., 2003, Differential Equations and Mathematical Biology, CRC Press, New York

9. Lewis F.L., Syrmos V.L., 1995, Optimal Control, Willy Interscience, Canada 10.Merkin, D.R., 1997, Introduction to the Theory of Stability, Springer, New

York

11. Naidu D.S., 2002, Optimal Control Systems, CRC Press, New York 12. Olsder, G.J., 1992, Mathematical System Theory, Delft, The Natherland 13. Schoub B. D., 1999, AIDS and HIV in Perspective: A Guide to

Understanding the Virus and its Consequences. Cambridge University Press, Inggris

14. Shirazian M., Farahi M. H., 2010, Optimal Control Strategy for a Fully Determined HIV Model, vol.1, Intelligent Control and Automation, pg. 15-19 15.Sontag E.D., Thoma M., 2001, Control Theory for Linier Systems, Springer,

London

16. Vandermeer, J., 1981, Elementary Mathematical Ecology, A Wiley-Interscience Publication, Canada

17. Wardah, F., 2012, http://www.voaindonesia.com/content/penderita-baru-hivaids-di-jakarta-berjumlah-1184-orang-134637773/101326.html, 15 Maret 2012

18.Weisstein, Eric W., 1999, Eigen Decomposition, http://mathworld.wolfram.com/EigenDecomposition.html , 24 April 2012 19. Zhou, K. Doyle, J. C., dan Glover, K., 1996, Robust and Optimal Control,

Lampiran 1

Skrip M-File pada MATLAB

untuk Model Penyebaran Virus HIV Tanpa Pengontrol

% A MATLAB example described in detail in the technical report %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %

% DOTcvp - Dynamic Optimization Toolbox with CVP approach for %

% handling continuous and mixed-integer dynamic optimization problems %

% Copyright (C) 2007-2010 %

% Tomas Hirmajer et al., [email protected] %

% %

% The DOTcvp toolbox is completely free of charge under the creative %

% commons license. The conditions of the license can be found on the %

% following web page: % % http://creativecommons.org/licenses/by-nc-nd/3.0/ % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %

clear mex; clear all; close all;

% --- % % Initialization:

% --- %

data.name = 'HIVTanpaKontrol';

data.compiler = 'None'; %['None'|'FORTRAN']

% --- % % Settings for IVP (ODEs, sensitivities):

% --- %

data.odes.Def_FORTRAN = {}; %this option is needed only for

FORTRAN parameters definition, e.g. {'double precision k10, k20, ..'}

data.odes.parameters = {}; %constant parameters before ODE

{'T=300','..}

data.odes.Def_MATLAB = {}; %this option is needed only for

MATLAB parameters definition

data.odes.res(1) = {

data.odes.res(2) = {

'0.00000042163*y(1)*y(3)-0.0999*y(2)'};

data.odes.res(3) = {'90.67*y(2)-0.2*y(3)'};

data.odes.black_box = {'None','1','FunctionName'};

%['None'|'Full'],[penalty coefficient for all constraints],[a black box model function name]

data.odes.ic = [1000 0 7000];

data.odes.NUMs = size(data.odes.res,2); %number of

state variables (y)

data.odes.t0 = 0.0; %initial time

data.odes.tf = 1000.0; %final time

data.odes.NonlinearSolver = 'Newton'; %['Newton'|'Functional']

/Newton for stiff problems; Functional for non-stiff problems

data.odes.LinearSolver = 'Dense'; %direct

['Dense'|'Diag'|'Band']; iterative ['GMRES'|'BiCGStab'|'TFQMR'] /for the Newton NLS

data.odes.LMM = 'Adams'; %['Adams'|'BDF'] /Adams for

non-stiff problems; BDF for stiff problems

data.odes.MaxNumStep = 500; %maximum number of steps

data.odes.RelTol = 1*10^(-7); %IVP relative tolerance

level

data.odes.AbsTol = 1*10^(-7); %IVP absolute tolerance

level

data.sens.SensAbsTol = 1*10^(-7); %absolute tolerance for

sensitivity variables

data.sens.SensMethod = 'Simultaneous';

%['Staggered'|'Staggered1'|'Simultaneous']

data.sens.SensErrorControl= 'on'; %['on'|'off']

% --- % % NLP definition:

% --- %

data.nlp.RHO = 10; %number of time intervals

data.nlp.problem = 'min'; %['min'|'max']

data.nlp.J0 = '0'; %cost function: min-max(cost

function)

data.nlp.u0 = [0]; %initial value for control values

data.nlp.lb = [0]; %lower bounds for control values

data.nlp.ub = [1]; %upper bounds for control values

data.nlp.p0 = []; %initial values for

time-independent parameters

data.nlp.lbp = []; %lower bounds for time-independent

parameters

data.nlp.ubp = []; %upper bounds for time-independent

parameters

data.nlp.solver = 'FMINCON';

%['FMINCON'|'IPOPT'|'SRES'|'DE'|'ACOMI'|'MISQP'|'MITS']

data.nlp.SolverSettings = 'None'; %insert the name of the file

that contains settings for NLP solver, if does not exist use ['None']

data.nlp.NLPtol = 1*10^(-5); %NLP tolerance level

data.nlp.GradMethod = 'SensitivityEq';

%['SensitivityEq'|'FiniteDifference'|'None']

data.nlp.MaxIter = 1000; %Maximum number of iterations

data.nlp.MaxCPUTime = 60*60*0.50; %Maximum CPU time of the

data.nlp.approximation = 'PWC'; %['PWC'|'PWL'] PWL only for: FMINCON & without the free time problem

data.nlp.FreeTime = 'off'; %['on'|'off'] set 'on' if free

time is considered

data.nlp.t0Time = [data.odes.tf/data.nlp.RHO]; %initial

size of the time intervals, e.g. [data.odes.tf/data.nlp.RHO] or for the each time interval separately [dt1 dt2 dt3]

data.nlp.lbTime = 0.01; %lower bound of the time

intervals

data.nlp.ubTime = data.odes.tf; %upper bound of the time

intervals

data.nlp.NUMc = size(data.nlp.u0,2); %number of

control variables (u)

data.nlp.NUMi = 0; %number of integer variables (u)

taken from the last control variables, if not equal to 0 you need to use some MINLP solver ['ACOMI'|'MISQP'|'MITS']

data.nlp.NUMp = size(data.nlp.p0,2); %number of

time-independent parameters (p)

% --- % % Equality constraints (ECs):

% --- %

data.nlp.eq.status = 'off'; %['on'|'off'] ECs

data.nlp.eq.NEC = 1; %number of active ECs

data.nlp.eq.eq(1) = {''};

data.nlp.eq.time(1) = data.nlp.RHO;

data.nlp.eq.PenaltyFun = 'off'; %['on'|'off'] ECs penalty

function

data.nlp.eq.PenaltyCoe = [1.0];

%J0=J0+data.nlp.eq.PenaltyCoe*ViolationOfEqualityConstraint /* only for stochastic solvers */

% --- % % Inequality /path/ constraints (INECs):

% --- %

data.nlp.ineq.status = 'off'; %['on'|'off'] INECs

data.nlp.ineq.NEC = 2; %number of active INECs

data.nlp.ineq.InNUM = 1; %how many inequality constraints

are '>' else '<'

data.nlp.ineq.eq(1) = {''};

data.nlp.ineq.eq(2) = {''};

data.nlp.ineq.Tol = 0.0005; %tolerance level of violation

of INECs

data.nlp.ineq.PenaltyFun = 'off'; %['on'|'off'] INECs penalty

function

data.nlp.ineq.PenaltyCoe = [1.0 1.0];

%J0=J0+data.nlp.ineq.PenaltyCoe*ViolationOfInequalityConstraint /* for every inequality constraint one parameter */

% --- % % Options for setting of the final output:

% --- %

data.options.intermediate = 'off'; %['on'|'off'|'silent'] display

of the intermediate results

data.options.display = 'on'; %['on'|'off'] display of the

data.options.title = 'on'; %['on'|'off'] display of the figure title

data.options.state = 'on'; %['on'|'off'] display of the

state trajectory

data.options.control = 'on'; %['on'|'off'] display of the

control trajectory

data.options.ConvergCurve = 'on'; %['on'|'off'] display of the

convergence curve

data.options.Pict_Format = 'eps'; %['eps'|'wmf'|'both'] save

figures as

data.options.report = 'on'; %['on'|'off'] save data in the

dat file

data.options.commands = {''}; %additional commands, e.g.

'figure(1),.. '

data.options.trajectories = data.odes.NUMs; %how many state

trajectories will be displayed

data.options.profiler = 'off'; %['on'|'off']

data.options.multistart = 1; %set 1 if the multistart is off,

otherwise you have to put here some integer value

data.options.action = 'single-optimization';

%['single-optimization'|'re-optimization'|'hybrid-strategy'|'simulation'] % --- %

% Call of the main function (you do not change this!): % --- %

Lampiran 2

Skrip M-File pada MATLAB

untuk Model Penyebaran Virus HIV Dengan Pengontrol

% A MATLAB example described in detail in the technical report %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %

% DOTcvp - Dynamic Optimization Toolbox with CVP approach for %

% handling continuous and mixed-integer dynamic optimization problems %

% Copyright (C) 2007-2010 %

% Tomas Hirmajer et al., [email protected] %

% %

% The DOTcvp toolbox is completely free of charge under the creative %

% commons license. The conditions of the license can be found on the %

% following web page: % % http://creativecommons.org/licenses/by-nc-nd/3.0/ % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %

clear mex; clear all; close all;

% --- % % Initialization:

% --- %

data.name = 'HIVDenganKontrol';

data.compiler = 'None'; %['None'|'FORTRAN']

% --- % % Settings for IVP (ODEs, sensitivities):

% --- %

data.odes.Def_FORTRAN = {}; %this option is needed only for

FORTRAN parameters definition, e.g. {'double precision k10, k20, ..'}

data.odes.parameters = {}; %constant parameters before ODE

{'T=300','..}

data.odes.Def_MATLAB = {}; %this option is needed only for

MATLAB parameters definition

data.odes.res(1) = {

data.odes.res(2) = {

'0.00000042163*y(1)*y(3)-0.00000042163*y(1)*y(3)*u(1)-0.0999*y(2)'};

data.odes.res(3) = {'90.67*y(2)-0.2*y(3)'};

data.odes.res(4) = {'y(1)-(1/2*110*(u(1))^2)'};

data.odes.black_box = {'None','1','FunctionName'};

%['None'|'Full'],[penalty coefficient for all constraints],[a black box model function name]

data.odes.ic = [363 57 28860 0];

data.odes.NUMs = size(data.odes.res,2); %number of

state variables (y)

data.odes.t0 = 0.0; %initial time

data.odes.tf = 1000.0; %final time

data.odes.NonlinearSolver = 'Newton'; %['Newton'|'Functional']

/Newton for stiff problems; Functional for non-stiff problems

data.odes.LinearSolver = 'Dense'; %direct

['Dense'|'Diag'|'Band']; iterative ['GMRES'|'BiCGStab'|'TFQMR'] /for the Newton NLS

data.odes.LMM = 'Adams'; %['Adams'|'BDF'] /Adams for

non-stiff problems; BDF for stiff problems

data.odes.MaxNumStep = 500; %maximum number of steps

data.odes.RelTol = 1*10^(-7); %IVP relative tolerance

level

data.odes.AbsTol = 1*10^(-7); %IVP absolute tolerance

level

data.sens.SensAbsTol = 1*10^(-7); %absolute tolerance for

sensitivity variables

data.sens.SensMethod = 'Simultaneous';

%['Staggered'|'Staggered1'|'Simultaneous']

data.sens.SensErrorControl= 'on'; %['on'|'off']

% --- % % NLP definition:

% --- %

data.nlp.RHO = 20; %number of time intervals

data.nlp.problem = 'max'; %['min'|'max']

data.nlp.J0 = 'y(4)'; %cost function: min-max(cost

function)

data.nlp.u0 = [0]; %initial value for control values

data.nlp.lb = [0]; %lower bounds for control values

data.nlp.ub = [1]; %upper bounds for control values

data.nlp.p0 = []; %initial values for

time-independent parameters

data.nlp.lbp = []; %lower bounds for time-independent

parameters

data.nlp.ubp = []; %upper bounds for time-independent

parameters

data.nlp.solver = 'FMINCON';

%['FMINCON'|'IPOPT'|'SRES'|'DE'|'ACOMI'|'MISQP'|'MITS']

data.nlp.SolverSettings = 'None'; %insert the name of the file

that contains settings for NLP solver, if does not exist use ['None']

data.nlp.NLPtol = 1*10^(-5); %NLP tolerance level

data.nlp.GradMethod = 'SensitivityEq';

%['SensitivityEq'|'FiniteDifference'|'None']

data.nlp.MaxCPUTime = 60*60*0.50; %Maximum CPU time of the optimization (60*60*0.25) = 15 minutes

data.nlp.approximation = 'PWC'; %['PWC'|'PWL'] PWL only for:

FMINCON & without the free time problem

data.nlp.FreeTime = 'off'; %['on'|'off'] set 'on' if free

time is considered

data.nlp.t0Time = [data.odes.tf/data.nlp.RHO]; %initial

size of the time intervals, e.g. [data.odes.tf/data.nlp.RHO] or for the each time interval separately [dt1 dt2 dt3]

data.nlp.lbTime = 0.01; %lower bound of the time

intervals

data.nlp.ubTime = data.odes.tf; %upper bound of the time

intervals

data.nlp.NUMc = size(data.nlp.u0,2); %number of

control variables (u)

data.nlp.NUMi = 0; %number of integer variables (u)

taken from the last control variables, if not equal to 0 you need to use some MINLP solver ['ACOMI'|'MISQP'|'MITS']

data.nlp.NUMp = size(data.nlp.p0,2); %number of

time-independent parameters (p)

% --- % % Equality constraints (ECs):

% --- %

data.nlp.eq.status = 'off'; %['on'|'off'] ECs

data.nlp.eq.NEC = 1; %number of active ECs

data.nlp.eq.eq(1) = {''};

data.nlp.eq.time(1) = data.nlp.RHO;

data.nlp.eq.PenaltyFun = 'off'; %['on'|'off'] ECs penalty

function

data.nlp.eq.PenaltyCoe = [1.0];

%J0=J0+data.nlp.eq.PenaltyCoe*ViolationOfEqualityConstraint /* only for stochastic solvers */

% --- % % Inequality /path/ constraints (INECs):

% --- %

data.nlp.ineq.status = 'off'; %['on'|'off'] INECs

data.nlp.ineq.NEC = 2; %number of active INECs

data.nlp.ineq.InNUM = 1; %how many inequality constraints

are '>' else '<'

data.nlp.ineq.eq(1) = {''};

data.nlp.ineq.eq(2) = {''};

data.nlp.ineq.Tol = 0.0005; %tolerance level of violation

of INECs

data.nlp.ineq.PenaltyFun = 'off'; %['on'|'off'] INECs penalty

function

data.nlp.ineq.PenaltyCoe = [1.0 1.0];

%J0=J0+data.nlp.ineq.PenaltyCoe*ViolationOfInequalityConstraint /* for every inequality constraint one parameter */

% --- % % Options for setting of the final output:

% --- %

data.options.intermediate = 'off'; %['on'|'off'|'silent'] display

data.options.display = 'on'; %['on'|'off'] display of the figures

data.options.title = 'on'; %['on'|'off'] display of the

figure title

data.options.state = 'on'; %['on'|'off'] display of the

state trajectory

data.options.control = 'on'; %['on'|'off'] display of the

control trajectory

data.options.ConvergCurve = 'on'; %['on'|'off'] display of the

convergence curve

data.options.Pict_Format = 'eps'; %['eps'|'wmf'|'both'] save

figures as

data.options.report = 'on'; %['on'|'off'] save data in the

dat file

data.options.commands = {''}; %additional commands, e.g.

'figure(1),.. '

data.options.trajectories = data.odes.NUMs-1; %how many state

trajectories will be displayed

data.options.profiler = 'off'; %['on'|'off']

data.options.multistart = 1; %set 1 if the multistart is off,

otherwise you have to put here some integer value

data.options.action = 're-optimization';

%['single-optimization'|'re-optimization'|'hybrid-strategy'|'simulation'] % --- %

% Call of the main function (you do not change this!): % --- %

Lampiran 3

Output pada Command Window MATLAB untuk Model Penyebaran Virus HIV Tanpa Pengontrol

________________________________________________________ DOTcvp: Dynamic Optimization Toolbox with CVP approach for handling continuous and mixed-integer DO problems Main author: Tomas Hirmajer, [email protected] Coauthors: Eva Balsa-Canto and Julio R. Banga Web pages: http://www.iim.csic.es/~dotcvp/ http://www.iim.csic.es/~dotcvpsb/ Core version: DOTcvp_R2010_E3

________________________________________________________ ________________________________________________________ DOTcvp - a Module for Single Optimization

________________________________________________________

!!! Warning: gnumex or mingw not find -> FORTRAN option is switched off !!! Saving of the ODE ... done!

Generation of the file: cvm_rhs.m (ODE - MATLAB) ... done! Saving of the parameters ... done!

Generation of the file: cvm_d/bjac.m (Jacobian - MATLAB) ... done! Saving of the cost function (J0) ... done!

Generation of the gradients (J0) ... done!

Generation of the file: cvm_rhsS.m (sensitivities - MATLAB) ... done! Generation of the file: temp_cvfdx.m (main IVP file) ... done!

Optimizing of the process (N=10; min(J0); FMINCON; HIVTanpaKontrol) ... in progress

Default settings are loading ... done!

Generation of the file: cvm_rhs.m (ODE - MATLAB) ... done! Generation of the file: temp_cvfdx.m (main IVP file) ... done! Simulation of the process ... done!

Save of the data ... done! Deleting of the temporary files ... done! ____________________________

Final results [single-optimization]:

... Problem name: HIVTanpaKontrol ... NLP or MINLP solver: FMINCON

. Number of time intervals: 10

... IVP relative tolerance: 1.000000e-007 ... IVP absolute tolerance: 1.000000e-007 . Sens. absolute tolerance: 1.000000e-007 ... NLP tolerance: 1.000000e-005

... Final state values: 5.232428e+002 3.357243e+001 1.521358e+004 ... 1th optimal control: 0.000000e+000 0.000000e+000 0.000000e+000

0.000000e+000 0.000000e+000 0.000000e+000 0.000000e+000 0.000000e+000 0.000000e+000 0.000000e+000

____________________________

... Final CPUtime: 3.58802300 seconds . Cost function [min(J_0)]: 0.00000000

Lampiran 4

Output pada Command Window MATLAB untuk Model Penyebaran Virus HIV Dengan Pengontrol

________________________________________________________ DOTcvp: Dynamic Optimization Toolbox with CVP approach for handling continuous and mixed-integer DO problems Main author: Tomas Hirmajer, [email protected] Coauthors: Eva Balsa-Canto and Julio R. Banga Web pages: http://www.iim.csic.es/~dotcvp/ http://www.iim.csic.es/~dotcvpsb/ Core version: DOTcvp_R2010_E3

________________________________________________________ ________________________________________________________ DOTcvp - a Module for Single Optimization

________________________________________________________

!!! Warning: gnumex or mingw not find -> FORTRAN option is switched off !!! Saving of the ODE ... done!

Generation of the file: cvm_rhs.m (ODE - MATLAB) ... done! Saving of the parameters ... done!

Generation of the file: cvm_d/bjac.m (Jacobian - MATLAB) ... done! Saving of the cost function (J0) ... done!

Generation of the gradients (J0) ... done!

Generation of the file: cvm_rhsS.m (sensitivities - MATLAB) ... done! Generation of the file: temp_cvfdx.m (main IVP file) ... done!

Optimizing of the process (N=20; max(J0); FMINCON; HIVDenganKontrol) ... in progress

Default settings are loading ... done!

Generation of the file: cvm_rhs.m (ODE - MATLAB) ... done! Generation of the file: temp_cvfdx.m (main IVP file) ... done! Simulation of the process ... done!

Save of the data ... done! Deleting of the temporary files ... done! ____________________________

Final results [single-optimization]:

... Problem name: HIVDenganKontrol ... NLP or MINLP solver: FMINCON . Number of time intervals: 20

... IVP relative tolerance: 1.000000e-007 ... IVP absolute tolerance: 1.000000e-007 . Sens. absolute tolerance: 1.000000e-007 ... NLP tolerance: 1.000000e-005

... Final state values: 9.870580e+002 4.049094e+000 1.527869e+003 8.961011e+005

... 1th optimal control: 9.999909e-001 5.349776e-001 4.665382e-001 4.668006e-001 4.704759e-001 4.709377e-001 4.706718e-001 4.699118e-001 4.683051e-001 4.654527e-001 4.608519e-001 4.525102e-001 4.416731e-001 4.297100e-001 4.167878e-001 3.997642e-001 3.731624e-001 3.310193e-001 2.589508e-001 1.083172e-001

____________________________

... Final CPUtime: 154.70619170 seconds . Cost function [max(J_0)]: 896101.13263563

Dokumen terkait