Dynamic-Calibration/utils/YALMIP-master/extras/fmincon_fungrad.m

19 lines
732 B
Matlab
Executable File

function df = fmincon_fun(x,params)
xevaled = zeros(1,length(params.interfacedata.c));
xevaled(params.linearindicies) = x;
% Experimental support for arbitrary functions
if ~isempty(params.interfacedata.evalMap)
for i = 1:length(params.interfacedata.evalMap)
xevaled(params.interfacedata.evalVariables(i)) = feval( params.interfacedata.evalMap{i}.fcn,xevaled(params.interfacedata.evalMap{i}.variableIndex));
end
end
if nnz(params.interfacedata.c(params.nonlinearindicies)) == 0 & isempty(params.interfacedata.evalMap)
%At most quadratic!
df = params.interfacedata.c(params.linearindicies) + 2*params.interfacedata.Q(params.linearindicies,params.linearindicies)*x;
else
error('not implmented')
end