Matlab 中的障碍函数
Barrier Function in Matlab
在哪里可以找到障碍函数在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
我得到:
屏障函数定义在p-file中(正好位于MATLABROOT/toolbox/optim/optim/barrier.p
中)。
不幸的是,p 文件的关键在于它们被混淆了,即您无法阅读源代码。这是关于 SO 的一个反复出现的问题,例如参见 [=13=]。
恐怕你看不懂里面的内容barrier
。也许如果你问一下 Mathworks,他们可以给你一些关于内容的信息。
最佳
在哪里可以找到障碍函数在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
我得到:
屏障函数定义在p-file中(正好位于MATLABROOT/toolbox/optim/optim/barrier.p
中)。
不幸的是,p 文件的关键在于它们被混淆了,即您无法阅读源代码。这是关于 SO 的一个反复出现的问题,例如参见 [=13=]。
恐怕你看不懂里面的内容barrier
。也许如果你问一下 Mathworks,他们可以给你一些关于内容的信息。
最佳