Найти минимум полубесконечно ограниченной многовариантной нелинейной функции
Находит минимум проблемы, указанный в
≤0, 1≤i≤n.
b и beq - векторы, A и Aeq - матрицы, c (x), ceq (x) и Ki (x, wi) - функции, возвращающие векторы, а f (x) - функция, возвращающая скаляр. f (x), c (x) и ceq (x) могут быть нелинейными функциями. Векторы (или матрицы) Ki (x, wi) ≤ 0 являются непрерывными функциями как x, так и дополнительного набора переменных w1, w2,..., wn. Переменные w1, w2,..., wn являются векторами, максимум, длины 2.
x, lb и ub могут быть переданы в виде векторов или матриц; см. Аргументы матрицы.
x = fseminf(fun,x0,ntheta,seminfcon)
x = fseminf(fun,x0,ntheta,seminfcon,A,b)
x = fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq)
x = fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub)
x = fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub,options)
x = fseminf(problem)
[x,fval] = fseminf(...)
[x,fval,exitflag] = fseminf(...)
[x,fval,exitflag,output] = fseminf(...)
[x,fval,exitflag,output,lambda] = fseminf(...)
fseminf находит минимум полубесконечно ограниченной скалярной функции нескольких переменных, начиная с начальной оценки. Цель состоит в том, чтобы минимизировать f (x), чтобы ограничения сохранялись для всех возможных значений wi∈ℜ1 (или wi∈ℜ2). Поскольку невозможно вычислить все возможные значения Ki (x, wi), необходимо выбрать область для wi, по которой вычислить соответствующий набор значений.
Примечание
В разделе Передача дополнительных параметров (Passing Extra Parameters) объясняется, как передать дополнительные параметры целевой функции и, при необходимости, нелинейным функциям ограничения.
x = fseminf(fun,x0,ntheta,seminfcon) начинается в x0 и находит минимум функции fun ограничено ntheta полубесконечные ограничения, определенные в seminfcon.
x = fseminf(fun,x0,ntheta,seminfcon,A,b) также пытается удовлетворить линейные неравенства A*x ≤ b.
x = fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq) минимизирует подверженность линейным уравнениям Aeq*x = beq также. Набор A = [] и b = [] если неравенства не существует.
x = fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub) определяет набор нижних и верхних границ для конструктивных переменных в x, чтобы решение всегда находилось в диапазоне lb ≤ x ≤ ub.
Примечание
См. раздел Итерации могут нарушать ограничения.
x = fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub,options) минимизирует с помощью опций оптимизации, указанных в options. Использовать optimoptions для установки этих параметров.
x = fseminf(problem) находит минимальное значение для problem, где problem - структура, описанная в Input Arguments.
[x,fval] = fseminf(...) возвращает значение целевой функции fun на решении x.
[x,fval,exitflag] = fseminf(...) возвращает значение exitflag описывает условие выхода.
[x,fval,exitflag,output] = fseminf(...) возвращает структуру output содержит информацию об оптимизации.
[x,fval,exitflag,output,lambda] = fseminf(...) возвращает структуру lambda чьи поля содержат множители Лагранжа в решении x.
Примечание
Если указанные входные границы для проблемы противоречивы, вывод x является x0 и выходные данные fval является [].
Аргументы ввода функции содержат общие описания аргументов, передаваемых в fseminf. В этом разделе представлены подробные сведения о функциях fun, ntheta, options, seminfcon, и problem:
| Функция, подлежащая минимизации. x = fseminf(@myfun,x0,ntheta,seminfcon) где function f = myfun(x) f = ... % Compute function value at x
fun = @(x)sin(x''*x); Если градиент options = optimoptions('fseminf','SpecifyObjectiveGradient',true)затем функция | |
ntheta | Число полулегких ограничений. | |
options | Опции предоставляют специфичные для функции подробные данные для | |
| Функция, которая вычисляет вектор нелинейных ограничений неравенства, x = fseminf(@myfun,x0,ntheta,@myinfcon) где function [c,ceq,K1,K2,...,Kntheta,S] = myinfcon(x,S) % Initial sampling interval if isnan(S(1,1)), S = ...% S has ntheta rows and 2 columns end w1 = ...% Compute sample set w2 = ...% Compute sample set ... wntheta = ... % Compute sample set K1 = ... % 1st semi-infinite constraint at x and w K2 = ... % 2nd semi-infinite constraint at x and w ... Kntheta = ...% Last semi-infinite constraint at x and w c = ... % Compute nonlinear inequalities at x ceq = ... % Compute the nonlinear equalities at x
Векторы или матрицы Примечание Поскольку функции Optimization Toolbox™ принимают только входные данные типа Передача дополнительных параметров объясняет, как параметризовать | |
problem |
| Целевая функция |
| Начальная точка для x | |
ntheta | Число полулегких ограничений | |
seminfcon | Полубесконечная функция ограничения | |
| Матрица для линейных ограничений неравенства | |
| Вектор для линейных ограничений неравенства | |
| Матрица для линейных ограничений равенства | |
| Вектор для линейных ограничений равенства | |
lb | Вектор нижних границ | |
ub | Вектор верхних границ | |
| 'fseminf' | |
| Параметры, созданные с помощью optimoptions | |
Аргументы ввода функции содержат общие описания аргументов, возвращаемых fseminf. В этом разделе представлены подробные сведения о функциях exitflag, lambda, и output:
| Целое число, определяющее причину прекращения работы алгоритма. Ниже перечислены значения | |
| Функция, сходящаяся к решению | |
| Величина направления поиска была меньше указанного допуска, а нарушение ограничения - меньше | |
| Величина направленной производной была меньше указанного допуска, а нарушение ограничения - меньше | |
| Превышено число итераций | |
| Алгоритм был завершен функцией вывода. | |
| Выполнимая точка не найдена. | |
| Структура, содержащая множители Лагранжа в решении | |
lower | Нижние границы | |
upper | Верхние границы | |
ineqlin | Линейные неравенства | |
eqlin | Линейные равенства | |
ineqnonlin | Нелинейные неравенства | |
eqnonlin | Нелинейные равенства | |
| Структура, содержащая информацию об оптимизации. Поля структуры: | |
iterations | Количество выполненных итераций | |
funcCount | Количество оценок функций | |
lssteplength | Размер шага поиска строки относительно направления поиска | |
stepsize | Окончательное смещение в | |
algorithm | Используемый алгоритм оптимизации | |
constrviolation | Максимум функций ограничения | |
firstorderopt | Мера оптимальности первого порядка | |
message | Выйти из сообщения | |
Параметры оптимизации, используемые fseminf. Использовать optimoptions для установки или изменения options. Дополнительные сведения см. в разделе Справочник по опциям оптимизации.
Некоторые опции отсутствуют в optimoptions дисплей. Эти параметры выделены курсивом в следующей таблице. Дополнительные сведения см. в разделе Параметры просмотра.
| Сравнение предоставленных пользователем производных (градиентов цели или ограничений) с производными с конечной разницей. Выбор: Для |
ConstraintTolerance | Допуск окончания для нарушения ограничения, положительный скаляр. Значение по умолчанию: Для |
| Диагностика | Отображение диагностической информации о функции, которая должна быть свернута или решена. Выбор: |
| DiffMaxChange | Максимальное изменение переменных для градиентов конечных разностей (положительный скаляр). Значение по умолчанию: |
| DiffMinChange | Минимальное изменение переменных для градиентов конечных разностей (положительный скаляр). Значение по умолчанию: |
Display | Уровень отображения (см. Итерационный просмотр):
|
FiniteDifferenceStepSize |
Коэффициент размера шага скаляра или вектора для конечных разностей. При установке
sign′(x) = sign(x) кроме sign′(0) = 1. Центральными конечными различиями являются
FiniteDifferenceStepSize расширяется до вектора. Значение по умолчанию: sqrt(eps) для прямых конечных разностей, и eps^(1/3) для центральных конечных разностей.
Для |
FiniteDifferenceType | Конечные различия, используемые для оценки градиентов: Алгоритм тщательно соблюдает границы при оценке обоих типов конечных разностей. Так, например, может потребоваться обратная, а не прямая разница, чтобы избежать оценки в точке за пределами границ. Для |
FunctionTolerance | Допуск окончания для значения функции, положительный скаляр. Значение по умолчанию: Для |
| FunValCheck | Проверьте допустимость значений целевой функции и ограничений. |
MaxFunctionEvaluations | Максимально допустимое число оценок функций, положительное целое число. Значение по умолчанию: Для |
MaxIterations | Максимальное допустимое число итераций, положительное целое число. Значение по умолчанию: Для |
| MaxSQPIter | Максимальное допустимое число итераций SQP, положительное целое число. Значение по умолчанию: |
OptimalityTolerance |
Допуск окончания для оптимальности первого порядка (положительный скаляр). Значение по умолчанию: Для |
OutputFcn | Укажите одну или несколько пользовательских функций, вызываемых функцией оптимизации в каждой итерации. Передача дескриптора функции или массива ячеек дескрипторов функции. Значение по умолчанию - нет ( |
PlotFcn | Отображает различные показатели прогресса во время выполнения алгоритма; выбрать из предопределенных графиков или написать свой собственный. Передача имени, дескриптора функции или массива ячеек имен или дескрипторов функций. Для пользовательских функций печати передайте дескрипторы функций. Значение по умолчанию - нет (
Пользовательские функции печати используют тот же синтаксис, что и функции вывода. См. раздел Функции вывода для оптимизации Toolbox™ и Функция вывода и синтаксис функции печати. Для |
| RelLineSrchBnd | Относительная граница (действительное неотрицательное скалярное значение) на длине шага поиска строки, такая, что полное смещение в |
| RelLineSrchBndDuration | Число итераций, для которых граница указана в |
SpecifyObjectiveGradient | Градиент для целевой функции, определенной пользователем. См. предыдущее описание Для |
StepTolerance | Допуск окончания на Для |
| TolConSQP | Допуск окончания для нарушения ограничения SQP внутренней итерации, положительный скаляр. Значение по умолчанию: |
TypicalX | Типичный |
Процедура оптимизации fseminf может изменять рекомендуемый интервал выборки, S, установка в seminfcon, во время вычисления, поскольку значения, отличные от рекомендуемого интервала, могут быть более подходящими для эффективности или надежности. Кроме того, конечную область wi, по которой вычисляется Ki (x, wi), можно изменять во время оптимизации при условии, что она не приводит к значительным изменениям числа локальных минимумов в Ki (x, wi).
Функция, которая должна быть минимизирована, ограничения и полупредельные ограничения должны быть непрерывными функциями x и w. fseminf может дать только локальные решения.
Когда проблема неосуществима, fseminf пытается минимизировать максимальное значение ограничения.
fseminf использует методы кубической и квадратичной интерполяции для оценки пиковых значений в полусредненных ограничениях. Пиковые значения используются для формирования набора ограничений, которые предоставляются методу SQP, как в fmincon функция. При изменении числа ограничений множители Лагранжа перераспределяются в новый набор ограничений.
Рекомендуемое вычисление интервала выборки использует разность между интерполированными пиковыми значениями и пиковыми значениями, появляющимися в наборе данных, для оценки того, должна ли функция принимать больше или меньше точек. Функция также оценивает эффективность интерполяции путем экстраполяции кривой и сравнения ее с другими точками кривой. Рекомендуемый интервал выборки уменьшается, когда пиковые значения близки к границам ограничения, т.е. к нулю.
Для получения дополнительной информации об используемом алгоритме и типах процедур, отображаемых в Procedures курс, когда Display параметр имеет значение 'iter' с optimoptions, см. также Реализация SQP. Для получения дополнительной информации о fseminf алгоритм, см. fseminf Задача Формулировка и алгоритм.