Учитывая конкретный образец переменных принятия решений, оцените все переменные условия в системе LMI
evalsys = evallmi(lmisys,decvars)
evallmi
оценивает все ограничения LMI для конкретного образца decvars
вектора переменных принятия решений. Напомним, что decvars
полностью определяет значения матричных переменных X 1,..., XK. «Оценка» состоит из замены всех членов, связанных X 1,..., XK их матричным значением. Область выхода evalsys
- система LMI, содержащая только постоянные условия.
Функция evallmi
используется для валидации выхода решателей LMI. Вектор, возвращенный этими решателями, может быть передан непосредственно в evallmi
чтобы вычислить все переменные условия. Матричные значения левой и правой сторон каждого LMI затем возвращаются showlmi
.
evallmi
предназначен для работы с выходом решателей LMI. Чтобы вычислить все LMI для конкретных образцов матричных переменных 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)
Левая и правая стороны первого и второго LMI затем задаются как
[lhs1,rhs1] = showlmi(evals,1) [lhs2,rhs2] = showlmi(evals,2)
и тест
eig(lhs1-rhs1) ans = -8.2229e+01 -5.8163e+01
подтверждает, что первое ограничение LMI удовлетворено xfeas
.