ADMITestimateADMITestimate
ADMITestimate estimates the variables of interest
OPTRESULT = ADMITestimate(OPTINFO, [OPTIONS])
OPTRESULT = ADMITestimate(FILENAME,[OPTIONS])
Initiates estimation procedure to obtain an outer-estimate of the
feasible region. Current implementation employs the outer-bounding
procedure and the bisectioning procedure.
The first input is either a variable OPTINFO (see ADMITcompose),
that contains all the information needed for the estimation procedures,
or it is a string FILENAME with file FILENAME.mat containing OPTINFO.
OPTIONS is a valid ADMIToptions object. It can be provided either
directly as a second parameter, or in the same file FILENAME.mat, if it
was the first input. If none provided, default options are used.
Inputs
[...] : square brackets notify that input is optional.
OPTINFO : valid ADMITinfo object
FILENAME : name of the .mat file containing valid optInfo object
OPTIONS : valid ADMIToptions object
Returns
OPTRESULT : ADMITresults object that contains complete information
about the performed estimation procedures in this function.
This object can be used then to plot the estimated data
(both single estimated bounds as a result of outer-bounding
procedure and bisectioning subregions) and to extract the
estimated data for further use as input data (see
ADMITimportData).
Examples
opt = ADMITproject();
% Estimate intersection of a circle and a hyperbole
opt = opt + ADMITconstraint('a^2 + b^2 <= 2') + ...
ADMITconstraint('a := [-10,10]') + ...
ADMITconstraint('b := [-10,10]') + ...
ADMITconstraint('a*b >= 0.5');
opt = opt + ADMITvariable('a := {ofInterest}') + ...
ADMITvariable('b := {ofInterest}')
ops = ADMITsetOptions('ESTIMATE.outerBounding.iterations',1,...
'ESTIMATE.outerBounding.useOptimization',0,...
'ESTIMATE.bisectioning.use',0,...
'ESTIMATE.bisectioning.splitDepth',5,...
'ESTIMATE.presolve.only',1,...
'ESTIMATE.presolve.mode',3,...
'DISPLAY.verboseLevel',1)
[optInfo,opt] = ADMITcompose(opt,ops)
% 1) perform outerbounding and plot results
optResult = ADMITestimate(optInfo,ops)
ADMITplot(optResult);
% 2) perform bisectioning using results from outer-bounding;
% results are plotted dynamically.
optInfo = ADMITcompose(optInfo,'setBounds',optResult,ops)
ops = ADMITsetOptions(ops,'ESTIMATE.outerBounding.use',0,...
'ESTIMATE.bisectioning.use',1);
optResult = ADMITestimate(optInfo,ops)
% 3) plot solution set
hold on
plot(sqrt(2)*cos(0:0.01:2*pi),sqrt(2)*sin(0:0.01:2*pi),'linewidth',2)
a = [-2:0.01:2];
plot(a,0.5./a,'linewidth',2)
ylim([-2,2])
xlim([-2,2])
hold off