evallmi
Given particular instance of decision variables, evaluate all variable terms in system of LMIs
Syntax
evalsys = evallmi(lmisys,decvars)
Description
evallmi
evaluates all LMI constraints for a particular instance decvars
of the vector of decision variables. Recall that decvars
fully determines the values of the matrix variables X1, . . ., XK. The “evaluation” consists of replacing all terms involving X1, . . ., XK by their matrix value. The output evalsys
is an LMI system containing only constant terms.
The function evallmi
is useful for validation of the LMI solvers' output. The vector returned by these solvers can be fed directly to evallmi
to evaluate all variable terms. The matrix values of the left and right sides of each LMI are then returned by showlmi
.
Observation
evallmi
is meant to operate on the output of the LMI solvers. To evaluate all LMIs for particular instances of the matrix variables X1, . . ., XK, first form the corresponding decision vector x with mat2dec
and then call evallmi
with x as input.
Examples
Consider the feasibility problem of finding X > 0 such that
ATXA – X + I < 0
where
This LMI system is defined by:
setlmis([]) X = lmivar(1,[2 1]) % full symmetric X lmiterm([1 1 1 X],A',A) % LMI #1: A'*X*A lmiterm([1 1 1 X],-1,1) % LMI #1: -X lmiterm([1 1 1 0],1) % LMI #1: I lmiterm([-2 1 1 X],1,1) % LMI #2: X lmis = getlmis
To compute a solution xfeas
, call feasp
by
[tmin,xfeas] = feasp(lmis)
The result is
tmin = -4.7117e+00 xfeas' = 1.1029e+02 -1.1519e+01 1.1942e+02
The LMI constraints are therefore feasible since tmin
< 0. The solution X corresponding to the feasible decision vector xfeas
would be given by X = dec2mat(lmis,xfeas,X)
.
To check that xfeas
is indeed feasible, evaluate all LMI constraints by typing
evals = evallmi(lmis,xfeas)
The left and right sides of the first and second LMIs are then given by
[lhs1,rhs1] = showlmi(evals,1) [lhs2,rhs2] = showlmi(evals,2)
and the test
eig(lhs1-rhs1) ans = -8.2229e+01 -5.8163e+01
confirms that the first LMI constraint is satisfied by xfeas
.
Version History
Introduced before R2006a