exponenta event banner

feasp

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

Синтаксис

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

Описание

[tmin,xfeas] = feasp(lmisys,options,target) вычисляет решение xfeas (при наличии) системы LMI, описанной lmisys. Вектор xfeas - это конкретное значение переменных решения, для которых удовлетворяются все LMI.

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

NTLxN≤MTR (x) М,(1)

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

Минимизируйте t в соответствии с NTL (x) N-MTR (x) M≤tI.

Глобальный минимум этой программы - скалярное значение 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 = (x1,.., 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 решатель переключается с линейной алгебры на основе Cholesky на основе QR (подробные сведения см. в разделе Проблемы с памятью). Поскольку режим QR обычно требует гораздо больше памяти, MATLAB ® может исчерпать память и отобразить сообщение

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

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

Примеры

свернуть все

Рассмотрим проблему нахождения 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, сначала введите LMI.

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 основан на проективном методе Нестерова и Немировского, описанном в:

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

Немировски, А. и П. Гахинет, «Проективный метод решения неравенства линейных матриц», Прок. Амер. Контр. Конф., 1994, Балтимор, Мэриленд, с. 840-844.

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

См. также

| |

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