Вычислите решение данной системы LMIs
[tmin,xfeas] = feasp(lmisys,options,target)
Функциональный
feasp
вычисляет решение xfeas
(если таковые имеются) системы LMIs, описанного lmisys
. Векторный xfeas
является особым значением переменных решения, для которых удовлетворены все LMIs.
Учитывая систему 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 = (x 1..., 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
от основанного на Холесском до основанной на QR линейной алгебры (см. проблемы Памяти для деталей). Поскольку режим QR обычно требует намного большей памяти, MATLAB® может исчерпать память и отобразить сообщение
??? Error using ==> feaslv Out of memory. Type HELP MEMORY for your options.
Необходимо затем попросить, чтобы системный администратор увеличил область подкачки или, если никакая дополнительная область подкачки не доступна, набор options(4) = 1
. Это предотвратит переключение на QR, и feasp
остановится, когда Холесский перестанет работать из-за числовой нестабильности.
Решатель выполнимости feasp
основан на Нестерове и Проективном Методе Немировского, описанном в:
Нестеров, Y., и А. Немировский, методы полинома внутренней точки в выпуклом программировании: теория и приложения, SIAM, Филадельфия, 1994.
Немировский, A. и П. Гэхинет, “Проективный Метод для Решения Линейных Матричных Неравенств”, Proc. Amer. Противоречие. Конференция, 1994, Балтимор, Мэриленд, p. 840–844.
Оптимизация выполняется feaslv.mex
файла MEX на C.