在哪里可以找到Matlab中屏障功能的实现?
我正在尝试查看算法interior-point
是如何实现的,这就是我在fmincon.m
elseif strcmpi(OUTPUT.algorithm,interiorPoint)
defaultopt.MaxIter = 1000; defaultopt.MaxFunEvals = 3000; defaultopt.TolX = 1e-10;
defaultopt.Hessian = 'bfgs';
mEq = lin_eq + sizes.mNonlinEq + nnz(xIndices.fixed); % number of equalities
% Interior-point-specific options. Default values for lbfgs memory is 10, and
% ldl pivot threshold is 0.01
options = getIpOptions(options,sizes.nVar,mEq,flags.constr,defaultopt,10,0.01);
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = barrier(funfcn,X,A,B,Aeq,Beq,l,u,confcn,options.HessFcn, ...
initVals.f,initVals.g,initVals.ncineq,initVals.nceq,initVals.gnc,initVals.gnceq,HESSIAN, ...
xIndices,options,optionFeedback,finDiffFlags,varargin{:});
所以我想知道什么是障碍但失败了。
edit barrier.m
我得到了:
答案 0 :(得分:1)
屏障功能在p-file中定义(精确地位于MATLABROOT/toolbox/optim/optim/barrier.p
)。
不幸的是,p文件的重点在于它们被混淆了,即你无法读取源代码。这是关于SO的一个反复问题,例如见this thread。
我担心你无法阅读barrier
内的内容。也许如果你问Mathworks,他们可以给你一些关于内容的信息。
最佳