Вы можете задать любой доступный 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
The patternsearch
функция использует эти значения по умолчанию, если вы не проходите options
как входной параметр.
Значение каждой опции сохранено в поле options
, таких как options.MeshExpansionFactor
. Любое из этих значений можно просмотреть путем ввода options
далее указывается имя поля. Для примера, чтобы отобразить коэффициент расширения сетки для поиска шаблона, введите
options.MeshExpansionFactor
ans = 2
Создание options
со значением поля, отличным от значения по умолчанию, используйте optimoptions
. Для примера измените коэффициент расширения сетки на 3
вместо его значения по умолчанию 2
, введите
options = optimoptions('patternsearch','MeshExpansionFactor',3);
Это создает options
со всеми значениями, установленными по умолчанию, за исключением MeshExpansionFactor
, который установлен в 3
.
Если вы сейчас звоните patternsearch
с аргументом options
при поиске шаблона используется коэффициент расширения сетки 3
.
Если впоследствии вы решите изменить другое поле в options
, например, установка PlotFcn
на @psplotmeshsize
, который строит график размера сетки при каждой итерации, вызов optimoptions
с синтаксисом
options = optimoptions(options,'PlotFcn',@psplotmeshsize)
Это сохраняет текущие значения всех полей options
кроме PlotFcn
, который изменяется на @plotmeshsize
. Обратите внимание, что если вы опускаете options
входной параметр, optimoptions
сбрасывает MeshExpansionFactor
к своему значению по умолчанию, которое 2
.
Можно также задать оба MeshExpansionFactor
и PlotFcn
с помощью одной команды
options = optimoptions('patternsearch','MeshExpansionFactor',3,'PlotFcn',@psplotmeshsize)