设置选项
您可以使用以下语法将 options
作为输入参量传递给 patternsearch
,从而指定任何可用的 patternsearch
选项
[x,fval] = patternsearch(@fitnessfun,nvars, ... A,b,Aeq,beq,lb,ub,nonlcon,options)
对于问题中未出现的任何约束,传入空括号 []
。
使用 optimoptions
函数创建 options
。
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
后跟字段名称来显示这些值中的任何一个。例如,要显示模式搜索的网格扩展因子,请输入
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)