📄 getalp.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% getalp.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [alp,lba,uba,ier]=getalp(alpu,alpo,gTp,pTGp);% get minimizer alp in [alpu,alpo] for a univariate quadratic% q(alp)=alp*gTp+0.5*alp^2*pTGp% lba lower bound active% uba upper bound active%% ier 0 (finite minimizer) % 1 (unbounded minimum)%function [alp,lba,uba,ier]=getalp(alpu,alpo,gTp,pTGp);lba=0;uba=0;% determine unboundednessier=0;if alpu==-inf & ( pTGp<0 | (pTGp==0 & gTp>0) ), ier=1; lba=1;end;if alpo==inf & (pTGp<0 | (pTGp==0 & gTp<0) ), ier=1; uba=1; end;if ier, alp=NaN; return; end; % determine activityif pTGp==0 & gTp==0, alp=0;elseif pTGp<=0, % concave case minimal at a bound if alpu==-inf, lba=0; elseif alpo== inf, lba=1; else lba = (2*gTp+(alpu+alpo)*pTGp>0); end; uba = ~lba;else alp=-gTp/pTGp; % unconstrained optimal step lba = (alp <= alpu); % lower bound active uba = (alp >= alpo); % upper bound activeend;if lba, alp=alpu; end;if uba, alp=alpo; end; % print?if abs(alp)==inf, gTp,pTGp,alpu,alpo,alp,lba,uba,ier, end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -