Dynamic-Calibration/utils/YALMIP-master/operators/absexp.m

42 lines
972 B
Mathematica
Raw Permalink Normal View History

2019-12-18 11:25:45 +00:00
function varargout = absexp(varargin)
switch class(varargin{1})
case 'double'
varargout{1} = abs(exp(varargin{1}) - 1);
case 'sdpvar'
varargout{1} = InstantiateBuiltInScalar(mfilename,varargin{:});
case 'char'
t = varargin{2};
X = varargin{3};
F = SetupEvaluationVariable(varargin{:});
operator = struct('convexity','none','monotonicity','none','definiteness','none','model','callback');
operator.bounds = @bounds;
varargout{1} = F;
varargout{2} = operator;
varargout{3} = X;
otherwise
error('SDPVAR/LOG called with CHAR argument?');
end
function [L,U] = bounds(xL,xU)
if xL <= 0 & xU>=0
% The variable is not bounded enough yet
L = 0;
U = max([abs(exp(xL)-1) abs(exp(xU)-1)]);
else
U = max([abs(exp(xL)-1) abs(exp(xU)-1)]);
L = min([abs(exp(xL)-1) abs(exp(xU)-1)]);
end
function [Ax, Ay, b] = convexhull(xL,xU)
Ax = [];
Ay = [];
b = [];