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