主要内容

优化函数使用simulannealbnd,具体问题具体分析

这个例子展示了当目标是一个可能包含未知内容的函数文件(一个“黑盒”函数)时,如何在基于问题的方法中使用模拟退火最小化一个函数。函数求最小值,dejong5fcn (x),在运行此示例时可用。画出函数。

dejong5fcn

图中包含一个轴对象。坐标轴对象包含曲面、轮廓等2个对象。

创建一个二维优化变量x.的dejong5fcn函数期望变量是行向量,因此指定x作为一个2元行向量。

X = optimvar(“x”、1、2);

使用dejong5fcn作为目标函数,将函数转换为优化表达式,使用fcn2optimexpr

Fun = fcn2optimexpr(@dejong5fcn,x);

用目标函数创建一个优化问题有趣的

问题=优化问题(“客观”、有趣的);

在所有组件中设置变量边界从-50到50。当您指定标量边界时,软件将边界扩展到所有变量。

x.LowerBound = -50;x.UpperBound = 50;

在边界内设置一个伪随机起始点。初始点是一个带场的结构x

rng默认的%用于再现性x0。x= x.LowerBound + rand(size(x.LowerBound)).*x.UpperBound;

解决问题,指定simulannealbnd解算器。

[sol,fval] = solve(prob,x0,“规划求解”“simulannealbnd”
用simulannealnd求解问题。优化终止:最佳函数值的更改小于options.FunctionTolerance。
索尔=带字段的结构:X: [-32.0371 -31.8792]
Fval = 0.9980

另请参阅

||

相关的话题

Baidu
map