Вычислительное решение для данной системы LMI
[tmin,xfeas] = feasp(lmisys,options,target)
[tmin,xfeas] = feasp(lmisys,options,target) вычисляет решение xfeas (при наличии) системы LMI, описанной lmisys. Вектор xfeas - это конкретное значение переменных решения, для которых удовлетворяются все LMI.
Учитывая систему LMI
| М, | (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), чтобы он лежал внутри шара
Другими словами, евклидова норма 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 не справится из-за численных нестабильностей.
Решатель выполнимости feasp основан на проективном методе Нестерова и Немировского, описанном в:
Нестеров, Я. и А. Немировски, многочленовые методы внутренних точек в выпуклом программировании: теория и приложения, SIAM, Филадельфия, 1994.
Немировски, А. и П. Гахинет, «Проективный метод решения неравенства линейных матриц», Прок. Амер. Контр. Конф., 1994, Балтимор, Мэриленд, с. 840-844.
Оптимизация выполняется файлом C-MEX feaslv.mex.