Matlab中的障碍函数

时间:2015-06-16 03:33:50

标签: algorithm matlab barrier

在哪里可以找到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

我得到了: enter image description here

1 个答案:

答案 0 :(得分:1)

屏障功能在p-file中定义(精确地位于MATLABROOT/toolbox/optim/optim/barrier.p)。

不幸的是,p文件的重点在于它们被混淆了,你无法读取源代码。这是关于SO的一个反复问题,例如见this thread

我担心你无法阅读barrier内的内容。也许如果你问Mathworks,他们可以给你一些关于内容的信息。

最佳