sdo.optimize

包:sdo

设计优化问题解决方案

语法

[param_opt, opt_info] = sdo.optimize (opt_fcn参数)
[param_opt, opt_info] = sdo.optimize (opt_fcn参数,选项)
[param_opt, opt_info] = sdo.optimize(概率)

描述

(param_opt,opt_info)= sdo.optimize (opt_fcn,参数)使用fmincon(默认的优化方法)来解决一个表单的设计优化问题:

最小值 p F ( p ) { C l e ( p ) 0 C e ( p ) = 0 一个 × p B 一个 e × p = B e l b p u b

在哪里

  • F-成本(目标)

  • p——设计变量

  • Cleq,C情商-非线性不等式和平等约束

  • 一个,B-线性不等式约束

  • 一个情商,B情商-线性等式约束

  • ,乌兰巴托-上界和下界p

(param_opt,opt_info)= sdo.optimize (opt_fcn,参数,选项)指定优化选项。对于参数估计,通常使用非线性最小二乘法:

选择= sdo.OptimizeOptions(‘法’,‘lsqnonlin’);

(param_opt,opt_info)= sdo.optimize (概率)使用包含要最小化的函数、设计变量和优化选项的结构。

输入参数

opt_fcn

成本函数最小化。优化求解器在优化过程中调用此函数。

功能要求:

  • 一个输入参数,它是一个向量param.Continuous要调优的对象。

    若要传递其他输入参数,请使用匿名函数。例如,new_fcn = @(p) fcn(p,arg1,arg2,…)

  • 一个输出参数,它是一个结构与一个或多个以下字段:

    • F-评估成本(目标)的价值p。求解最小化F

      F是一个1 x1翻倍。

    • Cleq-非线性不等式约束违反的取值为p。解算器满足Cleq (p) < = 0

      Cleq是一个双mx₁向量,为非线性不等式约束的个数。

    • 量表信-非线性等式约束违反的值p。解算器满足量表(p) = = 0

      值是doublerx1向量,r为非线性等式约束的个数。

    • leq-线性不等式约束违反的取值为p。解算器满足leq (p) < = 0

      leq是一个双资料片向量,n为线性不等式约束的个数。

    • 情商-线性等式约束违反的值p。解算器满足eq (p) = = 0

      情商是一个双这位朋友向量或[],在那里年代为线性等式约束的个数。

    要指定一个纯粹的可行性问题,省略F或一组F = []。要指定最小化问题,可以省略Cleq,量表信,leq情商或将它们的值设置为[]

    该软件使用数值扰动来计算成本梯度和违反约束的情况。如果要指定如何计算梯度,请包含第二个输出参数并设置GradFcn的属性sdo.OptimizeOptions“上”。这个参数必须是一个结构与一个或多个以下字段:

    • F——双资料片向量,其中包含dF / dp (p),在那里n为标量参数的个数。

    • Cleq——双nxm矩阵包含dCleq / dp (p),在那里为非线性不等式约束的个数。

    • 量表信——双nxr矩阵包含dCeq / dp (p),在那里r为非线性等式约束的个数。

    必须返回所有适用的违反目标和约束的导数。

例如,键入编辑sdoExampleCostFunction

参数

一个param.Continuous对象或对象的向量。

选项

优化选项。

选项是否设置了使用sdo.OptimizeOptions。使用此选项设置来指定:

  • 优化方法

  • 最大迭代次数

  • 公差

概率

具有以下字段的结构:

  • OptFcn-要最小化的函数名。看到opt_fcn对于该函数的输入和输出参数的要求。

  • 参数——一个param.Continuous对象或对象的向量

  • 选项-优化选项,指定使用sdo.OptimizeOptions

输出参数

param_opt

一个param.Continuous对象或对象的向量,其中包含优化的参数值价值财产。

opt_info

优化信息。结构与一个或多个以下字段:

  • F-优化成本(目标)值。

  • Cleq-优化非线性不等式约束违反。

    中指定非线性不等式约束时,将出现该字段opt_fcn

    值是amx₁向量,其中元素的顺序对应于中指定的顺序opt_fcn。正的值表示约束没有被满足。检查exitflag确认优化成功。

  • 量表信-优化的非线性等式约束违反。

    中指定非线性等式约束时,将出现该字段opt_fcn

    值是doublerx1向量,其中元素的顺序对应于中指定的顺序opt_fcn。任何非零值都表示约束没有得到满足。检查exitflag确认优化成功。

  • leq-优化线性等式约束违反。

    如果指定一个线性等式约束,则会出现该字段opt_fcn

    值是double资料片向量,其中元素的顺序对应于中指定的顺序opt_fcn。非零值表示约束没有被满足。检查exitflag确认优化成功。

  • 情商-优化线性等式约束违反。

    如果在中指定线性等式约束,则会出现该字段opt_fcn

    值是double这位朋友向量,其中元素的顺序对应于中指定的顺序opt_fcn。非零值表示约束没有被满足。检查exitflag确认优化成功。

  • 梯度-在优化参数值处的成本和约束梯度。看到优化算法如何构造最小化问题关于求解器如何计算梯度。

    方法中指定的求解程序时,将出现此字段方法的属性sdo.OptimizeOptions计算梯度。

    值是一个字段依赖的结构opt_fcn

  • exitflag-整数标识算法终止的原因。看到fmincon,patternsearchfminsearch的值和相应的终止原因的列表。

  • 迭代-优化迭代次数

  • SolverOutput-具有特定于求解器的输出信息的结构。中指定的优化求解器决定该结构的域方法的属性sdo.OptimizeOptions。看到fmincon,patternsearchfminsearch有关求解器输出及其说明的列表。

  • 统计数据-包含优化期间收集的统计信息的结构,例如开始和结束时间、函数计算和重新启动的次数。

例子

全部折叠

创建设计变量。

p = param.Continuous (“x”1);

指定优化选项。

选择= sdo.OptimizeOptions;选择。GradFcn =“上”;

优化参数。

[pOpt,opt_info] = sdo. optimization (@(p) sdoExampleCostFunction(p),p,opts);
优化开始29-Feb-2020 03:54:13最大一阶Iter f -count f(x)约束步长最优性03 10 1 5 0.09 0 0.7 0.59 2 6 0.0716349 0.001047 0.0324 0.0129 37 0.0717968 9.127e-08 0.000302 2.37e-06局部最小找到满足约束条件。优化完成是因为目标函数在可行方向上是不递减的,使其落在最优公差的取值范围内,且约束满足约束公差的取值范围内。

提示

  • 默认情况下,软件会在MATLAB中显示每次迭代的优化信息®命令窗口。要了解更多有关显示的信息,请参阅:

    • 迭代显示(优化工具箱)当优化方法指定为“fmincon”(默认),“fminsearch”,或“lsqnonlin”

    • 显示到命令窗口选项(全局优化工具箱)当优化方法指定为“patternsearch”

    属性配置此显示的级别MethodOptions.Display优化选项集的属性。

扩展功能

介绍了R2011b