设置选项
您可以使用以下语法将 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)