fseminf

Найдите минимум полубесконечно ограниченной многомерной нелинейной функции

Описание

fseminf решатель нелинейного программирования, который находит минимум проблемы заданным

minxf(x) таким образом , что {Axb,Aeqx=beq,lbxub,c(x)0,ceq(x)=0,Ki(x,wi)0, 1in.

  • b и beq являются векторами.

  • A и Aeq являются матрицами.

  • c (x), ceq (x) и Ki (x,wi) является функциями, которые возвращают векторы.

  • f (x) является функцией, которая возвращает скаляр.

f (x), c (x) и ceq (x) может быть нелинейными функциями. Векторы (или матрицы) Ki (x, wi) ≤ 0 непрерывные функции и x и дополнительного набора переменных w 1, w 2..., wn. Переменные w 1, w 2..., wn является векторами из длины два, самое большее.

x, lb и ub могут быть переданы как векторы или матрицы; смотрите Матричные аргументы.

пример

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.

[x,fval] = fseminf(___), для любого предыдущего входного синтаксиса, возвращает значение целевой функции fun в решении x.

Примечание

Если заданные входные границы для проблемы противоречивы, выход x x0 и выход fval [].

пример

[x,fval,exitflag,output] = fseminf(___) также возвращает значение exitflag это описывает выходное условие и структуру output с информацией о процессе оптимизации.

пример

[x,fval,exitflag,output,lambda] = fseminf(___) возвращает структуру lambda чьи поля содержат множители Лагранжа в решении x.

Примеры

свернуть все

Минимизируйте функцию

(x-1)2,

удовлетворяющее ограничениям

0x2

g(x,t)=(x-1/2)-(t-1/2)20 \forall 0t1.

Неограниченная целевая функция минимизирована в x=1. Однако ограничение

g(x,t)0 \forall 0t1

подразумевает x1/2. Заметьте, что (t-1/2)20, так

maxtg(x,t)=x-1/2.

Поэтому

maxtg(x,t)0 когда x1/2.

Решать эту задачу с помощью fseminf, запишите целевую функцию как анонимную функцию.

objfun = @(x)(x-1)^2;

Запишите полубесконечной ограничительной функции seminfcon, который включает нелинейные ограничения [ ], начальный интервал выборки для t (от 0 до 1 с шагом 0,01), и полубесконечная ограничительная функция g(x,t). Код для seminfcon функция появляется в конце этого примера.

Установите начальную точку x0 = 0.2.

x0 = 0.2;

Задайте одно полубесконечное ограничение.

ntheta = 1;

Решите задачу путем вызова fseminf и просмотрите результат.

x = fseminf(objfun,x0,ntheta,@seminfcon)
Local minimum found that satisfies the constraints.

Optimization completed because the objective function is non-decreasing in 
feasible directions, to within the value of the optimality tolerance,
and constraints are satisfied to within the  value of the constraint tolerance.
x = 0.5000

Следующий код создает seminfcon функция.

function [c, ceq, K1, s] = seminfcon(x,s)

% No finite nonlinear inequality and equality constraints
c = [];
ceq = [];

% Sample set
if isnan(s)
    % Initial sampling interval
    s = [0.01 0];
end
t = 0:s(1):1;

% Evaluate the semi-infinite constraint
K1 = (x - 0.5) - (t - 0.5).^2;
end

Минимизируйте функцию

(x-1)2,

удовлетворяющее ограничениям

0x2

g(x,t)=(x-1/2)-(t-1/2)20 \forall 0t1.

Эта проблема сформулирована и решена в примере, Минимизируют Функцию с Ограничениями Полу-Бога, которая собирает больше информации о процессе решения и решения.

Решать эту задачу с помощью fseminf, запишите целевую функцию как анонимную функцию.

objfun = @(x)(x-1)^2;

Код для нелинейного и полубесконечного ограничения функционирует seminfcon появляется в конце этого примера.

Установите начальную точку x0 = 0.2.

x0 = 0.2;

Задайте одно полубесконечное ограничение.

ntheta = 1;

Решите задачу путем вызова fseminf и просмотрите результат.

A = [];
b = [];
Aeq = [];
beq = [];
lb = 0;
ub = 2;
[x,fval,exitflag,output,lambda] = fseminf(objfun,x0,ntheta,@seminfcon,...
    A,b,Aeq,beq,lb,ub)
Local minimum found that satisfies the constraints.

Optimization completed because the objective function is non-decreasing in 
feasible directions, to within the value of the optimality tolerance,
and constraints are satisfied to within the  value of the constraint tolerance.
x = 0.5000
fval = 0.2500
exitflag = 1
output = struct with fields:
         iterations: 2
          funcCount: 4
       lssteplength: 1
           stepsize: 4.6841e-12
          algorithm: 'active-set'
      firstorderopt: 9.3682e-12
    constrviolation: 4.6841e-12
            message: '...'

lambda = struct with fields:
         lower: 0
         upper: 0
         eqlin: [0x1 double]
      eqnonlin: [0x1 double]
       ineqlin: [0x1 double]
    ineqnonlin: [1x0 double]

Возвращенные значения показывают:

  • Задача решена в x=1/2.

  • Значение целевой функции, (x-1)2, 1/4.

  • Решатель берет две итерации и четыре вычисления функции, чтобы достигнуть решения.

  • Единственные ограничения кроме полубесконечных ограничений являются границами, таким образом, lambda структура не имеет никаких линейных или нелинейных значений. lambda.lower и lambda.upper поля, которые соответствуют границам, не пусты, но имеют нулевые значения, потому что решение не ни в одном связанном.

Следующий код создает seminfcon функция.

function [c, ceq, K1, s] = seminfcon(x,s)

% No finite nonlinear inequality and equality constraints
c = [];
ceq = [];

% Sample set
if isnan(s)
    % Initial sampling interval
    s = [0.01 0];
end
t = 0:s(1):1;

% Evaluate the semi-infinite constraint
K1 = (x - 0.5) - (t - 0.5).^2;
end

Входные параметры

свернуть все

Функция, чтобы минимизировать в виде указателя на функцию или имени функции. fun функция, которая принимает вектор или массив x и возвращает действительный скалярный f, целевая функция выполнена в x.

fseminf передачи x к вашей целевой функции и любому нелинейному ограничению функционирует в форме x0 аргумент. Например, если x0 5 3 массив, затем fseminf передачи x к fun как 5 3 массив. Однако fseminf умножает линейные ограничительные матрицы A или Aeq с x после преобразования x к вектор-столбцу x(:).

Задайте fun как указатель на функцию для файла.

x = fseminf(@myfun,...)

Здесь, myfun MATLAB® функционируйте, такие как следующее.

function f = myfun(x)
f = ...            % Compute function value at x

Можно также задать fun как указатель на функцию для анонимной функции.

x = fseminf(@(x)norm(x)^2,...);

Если можно вычислить градиент fun и SpecifyObjectiveGradient опция установлена в true, как установлено

options = optimoptions('fseminf','SpecifyObjectiveGradient',true);
затем fun должен возвратить вектор градиента g(x) во втором выходном аргументе.

Пример: fun = @(x)sin(x(1))*cos(x(2))

Типы данных: char | function_handle | string

Начальная точка в виде вектора действительных чисел или действительного массива. Решатели используют число элементов в x0 и размер x0 определить номер и размер переменных что fun принимает.

Пример: x0 = [1,2,3,4]

Типы данных: double

Количество полубесконечных ограничений в виде положительного целого числа.

Пример 4

Типы данных: double

Функция, которая вычисляет вектор из нелинейных ограничений неравенства c, вектор из нелинейных ограничений равенства ceq, и ntheta полубесконечные ограничения (векторы или матрицы) K1, K2,..., Kntheta оцененный на интервале S в точке x. Можно задать seminfcon как указатель на функцию.

x = fseminf(@myfun,x0,ntheta,@myinfcon)

где myinfcon функция MATLAB такой как

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 nonlinear equalities at x

S рекомендуемый интервал выборки, который функциональную силу не используют. Возврат для c и ceq если никакие такие ограничения не существуют.

Векторы или матрицы K1, K2, ..., Kntheta содержите полубесконечные ограничения, оцененные для произведенного множества значений для независимых переменных w1, w2, ..., wntheta, соответственно. Матрица 2D столбца S содержит рекомендуемый интервал выборки для значений w1, w2, ..., wntheta, которые используются, чтобы оценить K1, K2, ..., Kntheta. iстрока th S содержит рекомендуемый интервал выборки для оценки Ki. Когда Ki вектор, функция использует только S(i,1) (второй столбец может быть всеми нулями). Когда Ki матрица, функция использует S(i,2) производить строки в Ki, и использование S(i,1) для интервала выборки столбцов Ki (см. двумерное ограничение полу-Бога). Поскольку S isnan на первой итерации, seminfcon должен определить некоторый начальный интервал выборки.

Примечание

Поскольку функции Optimization Toolbox™ принимают входные параметры типа double только, предоставленные пользователями объективные и нелинейные ограничительные функции должны возвратить выходные параметры типа double.

Для методов, чтобы параметрировать seminfcon, при необходимости смотрите Передающие Дополнительные Параметры. Для примера и одного - и двумерных точек выборки, смотрите Пример Создания Точек Выборки.

Линейные ограничения неравенства в виде действительной матрицы. A M- N матрица, где M количество неравенств и N количество переменных (число элементов в x0). Для больших проблем передайте A как разреженная матрица.

A кодирует M линейные неравенства

A*x <= b,

где x вектор-столбец N переменные x(:), и b вектор-столбец с M элементы.

Например, рассмотрите эти неравенства:

x 1 + 2x2 ≤ 10
3x1 + 4x2 ≤ 20
5x1 + 6x2 ≤ 30,

Задайте неравенства путем ввода следующих ограничений.

A = [1,2;3,4;5,6];
b = [10;20;30];

Пример: Чтобы указать что x сумма компонентов к 1 или меньше, используйте A = ones(1,N) и b = 1.

Типы данных: double

Линейные ограничения неравенства в виде вектора действительных чисел. b M- вектор элемента связан с A матрица. Если вы передаете b как вектор-строка, решатели внутренне преобразуют b к вектор-столбцу b(:). Для больших проблем передайте b как разреженный вектор.

b кодирует M линейные неравенства

A*x <= b,

где x вектор-столбец N переменные x(:), и A матрица размера M- N.

Например, рассмотрите эти неравенства:

x 1 + 2x2 ≤ 10
3x1 + 4x2 ≤ 20
5x1 + 6x2 ≤ 30.

Задайте неравенства путем ввода следующих ограничений.

A = [1,2;3,4;5,6];
b = [10;20;30];

Пример: Чтобы указать что x сумма компонентов к 1 или меньше, используйте A = ones(1,N) и b = 1.

Типы данных: double

Линейные ограничения равенства в виде действительной матрицы. Aeq Me- N матрица, где Me количество равенств и N количество переменных (число элементов в x0). Для больших проблем передайте Aeq как разреженная матрица.

Aeq кодирует Me линейные равенства

Aeq*x = beq,

где x вектор-столбец N переменные x(:), и beq вектор-столбец с Me элементы.

Например, рассмотрите эти неравенства:

x 1 + 2x2 + 3x3 = 10
2x1 + 4x2 + x 3 = 20,

Задайте неравенства путем ввода следующих ограничений.

Aeq = [1,2,3;2,4,1];
beq = [10;20];

Пример: Чтобы указать что x сумма компонентов к 1, используйте Aeq = ones(1,N) и beq = 1.

Типы данных: double

Линейные ограничения равенства в виде вектора действительных чисел. beq Me- вектор элемента связан с Aeq матрица. Если вы передаете beq как вектор-строка, решатели внутренне преобразуют beq к вектор-столбцу beq(:). Для больших проблем передайте beq как разреженный вектор.

beq кодирует Me линейные равенства

Aeq*x = beq,

где x вектор-столбец N переменные x(:), и Aeq матрица размера Me- N.

Например, рассмотрите эти равенства:

x 1 + 2x2 + 3x3 = 10
2x1 + 4x2 + x 3 = 20.

Задайте равенства путем ввода следующих ограничений.

Aeq = [1,2,3;2,4,1];
beq = [10;20];

Пример: Чтобы указать что x сумма компонентов к 1, используйте Aeq = ones(1,N) и beq = 1.

Типы данных: double

Нижние границы в виде вектора действительных чисел или действительного массива. Если число элементов в x0 равно числу элементов в lb, затем lb задает это

x(i) >= lb(i) для всех i.

Если numel(lb) < numel(x0), затем lb задает это

x(i) >= lb(i) для 1 <= i <= numel(lb).

Если lb имеет меньше элементов, чем x0, решатели выдают предупреждение.

Пример: Чтобы указать, что все x компоненты положительны, используйте lb = zeros(size(x0)).

Типы данных: double

Верхние границы в виде вектора действительных чисел или действительного массива. Если число элементов в x0 равно числу элементов в ub, затем ub задает это

x(i) <= ub(i) для всех i.

Если numel(ub) < numel(x0), затем ub задает это

x(i) <= ub(i) для 1 <= i <= numel(ub).

Если ub имеет меньше элементов, чем x0, решатели выдают предупреждение.

Пример: Чтобы указать, что все x компоненты меньше 1, используйте ub = ones(size(x0)).

Типы данных: double

Опции оптимизации в виде выхода optimoptions или структура такой как optimset возвращается. Дополнительную информацию см. в Ссылке Опций Оптимизации.

Некоторые опции отсутствуют в optimoptions отображение. Эти опции появляются курсивом в следующей таблице. Для получения дополнительной информации, Опции вида на море.

ОпцияОписание

CheckGradients

Сравните предоставленные пользователями производные (градиенты цели или ограничений) к производным конечного дифференцирования. Выбором является true или false по умолчанию.

Для optimset, именем является DerivativeCheck и значениями является 'on' или 'off'. Смотрите текущие и устаревшие имена опции.

ConstraintTolerance

Допуск завершения на нарушении ограничений (положительная скалярная величина). Значением по умолчанию является 1e-6. Смотрите допуски и критерий остановки.

Для optimset, именем является TolCon. Смотрите текущие и устаревшие имена опции.

Диагностика

Отобразите диагностическую информацию о функции, которая будет минимизирована или решена. Выбором является 'on' или 'off' по умолчанию.

DiffMaxChange

Максимальное изменение в переменных для градиентов конечной разности (положительная скалярная величина). Значением по умолчанию является Inf.

DiffMinChange

Минимальное изменение в переменных для градиентов конечной разности (положительная скалярная величина). Значением по умолчанию является 0.

Display

Level of display (см. Итеративное Отображение):

  • 'off' или 'none' не отображает вывода.

  • 'iter' отображает вывод в каждой итерации и дает выходное сообщение по умолчанию.

  • 'iter-detailed' отображает вывод в каждой итерации и дает техническое выходное сообщение.

  • 'notify' отображает вывод, только если функция не сходится и дает выходное сообщение по умолчанию.

  • 'notify-detailed' отображает вывод, только если функция не сходится и дает техническое выходное сообщение.

  • 'final' (значение по умолчанию) отображает только окончательный вывод и дает выходное сообщение по умолчанию.

  • 'final-detailed' отображает только окончательный вывод и дает техническое выходное сообщение.

FiniteDifferenceStepSize

Скалярный или векторный фактор размера шага для конечных разностей. Когда вы устанавливаете FiniteDifferenceStepSize к векторному v, прямые конечные разности delta

delta = v.*sign′(x).*max(abs(x),TypicalX);

где sign′(x) = sign(x) кроме sign′(0) = 1. Центральные конечные разности

delta = v.*max(abs(x),TypicalX);

Скалярный FiniteDifferenceStepSize расширяется до вектора. Значением по умолчанию является sqrt(eps) для прямых конечных разностей и eps^(1/3) для центральных конечных разностей.

Для optimset, именем является FinDiffRelStep. Смотрите текущие и устаревшие имена опции.

FiniteDifferenceType

Конечными разностями, используемыми, чтобы оценить градиенты, является любой 'forward' (значение по умолчанию) или 'central' (в центре). 'central' берет вдвое больше вычислений функции, но может быть более точным.

Алгоритм старается выполнить границы при оценке обоих типов конечных разностей. Например, чтобы не оценивать в точке вне границ, алгоритм может взять обратное различие, а не правую разность.

Для optimset, именем является FinDiffType. Смотрите текущие и устаревшие имена опции.

FunctionTolerance

Допуск завершения на значении функции (положительная скалярная величина). Значением по умолчанию является 1e-4. Смотрите допуски и критерий остановки.

Для optimset, именем является TolFun. Смотрите текущие и устаревшие имена опции.

FunValCheck

Проверяйте, допустимы ли целевая функция и ограничительные значения. Установка 'on' отображает ошибку, когда целевая функция или ограничения возвращают значение, которое является complexInf, или NaN. 'off' по умолчанию отображения никакая ошибка.

MaxFunctionEvaluations

Максимальное количество вычислений функции позволено (положительное целое число). Значением по умолчанию является 100*numberOfVariables. Смотрите допуски и критерий остановки и итерации и функциональные количества.

Для optimset, именем является MaxFunEvals. Смотрите текущие и устаревшие имена опции.

MaxIterations

Максимальное количество итераций позволено (положительное целое число). Значением по умолчанию является 400. Смотрите допуски и критерий остановки и итерации и функциональные количества.

Для optimset, именем является MaxIter. Смотрите текущие и устаревшие имена опции.

MaxSQPIter

Максимальное количество итераций SQP позволено (положительное целое число). Значением по умолчанию является 10*max(numberOfVariables, numberOfInequalities + numberOfBounds).

OptimalityTolerance

Допуск завершения на оптимальности первого порядка (положительная скалярная величина). Значением по умолчанию является 1e-6. Смотрите меру оптимальности первого порядка.

Для optimset, именем является TolFun. Смотрите текущие и устаревшие имена опции.

OutputFcn

Задайте одну или несколько пользовательских функций, вызванных оптимизационной функцией в каждой итерации. Передайте указатель на функцию или cell-массив указателей на функцию. Значение по умолчанию не ни один ([]). Смотрите синтаксис выходной функции и функции построения графика.

PlotFcn

Постройте различные показатели прогресса, в то время как алгоритм выполняется; выберите из предопределенных графиков или запишите свое собственное. Передайте имя, указатель на функцию или массив ячеек имен или указателей на функцию. Для пользовательских функций построения графика передайте указатели на функцию. Значение по умолчанию не ни один ([]).

  • 'optimplotx' строит текущую точку.

  • 'optimplotfunccount' строит функциональное количество.

  • 'optimplotfval' строит значение функции.

  • 'optimplotfvalconstr' строит лучшее выполнимое значение целевой функции, найденное как линейный график. График показывает неосуществимые точки красными и допустимыми точками как синие, с помощью допуска выполнимости 1e-6.

  • 'optimplotconstrviolation' строит максимальное нарушение ограничений.

  • 'optimplotstepsize' строит размер шага.

  • 'optimplotfirstorderopt' строит меру оптимальности первого порядка.

Пользовательские функции построения графика используют тот же синтаксис в качестве выходных функций. Смотрите Выходные функции для Optimization Toolbox™ и Синтаксис Функции построения графика и Выходную функцию.

Для optimset, именем является PlotFcns. Смотрите текущие и устаревшие имена опции.

RelLineSrchBnd

Относительная граница (действительное неотрицательное скалярное значение) на линии ищет длину шага, таким образом что общее смещение в x удовлетворяет | Δx (i) |  ≤ relLineSrchBnd · макс. (|x (i) |, |typicalx (i) |). Эта опция обеспечивает управление величиной смещений в x для случаев, в которых решатель предпринимает шаги это fseminf считает слишком большим. Значением по умолчанию не являются никакие границы ([]).

RelLineSrchBndDuration

Количество итераций, для который связанное, заданное в RelLineSrchBnd должно быть активным (значением по умолчанию является 1).

SpecifyObjectiveGradient

Градиент для целевой функции задан пользователем. См. предыдущее описание fun чтобы видеть, как задать градиент в fun. Установите эту опцию на true иметь fseminf используйте пользовательский градиент целевой функции. false по умолчанию причины fseminf оценить градиенты с помощью конечных разностей.

Для optimset, именем является GradObj и значениями является 'on' или 'off'. Смотрите текущие и устаревшие имена опции.

StepTolerance

Допуск завершения на x, положительная скалярная величина. Значением по умолчанию является 1e-4. Смотрите допуски и критерий остановки.

Для optimset, именем является TolX. Смотрите текущие и устаревшие имена опции.

TolConSQP

Допуск завершения на внутренней итерации нарушение ограничений SQP, положительная скалярная величина. Значением по умолчанию является 1e-6.

TypicalX

Типичный x значения. Число элементов в TypicalX равно числу элементов в x0, начальная точка. Значением по умолчанию является ones(numberofvariables,1). fseminf использование TypicalX для масштабирования конечных разностей для оценки градиента.

Пример: options = optimoptions('fseminf','PlotFcn','optimplotfval')

Структура задачи в виде структуры со следующими полями.

Имя поляЗапись

objective

Целевая функция

x0

Начальная точка для x

ntheta

Количество полубесконечных ограничений

seminfcon

Полубесконечная ограничительная функция

Aineq

Матрица для линейных ограничений неравенства

bineq

Вектор для линейных ограничений неравенства

Aeq

Матрица для линейных ограничений равенства

beq

Вектор для линейных ограничений равенства
lbВектор из нижних границ
ubВектор из верхних границ

solver

'fmseminf'

options

Опции, созданные с optimoptions

Необходимо предоставить, по крайней мере, objectivex0 , seminfcon, solver, и options поля в problem структура.

Типы данных: struct

Выходные аргументы

свернуть все

Решение, возвращенное как вектор действительных чисел или действительный массив. Размер x совпадает с размером x0. Как правило, x локальное решение проблемы когда exitflag положительно. Для получения информации о качестве решения смотрите, Когда Решатель Успешно выполнится.

Значение целевой функции в решении, возвращенном как вещественное число. Обычно fval = fun(x).

Причина fseminf остановленный, возвращенный как целое число.

Флаг

Описание

1

Функция сходилась к решению x.

4

Величина поискового направления была меньше заданного допуска, и нарушение ограничений было меньше options.ConstraintTolerance.

5

Величина косой производной была меньше заданного допуска, и нарушение ограничений было меньше options.ConstraintTolerance.

0

Количество итераций превысило options.MaxIterations, или количество вычислений функции превысило options.MaxFunctionEvaluations.

-1

Зашедший выходная функция или функция построения графика.

-2

Никакая допустимая точка не была найдена.

Информация о процессе оптимизации, возвращенном как структура со следующими полями.

Имя поляОписание
iterations

Количество проделанных итераций

funcCount

Количество вычислений функции

lssteplength

Размер линии ищет шаг относительно поискового направления

stepsize

Итоговое смещение в x

algorithm

Алгоритм оптимизации используется

constrviolation

Максимум ограничительных функций

firstorderopt

Мера оптимальности первого порядка

message

Выходное сообщение

iterations

Количество проделанных итераций

funcCount

Количество вычислений функции

Множители Лагранжа в решении, возвращенном как структура со следующими полями.

Имя поляОписание
lower

Нижние границы, соответствующие lb

upper

Верхние границы, соответствующие ub

ineqlin

Линейные неравенства, соответствующие A и b

eqlin

Линейные равенства, соответствующие Aeq и beq

ineqnonlin

Нелинейные неравенства, соответствующие c в seminfcon

eqnonlin

Нелинейные равенства, соответствующие ceq в seminfcon

Ограничения

  • Функция, которая будет минимизирована, ограничения и полубесконечные ограничения, должна быть непрерывными функциями x и w.

  • fseminf может дать локальные решения только.

Алгоритмы

fseminf использует кубические и квадратичные методы интерполяции, чтобы оценить пиковые значения в полубесконечных ограничениях. Алгоритм использует пиковые значения, чтобы сформировать набор ограничений, предоставленных методу SQP, как в fmincon функция. Когда количество ограничительных изменений, алгоритм перераспределяет множители Лагранжа к новому набору ограничений.

Рекомендуемое вычисление интервала выборки использует различие между интерполированными пиковыми значениями и пиковыми значениями в наборе данных, чтобы оценить, должна ли функция взять больше или меньше точек. Функция также оценивает эффективность интерполяции путем экстраполирования кривой и сравнения его с другими точками в кривой. Рекомендуемый интервал выборки уменьшается, когда пиковые значения близко к границам ограничений, то есть, нулю.

Когда проблема не выполнима, fseminf попытки минимизировать максимальное ограничительное значение.

Для получения дополнительной информации об используемом алгоритме и типы процедур, отображенных под Procedures заголовок, когда Display опция установлена в 'iter' с optimoptions, см. Реализацию SQP. Для получения дополнительной информации о fseminf алгоритм, см. fseminf Формулировку задачи и Алгоритм.

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