主要内容

优化现场编辑任务fmincon解算器

这个例子展示了如何使用solver-based优化生活的编辑任务fmincon解算器来减少二次线性和非线性约束和边界。

考虑发现的问题(x1,x2),解决了

最小值 x f ( x ) = x 1 2 + x 2 2

受约束

0.5 x 1 (绑定) x 1 x 2 + 1 0 (线性不等式) x 1 2 x 2 2 + 1 0 9 x 1 2 x 2 2 + 9 0 x 1 2 + x 2 0 x 2 2 + x 1 0 } (非线性不等式)

的起点x0对于这个问题是x1= 3,x2= 1。

开始优化生活编辑任务

创建一个新的脚本通过单击生活新的生活的脚本按钮文件上节选项卡。

新的生活脚本按钮

插入一个优化住编辑任务。单击插入选项卡,然后在代码部分中,选择任务>优化

插入优化生活编辑任务

优化的任务编辑器:具体问题具体分析(推荐)和solver-based之间做出选择

对于这个示例,选择solver-based任务。

优化生活的任务

供以后使用进入问题数据,选择插入>部分打破。新章节出现上方和下方的任务。

输入问题数据

  1. 从顶部的任务,输入类型和约束类型的问题。单击目标>二次按钮,约束>下界,线性不等式,非线性按钮。任务显示推荐的解决者fmincon

  2. 目标函数

    目标函数很简单表示为一个匿名函数。光标位置在上面的部分任务,进入这段代码。

    有趣= @ (x)和(x ^ 2);
  3. 下界

    这个问题包含了下界x1≥0.5。表达这个绑定变量。用光标的线定义目标函数,出版社输入,输入以下代码指定下界。

    磅=(0.5负);
  4. 初始点

    光标在最后的线定义下界,出版社输入,输入以下代码设置起始点。

    x0 = (3,1);
  5. 线性约束条件

    用光标的线定义起始点,出版社输入,输入以下代码设置线性约束。

    一个= [1];b = 1;
  6. 运行部分

    顶部部分包括五个参数。

    五行代码定义初始参数

    接下来,您需要运行在工作区中部分地方参数作为变量。这样做,点击最左边的区域的部分,其中包含一条对角线条纹。单击这个区域后,酒吧成为一个坚实的酒吧,指示变量现在在工作区中。(注:你也可以按Ctrl + Enter运行部分。)

  7. 问题数据

    输入的变量选择问题数据部分的任务。指定目标函数,选择目标函数>函数处理并选择有趣的

  8. 设置初始点x0

  9. 选择下界>从工作区并选择

  10. 设置线性不等式约束变量一个b线性不等式区域。

  11. 现在指定非线性不等式约束。在选择问题数据部分中,选择非线性>本地函数,然后单击按钮。下面的函数出现在一个新的部分任务。编辑生成的代码包含以下注释行。

    函数测查[c] = constraintFcn (x)%可以包含注释代码行。%确定这些注释行依然存在:c = (- x (1) ^ 2 - x (2) ^ 2 + 1;9 * x (1) ^ 2 - x (2) ^ 2 + 9;x - x (1) ^ 2 + (2);x - x (2) ^ 2 + (1)];测查= [];结束
  12. 选择问题数据部分中,选择constraintFcn函数。

  13. 监测进展

    显示进度部分的任务,选择文本显示>每个迭代所以你可以监控解决进展。选择客观价值的阴谋。

    你的设置是这样的:

    fmincon解算器,目标函数处理好玩,初始点x0,下界磅,线性不等式约束A和b, constraintFcn非线性局部函数,显示每个迭代,情节的客观价值

解算器运行并检查结果

解算器,单击选项按钮在任务的右上角的窗口,并选择运行部分

解算器运行;键盘是按ctrl + enter

情节出现在一个单独的图窗口并在任务输出区域。

图显示12迭代和最后一个函数值2

看到解决变量返回,顶部的任务。

使用fmincon解算器解决方案,objectiveValue =最小化乐趣

最后点及其相关的目标函数值中出现解决方案objectiveValue在工作区中变量。把这些值通过输入这个代码在下面住编辑部分任务。

解决方案,objectiveValue

新闻按Ctrl + Enter运行部分。

解决方案= [1],objectiveValue = 2

另请参阅

|

相关的话题