Приведенный конкретный пример переменных решения, оцените все переменные термины в системе LMIs
evalsys = evallmi(lmisys,decvars)
evallmi
оценивает все ограничения LMI для конкретного экземпляра decvars
из вектора из переменных решения. Вспомните тот decvars
полностью определяет значения матричных переменных X 1..., XK. “Оценка” состоит из замены всех терминов, включающих X 1..., XK их матричным значением. Выход evalsys
система LMI, содержащая только постоянные термины.
Функциональный evallmi
полезно для валидации решателей LMI выход. Вектор, возвращенный этими решателями, может питаться непосредственно evallmi
оценивать все переменные термины. Матричные значения левых и правых сторон каждого LMI затем возвращены showlmi
.
evallmi
предназначается, чтобы работать с выходом решателей LMI. Оценивать весь LMIs для конкретных экземпляров матричных переменных X 1..., XK, сначала сформируйте соответствующий вектор решения x с mat2dec
и затем вызовите evallmi
с x, как введено.
Считайте задачу нахождения выполнимости X> 0 таким образом что
ATXA – X + I <0
где
Эта система LMI задана:
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
Вычислить решение xfeas
, вызовите feasp
[tmin,xfeas] = feasp(lmis)
Результат
tmin = -4.7117e+00 xfeas' = 1.1029e+02 -1.1519e+01 1.1942e+02
Ограничения LMI поэтому выполнимы начиная с tmin
<0. Решение X, соответствующий выполнимому вектору решения xfeas
был бы дан X = dec2mat(lmis,xfeas,X)
.
Проверять тот xfeas
действительно выполнимо, оцените все ограничения LMI путем ввода
evals = evallmi(lmis,xfeas)
Левыми и правыми сторонами первого и второго LMIs затем дают
[lhs1,rhs1] = showlmi(evals,1) [lhs2,rhs2] = showlmi(evals,2)
и тест
eig(lhs1-rhs1) ans = -8.2229e+01 -5.8163e+01
подтверждает, что первому ограничению LMI удовлетворяет xfeas
.