lindo_fungp.m
来自「optimization toolbox」· M 代码 · 共 36 行
M
36 行
function [f,err] = fmincon_funn(cbData,nRow,x,njdiff,dXjbase,reserved,inParam)
persistent prob Af A bf b
if nargin == 7
prob = inParam;
ind = find(prob.map==0);
Af = prob.A(ind,:);
bf = prob.b(ind);
A = spalloc(max(prob.map),size(prob.A,1),0);
for i = 1:max(prob.map)
ind = find(prob.map==i);
A(i,ind) = prob.b(ind)';
end
return
end
x = x(1:size(prob.A,2));
if nRow == -1
z = Af*x;
f = full(log(bf'*exp(z)));
else
g = A*exp(prob.A*x);
ind = find(g<1e-2);
if ~isempty(ind)
g(ind) = exp(log(1e-2)+(g(ind)-1e-2)/1e-2);
end
g = log(g);
if length(prob.h) > 0
g = [log(prob.h) + prob.G*x;g];
end
f = g(nRow+1);
end
err = 0;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?