主要内容

开始使用基于优化生活编辑任务

这个示例脚本可以帮助您使用具体问题具体分析优化住编辑任务优化或方程求解。修改脚本为自己的问题。

脚本解决非线性约束的非线性优化问题:

最小化 r o 年代 e n b r o c k ( x , y , 一个 ) = 日志 ( 1 + 一个 ( y - - - - - - x 2 ) 2 + ( 1 - - - - - - x ) 2 ) 受约束 x 2 + y 2 1 ,在那里 一个 = 1 0 0 和初始点 x 0 x = - - - - - - 2 , y = 2 。同时,实施范围 - - - - - - 3 x 3 , - - - - - - 2 y 9

目标函数的代码出现在这个脚本

包括参数或数据

通常,您有数据或值通过解算器。这些值在输入部分(你看到的地方x0xx0y通过选择)和运行部分部分>运行部分或按控制+ Enter

设置初始点组件x0xx0y和规模一个的优化。

x0x = 2;x0y = 2;一个= 100;

将这些价值观和其他问题数据到工作区中本节通过运行之后再继续。

优化现场编辑任务

通常,您将优化编辑任务的脚本通过选择生活任务>优化住编辑器选项卡,或通过选择任务>优化插入选项卡。然后你提出以下的选择(这只是一幅画,而不是真正的任务):

optimizestart.png

具体问题具体分析的任务,点击具体问题具体分析(推荐)

以下具体问题具体分析任务变量、目标和约束。修改你的问题,或运行它是看到的任务是如何工作的。修改的问题,点击定义问题按钮底部的任务。运行的任务,点击解决问题按钮底部的任务。

生活任务
OptimizationProblem:解:x, y最小化:日志(((1 + (100。* (y - x ^ 2)。^ 2)) + (1 - x) ^ 2))主题:(x。^ 2 + y ^ 2) < = 1变量范围:3 < = x < = 3 2 < = y < = 9
使用fmincon解决问题。局部最小值发现,满足约束。优化完成,因为目标函数中引入可行的方向,在最优值的宽容,和约束满足约束的值公差内。
解决方案=结构体字段:x: 0.7864 y: 0.6177
reasonSolverStopped = OptimalSolution
objectiveValue = 0.0447

解释结果

任务调用解决,电话fmincon来解决这个问题。顶部的任务返回的显示解决方案解决方案结构。报道解决方案,x = 0.7864y = 0.6177,满足约束 x 2 + y 2 1 ,你可以看到在接下来的计算。

解决方案。x^2 + solution.y^2
ans = 1.0000

解算器报告退出条件OptimalSolution当它停止。解释这种情况,看看exitflag输出参数fmincon解算器。描述状态“一阶最优性措施小于选项。OptimalityTolerance,和最大约束违反小于options.ConstraintTolerance。”In other words, the solution is a feasible local minimum.

解的目标函数值是0.0457。这个是最小的目标函数值之间的可行点。

辅助函数

这段代码创建了helper函数。

函数目标=。(x, y)%这个函数应该返回一个标量代表一个优化目标。%的例子:小卖部的利润%的收入= 3 *苏打水+ 5 *爆米花+ 2 *糖果;%成本= 1 *苏打水+ 2 *爆米花+ 0.75 *糖果;% =收入-成本目标;%的利润%编辑下面的线和你的计算。目标=日志(1 + * (y - x ^ 2) ^ 2 + (1 - x) ^ 2);结束

另请参阅