www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@xregunispline/constraints.m
function [LB, UB,A,c,nlc,alpha]= constraints(m,X,Y,varargin) %xregUniSpline/CONSTRAINTS - returns parameters for optimisation % % [lb, ub,,A,b,nlc,alpha]= constraints(m,X,Y) % Copyright 2000-2007 The MathWorks, Inc. and Ford Global Technologies, Inc. knots= get(m.mv3xspline,'knots'); Xs= sort(X); tol = sqrt(eps); Tgt= gettarget(m,1); nk= length(knots); lb= max(Xs(3)*(1+tol),Tgt(1)+tol); ub= min(Xs(end-2)*(1-tol),Tgt(2)-tol); % set up order constraints if nk>1 % diag and - superdiag for difference constraints A= diag(ones(1,nk))-diag(ones(1,nk-1),1); % last constraint is lower bound A(end+1,1)= -1; else % just upper and lower bounds A= [1;-1]; end % last constraints are upper and lower bounds c= [-tol*ones(nk-1,1);ub;-lb]; LB=lb(ones(nk,1)); UB=ub(ones(nk,1)); h=diff([-1,sort(knots),1])/(Tgt(2)-Tgt(1)); alpha= -0.1/(sum(log((nk+1)*h))); if ~isfinite(alpha) alpha=-0.1; end % number of nonlinear constraints nlc= 0;