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