Можно задать любые доступные опции patternsearch
путем передачи options
как входного параметра к patternsearch
с помощью синтаксиса
[x,fval] = patternsearch(@fitnessfun,nvars, ... A,b,Aeq,beq,lb,ub,nonlcon,options)
Передайте в пустых скобках []
для любых ограничений, которые не появляются в проблеме.
Вы создаете options
с помощью функционального optimoptions
.
options = optimoptions(@patternsearch)
options = patternsearch options: Set properties: No options set. Default properties: AccelerateMesh: 0 ConstraintTolerance: 1.0000e-06 Display: 'final' FunctionTolerance: 1.0000e-06 InitialMeshSize: 1 MaxFunctionEvaluations: '2000*numberOfVariables' MaxIterations: '100*numberOfVariables' MaxTime: Inf MeshContractionFactor: 0.5000 MeshExpansionFactor: 2 MeshTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] PollMethod: 'GPSPositiveBasis2N' PollOrderAlgorithm: 'consecutive' ScaleMesh: 1 SearchFcn: [] StepTolerance: 1.0000e-06 UseCompletePoll: 0 UseCompleteSearch: 0 UseParallel: 0 UseVectorized: 0
Функция patternsearch
использует эти значения по умолчанию, если вы не передаете в options
как входной параметр.
Значение каждой опции хранится в поле options
, такого как options.MeshExpansionFactor
. Можно отобразить любое из этих значений путем ввода options
, сопровождаемого под названием поле. Например, чтобы отобразить фактор расширения mesh для поиска шаблона, войти
options.MeshExpansionFactor
ans = 2
Чтобы создать options
со значением поля, которое отличается от значения по умолчанию, используйте optimoptions
. Например, чтобы изменить фактор расширения mesh на 3
вместо его значения по умолчанию 2
, войти
options = optimoptions('patternsearch','MeshExpansionFactor',3);
Это создает options
со всем набором значений к значениям по умолчанию за исключением MeshExpansionFactor
, который установлен в 3
.
Если вы теперь вызываете patternsearch
с аргументом options
, поиск шаблона использует фактор расширения mesh 3
.
Если вы впоследствии решаете изменить другое поле в options
, таком как установка PlotFcn
к @psplotmeshsize
, который строит размер mesh в каждой итерации, вызовите optimoptions
с синтаксисом
options = optimoptions(options,'PlotFcn',@psplotmeshsize)
Это сохраняет текущие значения всех полей options
за исключением PlotFcn
, который изменяется на @plotmeshsize
. Обратите внимание на то, что, если вы не используете входной параметр options
, optimoptions
сбрасывает MeshExpansionFactor
к своему значению по умолчанию, которое является 2
.
Можно также установить и MeshExpansionFactor
и PlotFcn
с одной командой
options = optimoptions('patternsearch','MeshExpansionFactor',3,'PlotFcn',@psplotmeshsize)
Как альтернатива созданию опций с помощью optimoptions
, можно установить значения опций в приложении Оптимизации и затем экспортировать опции в рабочую область MATLAB®, как описано в Импорте и Экспорте работы (Optimization Toolbox). Если вы экспортируете опции по умолчанию в приложении Оптимизации, получившийся options
имеет те же настройки как опции по умолчанию, возвращенные командой
options = optimoptions('patternsearch')
за исключением значения по умолчанию 'Display'
, который является 'final'
, когда создано optimoptions
, но 'none'
, когда создано в приложении Оптимизации.
Можно также экспортировать целую проблему из приложения Оптимизации и запустить его из командной строки. Войти
patternsearch(problem)
problem
является именем экспортируемой проблемы.