lmivar

Задайте матричные переменные в проблеме LMI

Синтаксис

X = lmivar(type,struct)
[X,n,sX] = lmivar(type,struct)

Описание

lmivar задает новую матричную переменную X в системе LMI, в настоящее время описанной. Дополнительный вывод X является идентификатором, который может использоваться для последующей ссылки на эту новую переменную.

Первый аргумент type выбирает среди доступных типов переменных, и второй аргумент struct дает дополнительную информацию о структуре X в зависимости от ее типа. Доступные типы переменных включают:

type=1: Симметричные матрицы с диагональной блоком структурой. Каждый диагональный блок любой полон (произвольная симметрическая матрица), скаляр (кратное единичной матрице), или тождественно обнулите.

Если X имеет блоки диагонали R, struct является R-by-2 матрица где

  • struct(r,1) является размером r-th блок

  • struct(r,2) является типом r-th блок (1 для полного, 0 для скаляра, –1 для нулевого блока).

type=2: Полный m-by-n прямоугольная матрица. Установите struct = [m,n] в этом случае.

type=3: Другие структуры. С Типом 3 каждая запись X задана как нуль или ±x, где xn является n-th переменная решения.

Соответственно, struct является матрицей тех же размерностей как X, таким образом что

  • struct(i,j)=0, если X (i, j) является твердым нулем

  • struct(i,j)=n, если X (i, j) = xn

  • struct(i,j)=–n, если X (i, j) = –xn

Сложные матричные переменные структуры могут быть заданы с Типом 3. Чтобы задать переменную X Типа 3, сначала идентифицируйте, сколько свободных независимых записей вовлечено в X. Они составляют набор переменных решения, сопоставленных с X. Если проблема уже включает переменные решения n, маркируйте новые свободные переменные как xn +1..., xn+p. Структура X затем задана с точки зрения xn +1..., xn+p, как обозначено выше. Чтобы помочь задать матричные переменные Типа 3, lmivar опционально возвращает два дополнительных выходных параметра: (1) общее количество n скалярных переменных решения, используемых до сих пор и (2) матричный sX, показывающий мудрую записью зависимость X на переменных x решения 1..., xn.

Примеры

свернуть все

Рассмотрите систему LMI с тремя матричными переменными X1, X2, и X3 таким образом, что

  • X1 3х3 (неструктурированная) симметрическая матрица,

  • X2 2 4 прямоугольная (неструктурированная) матрица,

  • X3 =

(Δ000δ1000δ2I2),

где Δ является произвольной симметрической матрицей 5 на 5, δ1 и δ2 скаляры, и I2 обозначает единичную матрицу размера 2.

Задайте эти три переменные с помощью lmivar.

setlmis([]) 
X1 = lmivar(1,[3 1]);          % Type 1 
X2 = lmivar(2,[2 4]);         % Type 2 of dimension 2-by-4 
X3 = lmivar(1,[5 1;1 0;2 0]);  % Type 1

Последняя команда задает X3 как переменная Типа 1 с одним полным блоком размера 5 и два скалярных блока размеров 1 и 2, соответственно.

Объединенный с дополнительными выходными параметрами n и sX lmivar, Тип 3 позволяет вам задавать довольно комплексные матричные переменные структуры. Например, считайте матричную переменную X со структурой данной:

X=(X100X2)

где X1 и X2 2 3 и 3 2 прямоугольные матрицы, соответственно. Задайте эту структуру можно следующим образом.

Задайте прямоугольные переменные X1 и X2.

setlmis([]) 
[X1,n,sX1] = lmivar(2,[2 3]); 
[X2,n,sX2] = lmivar(2,[3 2]);

Выходные параметры sX1 и sX2 дают содержимое переменной решения X1 и X2.

sX1
sX1 = 2×3

     1     2     3
     4     5     6

sX2
sX2 = 3×2

     7     8
     9    10
    11    12

Например, sX2(1,1) = 7 означает что (1,1) запись X2 седьмая переменная решения.

Затем, используйте Тип 3, чтобы задать матричную переменную X и задать ее структуру с точки зрения структур X1 и X2.

[X,n,sX] = lmivar(3,[sX1,zeros(2);zeros(3),sX2]);

Подтвердите, что получившийся X имеет желаемую структуру.

sX
sX = 5×5

     1     2     3     0     0
     4     5     6     0     0
     0     0     0     7     8
     0     0     0     9    10
     0     0     0    11    12

Смотрите также

| | | | | |

Представлено до R2006a