Можно задать любой доступный 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
имя экспортируемой проблемы.