Можно задать любого доступного 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)