Приведенный конкретный пример переменных решения, оцените все переменные условия в системе 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 таким образом что
AT XA – 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
.