Задать опции

Вы можете задать любой доступный 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)

См. также

|

Похожие темы