主要内容

运行解算器

通过调用run进行优化

运行一个求解器几乎是相同的GlobalSearchMultiStart.语法上的唯一区别是MultiStart接受描述起始点的额外输入。

例如,假设你想找到几个局部最小值sixmin函数

sixmin = 4x2- 2.1x4+x6/ 3 +xy- 4y2+ 4y4

生成图形的代码

这个函数也称为六峰骆驼背函数[3].所有的局部最小值都在这个区域内3≤xy≤3

运行GlobalSearch的例子

求的几个局部极小值sixmin函数使用GlobalSearch,输入:

% %设置随机流得到完全相同的输出% rng(14,'twister') gs = GlobalSearch;选择= optimoptions (@fmincon、“算法”、“内点”);sixmin = @ (x) (4 * x (1) ^ 2 - 2.1 * (1) ^ 4 + x(1) ^ 6/3……+ x(1)*x(2) - 4*x(2)^2 + 4*x(2)^4)问题= createOptimProblem (fmincon, x0,[1、2],…sixmin“客观”,“磅”,[3 3],乌兰巴托,3,3,…“选项”,选择);[xm,调频,兴,outptg manyminsg] =运行(gs、问题);

运行的输出(根据随机种子的不同而不同):

xm,调频,弗拉格,outptg manyminsg xm = 0.0898 -0.7127 fm = -1.0316兴= 1 outptg =结构体字段:funcCount: 2115 localSolverTotal: 3 localSolverSuccess: 3 localSolverIncomplete: 0 localSolverNoSolution: 0消息:“GlobalSearch停止,因为它分析所有的审判阿宝……' manyminsg = 1x2 GlobalOptimSolution数组的属性:X Fval Exitflag输出X0

使用MultiStart运行的示例

求的几个局部极小值sixmin函数使用50次fminconMultiStart,输入:

设置随机流得到完全相同的输出% rng(14,'twister') ms = MultiStart;选择= optimoptions (@fmincon、“算法”、“内点”);sixmin = @ (x) (4 * x (1) ^ 2 - 2.1 * (1) ^ 4 + x(1) ^ 6/3……+ x(1)*x(2) - 4*x(2)^2 + 4*x(2)^4)问题= createOptimProblem (fmincon, x0,[1、2],…sixmin“客观”,“磅”,[3 3],乌兰巴托,3,3,…“选项”,选择);[xminm, fminm flagm、outptm manyminsm] =运行(女士,问题,50);

运行的输出(根据随机种子的不同而不同):

Xminm,Fminm,Flagm,Outptm,Manyminsm Xminm = 0.0898 -0.7127 Fminm = -1.0316 Flagm = 1 OutptM =结构与字段所有起点。...'Monyminsm = 1x6 globaloptimsolution arrution arrult arrult arruct:x fval ExitFlag输出X0

在这种情况下,MultiStart位于所有六个局部最小值,而GlobalSearch位于两个。浏览MultiStart金宝搏官方网站解决方案,请参阅想象吸引的盆地

相关的话题