开始使用基于求解器的优化实时编辑器任务
这个示例脚本帮助您使用基于求解器的方法优化用于优化或方程求解的实时编辑器任务。针对您自己的问题修改脚本。
该脚本解决了非线性约束的非线性优化问题。
包含参数或数据
通常,要将数据或值传递给求解器。将这些值放在输入部分(在这里您可以看到x0
),并通过选择运行该部分>执行Section或按控制+ Enter
.
设定起始点x0
和规模一个
为了优化。
X0 = [2;1];A = 100;
把x0
值和任何其他问题数据放入工作区在继续之前先运行本节。
优化实时编辑器任务
通常,通过选择将Optimize Live Editor任务放置到脚本中任务>优化在住编辑器选项卡,或通过选择任务>优化在插入选项卡。然后你会面临以下选择(这只是一张图片,不是真正的任务):
要获取基于求解器的任务,请单击Solver-based.
以下基于求解器的任务包括目标函数和非线性约束函数。要更改这些函数,请编辑函数清单任务下面.
要更改约束,请选择适当的约束类型并在输入框中输入值。您可能需要在包含的部分中输入值x0
并运行该节以在工作区中放置值。
通过单击左侧的条纹条或通过选择运行任务运行或>执行Section,或按控制+ Enter
.
找到满足约束条件的局部最小值。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。
结果
优化
将解决方案保存到工作区变量解决方案
,并将目标函数值保存在工作空间变量的解处objectiveValue
.控件的顶部可以查看和修改这些变量名优化
的任务。
查看这些变量。
解决方案
解决方案=2×11.1413 - 1.3029
objectiveValue
objectiveValue = 0.0200
查看解处的非线性约束函数值。
[ccons,ceqcons] = constraintFcn(solution)
ccons =1×2-2.0000 - -0.0000
Ceqcons = []
Helper函数—本地函数
下面的代码创建目标函数。针对您的问题修改此代码。
函数f = objectiveFcn f (x) = a * x (x (2) - (1) ^ 2) ^ 2 + (1 - x (1)) ^ 2;结束
下面的代码创建约束函数。针对您的问题修改此代码。
函数测查[c] = constraintFcn (x) c (1) = x (1) ^ 2 + (2) ^ 2 - 5;C (2) = 3 - x(1)^2 - x(2)^2;Ceq = [];%无等式约束结束