feasp

Вычислите решение данной системы LMIs

Синтаксис

[tmin,xfeas] = feasp(lmisys,options,target)

Описание

Функциональный feasp вычисляет решение xfeas (если таковые имеются) системы LMIs описан lmisys. Векторный xfeas особое значение переменных решения, для которых удовлетворяют всем LMIs.

Учитывая систему LMI

NTLxNMTR(x)M,(1)

xfeas вычисляется путем решения вспомогательной выпуклой программы:

Минимизируйте t, удовлетворяющий NTL (x) NMTR (x) MtI.

Глобальный минимум этой программы является скалярным значением tmin возвращенный как первый выходной аргумент feasp. Ограничения LMI выполнимы если tmin ≤ 0 и строго выполнимый, если tmin <0. Если проблема выполнима, но не строго выполнима, tmin является положительным и очень маленьким. Некоторый постанализ может затем потребоваться, чтобы решать ли xfeas достаточно близко к выполнимому.

Дополнительный аргумент target устанавливает целевое значение для tmin. Код оптимизации завершает работу, как только значение t ниже этой цели достигнуто. Значением по умолчанию является target = 0.

Обратите внимание на то, что xfeas решение в терминах переменных решения а не в терминах матричных переменных проблемы. Используйте dec2mat получать выполнимые значения матричных переменных из xfeas.

Управляйте параметрами

Дополнительный аргумент options предоставляет доступ к определенным параметрам управления для алгоритма оптимизации. Этот вектор с пятью записями организован можно следующим образом:

  • options(1) не используется.

  • options(2) определяет максимальный номер итераций, позволенных выполняться процедурой оптимизации (100 по умолчанию).

  • options(3) сбрасывает радиус выполнимости. Установка options(3) к значению R> 0 далее ограничивает вектор решения x = (x 1..., xN), чтобы лечь в шаре

    i=1Nxi2<R2

    Другими словами, Евклидова норма xfeas не должен превышать R. Радиус выполнимости является простыми способами получения управления величиной решений. После завершения, feasp отображает насыщение f-радиуса, то есть, норму решения как процент радиуса выполнимости R.

    Значением по умолчанию является R = 109. Установка options(3) к отрицательной величине активирует “гибкий связанный” режим. В этом режиме радиус выполнимости первоначально установлен в 108 и увеличен при необходимости в ходе оптимизации

  • options(4) помогает ускорить завершение. Когда установлено в целочисленное значение J> 0, код завершает работу, если t не уменьшился больше чем на один процент в относительном выражении во время последних итераций J. Значение по умолчанию равняется 10. Этот параметр обменивает скорость по сравнению с точностью. Если установлено в маленькое значение (<10), код завершает работу быстро, но без гарантии точности. Наоборот, большое значение приводит к естественной сходимости за счет возможно большого количества итераций.

  • options(5) = 1 выключает трассировку осуществления процедуры оптимизации. Сброс options(5) обнулять (значение по умолчанию) снова включает его.

Установка option(i) обнулять эквивалентно установке соответствующего параметра управления на его значение по умолчанию. Следовательно, нет никакой потребности переопределить целый вектор при изменении всего одного параметра управления. Чтобы определить максимальный номер итераций к 10, например, это достаточно к типу

options=zeros(1,5)       % default value for all parameters 
options(2)=10

Проблемы памяти

Когда задача наименьших квадратов, решенная в каждой итерации, заболевает обусловленная, feasp переключатели решателя от основанного на Холесском до основанной на QR линейной алгебры (см. проблемы Памяти для деталей). Поскольку режим QR обычно требует намного большей памяти, MATLAB® может исчерпать память и отобразить сообщение

??? Error using ==> feaslv 
Out of memory. Type HELP MEMORY for your options.

Необходимо затем попросить, чтобы системный администратор увеличил область подкачки или, если никакая дополнительная область подкачки не доступна, набор options(4) = 1. Это предотвратит переключение на QR и feasp завершит работу, когда Холесский перестанет работать из-за числовой нестабильности.

Примеры

свернуть все

Считайте задачу нахождения P> I таким образом что:

A1TP+PA1<0,

A2TP+PA2<0,

A3TP+PA3<0,

с данными

A1=(-121-3),A2=(-0.81.51.3-2.7),A3=(-1.40.90.7-2.0).

Эта проблема возникает при изучении квадратичной устойчивости многогранника матриц, Co{A1,A2,A3}.

Оценить выполнимость с помощью feasp, сначала введите LMIs.

setlmis([]) 
p = lmivar(1,[2 1]);

A1 = [-1 2;1 -3];
A2 = [-0.8 1.5; 1.3 -2.7];
A3 = [-1.4 0.9;0.7 -2.0];

lmiterm([1 1 1 p],1,A1,'s');     % LMI #1 
lmiterm([2 1 1 p],1,A2,'s');     % LMI #2 
lmiterm([3 1 1 p],1,A3,'s');     % LMI #3 
lmiterm([-4 1 1 p],1,1);         % LMI #4: P 
lmiterm([4 1 1 0],1);            % LMI #4: I 
lmis = getlmis;

Вызовите feasp к находке выполнимый вектор решения.

[tmin,xfeas] = feasp(lmis);
 Solver for LMI feasibility problems L(x) < R(x)
    This solver minimizes  t  subject to  L(x) < R(x) + t*I
    The best value of t should be negative for feasibility

 Iteration   :    Best value of t so far 
 
     1                        0.972718
     2                        0.870460
     3                       -3.136305

 Result:  best value of t:    -3.136305
          f-radius saturation:  0.000% of R =  1.00e+09
 

Результат tmin = -3.1363 средние значения, что проблема выполнима. Поэтому динамическая система x˙=A(t)x квадратично устойчиво для A(t)Co{A1,A2,A3}.

Получить матрицу Ляпунова P при доказательстве квадратичной устойчивости используйте dec2mat.

P = dec2mat(lmis,xfeas,p)
P = 2×2

  270.8553  126.3999
  126.3999  155.1336

Возможно добавить дальнейшие ограничения на эту проблему выполнимости. Например, следующая команда ограничивает норму Фробениуса P 10 при выяснении у tmin быть меньше чем или равным –1.

options = [0,0,10,0,0];
[tmin,xfeas] = feasp(lmis,options,-1);
 Solver for LMI feasibility problems L(x) < R(x)
    This solver minimizes  t  subject to  L(x) < R(x) + t*I
    The best value of t should be negative for feasibility

 Iteration   :    Best value of t so far 
 
     1                        0.988505
     2                        0.872239
     3                       -0.476638
     4                       -0.920574
     5                       -0.920574
***                 new lower bound:    -3.726964
     6                       -1.011130
***                 new lower bound:    -1.602398

 Result:  best value of t:    -1.011130
          f-radius saturation:  91.385% of R =  1.00e+01
 

Третья запись options устанавливает радиус выполнимости на 10 в то время как третий аргумент к feasp, -1, устанавливает целевое значение для tmin. Это ограничение дает к tmin = -1.011 и матричный P с самым большим собственным значением λmax(P) = 8.4653.

P = dec2mat(lmis,xfeas,p);
e = eig(P)
e = 2×1

    3.8875
    8.4653

Ссылки

Решатель выполнимости feasp основан на Нестерове и Проективном Методе Немировского, описанном в:

Нестеров, Y., и А. Немировский, методы полинома внутренней точки в выпуклом программировании: теория и приложения, SIAM, Филадельфия, 1994.

Немировский, A. и П. Гэхинет, “Проективный Метод для Решения Линейных Матричных Неравенств”, Proc. Amer. Противоречие. Конференция, 1994, Балтимор, Мэриленд, p. 840–844.

Оптимизация выполняется feaslv.mex файла MEX на C.

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

| |

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