www.gusucode.com > mbcexpr 工具箱 matlab 源码程序 > mbcexpr/@cglookup/GradientConstraints.m

    function LT= GradientConstraints(LT,MaxGrad)
%GRADIENTCONSTRAINTS 
% 
% LT= GradientConstraints(LT,MaxGrad)

%  Copyright 2005 The MathWorks, Inc.

V= get(LT,'values');
Bnds= get(LT,'range');

% linear gradient constraints
[A,C,nzt]= deltablecon(LT,[],MaxGrad);
V0= V(nzt);
n= length(V0);
Bnds= repmat(Bnds,1,n);

% solve qp to keep values as close as possible to current values and
% satisfy gradients and bounds
qopt= optimset(optimset('quadprog'),...
    'largescale','off',... 
    'display','none');
[dV,FVAL,EXITFLAG] =quadprog(eye(n),zeros(1,n),A,C-A*V0,[],[],...
    Bnds(:,1)-V0,Bnds(:,2)-V0,zeros(n,1),qopt);
V(nzt)= V0+dV;

LT= set(LT,'values',{V,'Gradient Constraints'});