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