www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@localbspline/constraints.m
function [LB,UB,A,c,nlc,alpha]= constraints(bs,X,Y,B) %xregUniSpline/CONSTRAINTS - returns parameters for optimisation % % [lb, ub,A,b,nlc,alpha]= constraints(m,X,Y) % Copyright 2000-2004 The MathWorks, Inc. and Ford Global Technologies, Inc. Ns= size(X,3); nk= get(bs.xreg3xspline,'numknots'); knots= get(bs.xreg3xspline,'knots'); alpha= zeros(Ns,1); Tgt=gettarget(bs,1); TOL= sqrt(eps)*max(abs(Tgt)); LB= zeros(nk,Ns); UB=LB; for i=1:Ns Xs= sort(X{i}); if nargin>3 bs= update(bs,B(:,i)); knots= get(bs.xreg3xspline,'knots'); end % penalty coeff h=diff([Tgt(1),knots(:)',Tgt(2)])/(Tgt(2)-Tgt(1)); div= (sum(log((nk+1)*h))); if div<0.01 alpha(i)= -0.1/div; else alpha(i)= -0.1/0.01; end % Bounds LB(:,i)= max(Xs(3),Tgt(1))+TOL; UB(:,i)= min(Tgt(2),Xs(end-2))-TOL ; end alpha(~isfinite(alpha))=-0.1; % no linear constraints A= []; c= []; % number of nonlinear constraints nlc= 0;