sdpsettings.m
来自「国外专家做的求解LMI鲁棒控制的工具箱,可以相对高效的解决LMI问题」· M 代码 · 共 1,007 行 · 第 1/2 页
M
1,007 行
function options = sdpsettings(varargin)
%SDPSETTINGS Create/alter solver options structure.
%
% OPTIONS = SDPSETTINGS with no input arguments returns
% setting structure with default values
%
% OPTIONS = SDPSETTINGS('NAME1',VALUE1,'NAME2',VALUE2,...) creates a
% solution options structure OPTIONS in which the named properties have
% the specified values. Any unspecified properties have default values.
% It is sufficient to type only the leading characters that uniquely
% identify the property. Case is ignored for property names.
%
% OPTIONS = SDPSETTINGS(OLDOPTS,'NAME1',VALUE1,...) alters an existing options
% structure OLDOPTS.
%
%
% SDPSETTINGS PROPERTIES
%
% GENERAL
%
% solver - Specify solver [''|sdpt3|sedumi|sdpa|pensdp|penbmi|csdp|dsdp|maxdet|lmilab|cdd|cplex|xpress|mosek|nag|quadprog|linprog|bnb|bmibnb|kypd|mpt|none ('')]
% verbose - Display-level [0|1|2|...(0)] (0-silent, 1-normal, >1-loud)
% usex0 - Use the current values obtained from double as initial iterate [0|1 (0)]
% dimacs - Compute DIMACS error measures [0|1(1)]
%
% showprogress - Show progress of YALMIP (suitable for large problems) [0|1 (0)]
% cachesolvers - Check for available solvers only first time solvesdp is called [0|1 (0)]
% warning - Shows a warning if a problems occurs when solving a problem (infeasibility, numerical problem etc.) [0|1 (1)]
% beeponproblem - Beeps when certain warning/error occurs [ integers -2|-1|1|2|3|4|5|6|7|8|9|10|11]
% saveduals - Dual variables are saved in YALMIP [0|1 (1)]
% savesolverinput - Keep all data sent to solver [0|1 (0)]
% savesolveroutput - Keep all data returned from solver [0|1 (0)]
% removeequalities - Let YALMIP remove equality constraints [-1|0|1 (0)] (-1:with double inequalities, 0:don't, 1:by QR decomposition, 2:basis from constraints)
% convertconvexquad - Convert convex quadratic constraints to second order cones [0|1 (1)]
% radius - Add radius constraint on all pimal variables ||x||<radius [double >=0 (inf)]
% shift - Add small perturbation to (try to) enforce strict feasibility [double >=0 (0)]
% relax - Disregard integrality constraint and/or relax nonlinear terms [0 | 1 (both) 2 (relax integrality) 3 (relax nonlinear terms) (0)]
%
% SUM-OF-SQUARES
%
% options.sos, see help solvesos
%
% BRANCH AND BOUND for mixed integer programs
%
% options.bnb, see help bnb
%
% BRANCH AND BOUND for polynomial programs
%
% options.bmibnb, see help bmibnb
%
% EXTERNAL SOLVERS
%
% See solver manuals.
%
% See also SOLVESDP, SET, SDPVARsca
% Author Johan L鰂berg (ripped from odeset)
% $Id: sdpsettings.m,v 1.19 2005/07/12 07:00:45 joloef Exp $
% Print out possible values of properties.
if (nargin == 0) & (nargout == 0)
help sdpsettings
return;
end
Names = {'solver'
'verbose'
'showprogress'
'cachesolvers'
'savesolveroutput'
'savesolverinput'
'saveduals'
'removeequalities'
'convertconvexquad'
'beeponproblem'
'warning'
'dimacs'
'radius'
'shift'
'reduce'
'relax'
'usex0'
'savedebug'
'bnb.branchrule'
'bnb.method'
'bnb.verbose'
'bnb.solver'
'bnb.uppersolver'
'bnb.presolve'
'bnb.inttol'
'bnb.feastol'
'bnb.gaptol'
'bnb.maxiter'
'bnb.round'
'bmilin.trust'
'bmilin.alpha'
'bmilin.beta'
'bmilin.solver'
'bmilin.maxiterls'
'bmilin.maxiter'
'bmibnb.branchmethod'
'bmibnb.branchrule'
'bmibnb.lpreduce'
'bmibnb.lowrank'
'bmibnb.lowersolver'
'bmibnb.uppersolver'
'bmibnb.lpsolver'
'bmibnb.target'
'bmibnb.vartol'
'bmibnb.relgaptol'
'bmibnb.absgaptol'
'bmibnb.pdtol'
'bmibnb.eqtol'
'bmibnb.maxiter'
'bmibnb.maxtime'
'bmibnb.roottight'
'bmibnb.numglobal'
'cutsdp.solver'
'cutsdp.maxiter'
'cutsdp.cutlimit'
'cutsdp.feastol'
'cutsdp.variablebound'
'cutsdp.recoverdual'
'global.branchmethod'
'global.branchrule'
'global.lpreduce'
'global.roottight'
'global.lowrank'
'global.lowersolver'
'global.uppersolver'
'global.lpsolver'
'global.target'
'global.vartol'
'global.relgaptol'
'global.absgaptol'
'global.pdtol'
'global.eqtol'
'gloal.inttol'
'global.maxiter'
'global.maxtime'
'mpcvx.solver'
'mpcvx.eps'
'bpmpd.opts'
'sp.AbsTol'
'sp.RelTol'
'sp.nu'
'sp.tv'
'sp.Mfactor'
'sp.NTiters'
'maxdet.AbsTol'
'maxdet.RelTol'
'maxdet.gam'
'socp.AbsTol'
'socp.RelTol'
'socp.target'
'socp.max_iter'
'socp.nu'
'socp.outmode'
'sdpt3.vers'
'sdpt3.gam'
'sdpt3.predcorr'
'sdpt3.expon'
'sdpt3.gaptol'
'sdpt3.inftol'
'sdpt3.steptol'
'sdpt3.maxit'
'sdpt3.sw2PC_tol'
'sdpt3.use_corrprim'
'sdpt3.printyes'
'sdpt3.scale_data'
'sdpt3.schurfun'
'sdpt3.schurfun_parms'
'sdpt3.randnstate'
'sdpt3.spdensity'
'sdpt3.rmdepconstr'
'sdpt3.CACHE_SIZE'
'sdpt3.LOOP_LEVEL'
'sdpt3.cachesize'
'sdpt3.linsys_options'
'sdpt3.smallblkdim'
'sedumi.removeequalities'
'sedumi.alg'
'sedumi.beta'
'sedumi.theta'
'sedumi.free'
'sedumi.sdp'
'sedumi.stepdif'
'sedumi.w'
'sedumi.mu'
'sedumi.eps'
'sedumi.bigeps'
'sedumi.maxiter'
'sedumi.vplot'
'sedumi.stopat'
'sedumi.denq'
'sedumi.denf'
'sedumi.numtol'
'sedumi.bignumtol'
'sedumi.numlvl'
'sedumi.chol.skip'
'sedumi.chol.abstol'
'sedumi.chol.canceltol'
'sedumi.chol.maxu'
'sedumi.chol.maxuden'
'sedumi.chol.numlvl'
'sedumi.chol.deptol'
'sedumi.chol.ph1tol'
'sedumi.cg.qprec'
'sedumi.cg.restol'
'sedumi.cg.stagtol'
'sedumi.cg.maxiter'
'sedumi.cg.refine'
'dsdp.r0'
'dsdp.zbar'
'dsdp.penalty'
'dsdp.boundy'
'dsdp.gaptol'
'dsdp.maxit'
'dsdp.steptol'
'dsdp.inftol'
'dsdp.dual_bound'
'dsdp.dobjmin'
'dsdp.rho'
'dsdp.dynamicrho'
'dsdp.cc'
'dsdp.bigM'
'dsdp.mu0'
'dsdp.reuse'
'dsdp.lp_barrier'
'dsdp.objectiveconstant'
'dsdp.matrixfreesize'
'dsdp.scale_data'
'dsdp.maxlanczos'
'dsdp.max_trust_radius'
'dsdp.maxtrustradius'
'dsdp.max_mu_reduction'
'dsdp.max_infeasible_trust_radius'
'dsdp.max_infeasible_mu_reduction'
'sdplr.feastol'
'sdplr.centol'
'sdplr.dir'
'sdplr.penfac'
'sdplr.reduce'
'sdplr.limit'
'sdplr.maxrank'
'sdplr.soln_factored'
'sdpa.maxIteration'
'sdpa.epsilonStar'
'sdpa.lambdaStar'
'sdpa.omegaStar'
'sdpa.lowerBound'
'sdpa.upperBound'
'sdpa.betaStar'
'sdpa.betaBar'
'sdpa.gammaStar'
'sdpa.epsilonDash'
'sdpa.searchDir'
'sdpa.isSymmetric'
'glpk.lpsolver'
'glpk.scale'
'glpk.dual'
'glpk.price'
'glpk.relax'
'glpk.tolbnd'
'glpk.toldj'
'glpk.tolpiv'
'glpk.round'
'glpk.objll'
'glpk.objul'
'glpk.itlim'
'glpk.tmlim'
'glpk.branch'
'glpk.btrack'
'glpk.tolint'
'glpk.tolobj'
'glpk.presol'
'glpk.save'
'cplex.presol'
'cplex.niter'
'cplex.epgap'
'cplex.epagap'
'cplex.relobjdif'
'cplex.objdif'
'cplex.tilim'
'qsopt.dual'
'qsopt.primalprice'
'qsopt.dualprice'
'qsopt.scale'
'qsopt.maxiter'
'qsopt.maxtime'
'xpress.presol'
'xpress.niter'
'lpsolve.scalemode'
'cdd.method'
'clp.solver'
'clp.maxnumiterations'
'clp.maxnumseconds'
'clp.primaltolerance'
'clp.dualtolerance'
'clp.primalpivot'
'clp.dualpivot'
'pensdp.DEF'
'pensdp.PBM_MAX_ITER'
'pensdp.UM_MAX_ITER'
'pensdp.OUTPUT'
'pensdp.DENSE'
'pensdp.LS'
'pensdp.XOUT'
'pensdp.UOUT'
'pensdp.U0'
'pensdp.MU'
'pensdp.MU2'
'pensdp.PBM_EPS'
'pensdp.P_EPS'
'pensdp.UMIN'
'pensdp.ALPHA'
'pensdp.P0'
'penbmi.DEF'
'penbmi.PBM_MAX_ITER'
'penbmi.UM_MAX_ITER'
'penbmi.OUTPUT'
'penbmi.DENSE'
'penbmi.LS'
'penbmi.XOUT'
'penbmi.UOUT'
'penbmi.NWT_SYS_MODE'
'penbmi.PREC_TYPE'
'penbmi.DIMACS'
'penbmi.TR_MODE'
'penbmi.U0'
'penbmi.MU'
'penbmi.MU2'
'penbmi.PBM_EPS'
'penbmi.P_EPS'
'penbmi.UMIN'
'penbmi.ALPHA'
'penbmi.P0'
'penbmi.PEN_UP'
'penbmi.ALPHA_UP'
'penbmi.PRECISION_2'
'penbmi.CG_TOL_DIR'
'pennlp.maxit'
'pennlp.nwtiters'
'pennlp.hessianmode'
'pennlp.autoscale'
'pennlp.convex'
'pennlp.eqltymode'
'pennlp.ignoreinit'
'pennlp.ncmode'
'pennlp.nwtstopcrit'
'pennlp.penalty'
'pennlp.nwtmode'
'pennlp.prec'
'pennlp.cmaxnzs'
'pennlp.autoini'
'pennlp.ipenup'
'pennlp.precision'
'pennlp.uinit'
'pennlp.pinit'
'pennlp.alpha'
'pennlp.mu'
'pennlp.dpenup'
'pennlp.peps'
'pennlp.umin'
'pennlp.preckkt'
'pennlp.cgtolmin'
'pennlp.cgtolup'
'pennlp.uinitbox'
'pennlp.uinitnc'
'lmirank.solver'
'lmirank.maxiter'
'lmirank.eps'
'lmirank.itermod'
'lmilab.reltol'
'lmilab.maxiter'
'lmilab.feasradius'
'lmilab.L'
'miqp.solver'
'miqp.method'
'miqp.branchrule'
'miqp.order'
'miqp.verbose'
'miqp.maxqp'
'miqp.inftol'
'miqp.matrixtol'
'miqp.postol'
'miqp.integtol'
'miqp.maxQPiter'
'sos.model'
'sos.newton'
'sos.congruence'
'sos.scale'
'sos.postprocess'
'sos.sparsetol'
'sos.impsparse'
'sos.extlp'
'sos.csp'
'sos.savedecomposition'
'sos.clean'
'sos.traceobj'
'sos.reuse'
'sos.inconsistent'
'sos.separable'
'csdp.axtol'
'csdp.atytol'
'csdp.objtol'
'csdp.pinftol'
'csdp.dinftol'
'csdp.maxiter'
'csdp.minstepfrac'
'csdp.maxstepfrac'
'csdp.minstepp'
'csdp.minstepd'
'csdp.usexzgap'
'csdp.tweakgap'
'specsdp.gatol1'
'specsdp.gatol2'
'specsdp.niter=20'
'specsdp.faiseps'
'specsdp.compleps'
'specsdp.stateps'
'specsdp.penfact'
'specsdp.penmin'
'specsdp.pendiv'
'specsdp.peneps'
'specsdp.Vinit'
'specsdp.radius'
'nag.featol'
'nag.itmax'
'nag.bigbnd'
'nag.orthog'
'kypd.solver'
'kypd.lyapunovsolver'
'kypd.reduce'
'kypd.transform'
'kypd.rho'
'kypd.tol'
'moment.order'
'moment.solver'
'moment.refine'
'moment.extractrank'
'moment.rceftol'
};
% Try to run optimset
[Names,quadprognames,quadprogops] = trytoset('quadprog',Names);
[Names,linprognames,linprogops] = trytoset('linprog',Names);
[Names,bintprognames,bintprogops] = trytoset('bintprog',Names);
[Names,fminconnames,fminconops] = trytoset('fmincon',Names);
[Names,fminsearchnames,fminsearchops] = trytoset('fminsearch',Names);
obsoletenames ={
'abstol'
'reltol'
'accelerator'
'maxiters'
'abstol_init'
'reltol_init'
'accelerator_init'
'maxiters_init'
'tv'
'mfactor'
'sedumi.maxradius'
'sedumi.uselpsolver'
'sedumi.removeequalities'
'silent'
'sos.solvedual'
'reduce'};
[m,n] = size(Names);
names = lower(Names);
if (nargin>0) & isstruct(varargin{1})
options = varargin{1};
paramstart = 2;
else
paramstart = 1;
% YALMIP options
options.solver = '';
options.verbose = 1;
options.dimacs = 1;
options.warning = 1;
options.cachesolvers = 0;
options.beeponproblem = [-5 -4 -3 -2 -1];
options.showprogress = 0;
options.saveduals = 1;
options.removeequalities = 0;
options.savesolveroutput = 0;
options.savesolverinput = 0;
options.convertconvexquad = 1;
options.radius = inf;
options.relax = 0;
options.usex0 = 0;
options.shift = 0;
options.savedebug = 0;
options.sos.model = 0;
options.sos.newton = 1;
options.sos.congruence = 2;
options.sos.scale = 1;
options.sos.postprocess = 0;
options.sos.csp = 0;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?