createOptimProblem

Создайте структуру задачи оптимизации

Синтаксис

problem = createOptimProblem('solverName')
problem = createOptimProblem('solverName','ParameterName',ParameterValue,...)

Описание

problem = createOptimProblem('solverName') создает пустую структуру задачи оптимизации для solverName решатель.

problem = createOptimProblem('solverName','ParameterName',ParameterValue,...) принимает одну или несколько пар имя/значение параметра, разделенных запятыми. Задайте ParameterName внутри одинарные кавычки.

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

solverName

Имя решателя. Для GlobalSearch задача, использование 'fmincon'. Для MultiStart задача, использование 'fmincon', 'fminunc', 'lsqcurvefit' или 'lsqnonlin'.

Аргументы в виде пар имя-значение

'Aeq'

Матрица для линейных ограничений равенства. Ограничения имеют форму:

Aeq x = beq

'Aineq'

Матрица для линейных ограничений неравенства. Ограничения имеют форму:

Aineq xbineq

'beq'

Вектор для линейных ограничений равенства. Ограничения имеют форму:

Aeq x = beq

'bineq'

Вектор для линейных ограничений неравенства. Ограничения имеют форму:

Aineq xbineq

'lb'

Вектор нижних границ.

lb может также быть массивом; см. Матричные аргументы.

'nonlcon'

Указатель на функцию для нелинейной функции ограничения. Функция ограничения должна принимать вектор x и возвращает два вектора: c, нелинейные ограничения неравенства и ceq, нелинейные ограничения равенства. Если одна из этих функций ограничений пуста, nonlcon должен вернуться [] для этой функции.

Если на GradConstr опция 'on', затем в сложение nonlcon необходимо вернуть два дополнительных выхода, gradc и gradceq. The gradc параметр является матрицей с одним столбцом для градиента каждого ограничения, как есть gradceq.

Для получения дополнительной информации см. Раздел «Ограничения записи»

'objective'

Указатель на функцию к целевой функции. Для всех решателей, кроме lsqnonlin и lsqcurvefitцелевая функция должна принять вектор x и верните скаляр. Если на GradObj опция 'on'тогда целевая функция должна вернуть второй выход, вектор, представляющий градиент цели. Для lsqnonlinцелевая функция должна принять вектор x и возвращает вектор. lsqnonlin суммирует квадраты значений целевой функции. Для lsqcurvefit, целевая функция должна принять два входов, x и xdata, и возвращает вектор.

Для получения дополнительной информации см. «Вычисление целевых функций».

'options'

Опции оптимизации. Создайте опции с optimoptions.

'ub'

Вектор верхних границ.

ub может также быть массивом; см. Матричные аргументы.

'x0'

Вектор, потенциальная начальная точка для оптимизации. Задает размерность задачи.

x0 может также быть массивом; см. Матричные аргументы.

'xdata'

Вектор точек данных для lsqcurvefit.

'ydata'

Вектор точек данных для lsqcurvefit.

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

problem

Структура задачи оптимизации.

Примеры

Создайте структуру задачи, используя функцию Розенбрка как цель (см. Гибридную схему в Генетическом алгоритме), interior-point алгоритм для fmincon, и границы с абсолютным значением 2:

anonrosen = @(x)(100*(x(2) - x(1)^2)^2 + (1-x(1))^2);
opts = optimoptions(@fmincon,'Algorithm','interior-point');
problem = createOptimProblem('fmincon','x0',randn(2,1),...
    'objective',anonrosen,'lb',[-2;-2],'ub',[2;2],...
    'options',opts);
Введенный в R2010a