主要内容

优化表达

在优化变量方面的算术或功能表达

描述

一个优化表达在优化变量方面是一种算术或功能表达。用A.优化表达作为一个目标函数,或作为一个不等式或约束或方程中的等式的一部分。

小费

有关完整的工作流,请参见基于问题的优化工作流程基于问题的解决方程的工作流程

创建

通过执行操作创建优化表达式优化Variable.对象。使用标准的MATLAB®算术,包括取幂、索引和连接优化变量来创建表达式。看到金宝app在优化变量和表达式上支持的操作例子

您还可以使用以下命令从应用于优化变量的MATLAB函数创建优化表达式fcn2optimexpr.对于例子,见从非线性函数中创建表达式具体问题具体分析非线性优化

使用。创建空的优化表达式Optimexpr..通常,您将填充循环中的表达式。对于例子,见通过循环创建优化表达式Optimexpr.功能参考页面。

创建表达式后,将其用作目标函数,或作为约束或方程的一部分。例如,请参见解决功能参考页面。

特性

展开全部

索引名称,指定为字符串或字符向量的单元格数组。有关使用索引名称的信息,请参阅为优化变量命名的索引

数据类型:细胞

此属性是只读的。

对象中的优化变量,指定为结构优化Variable.对象。

数据类型:塑造

对象功能

评估 评估优化表达式
显示 显示有关优化对象的信息
保存优化对象描述

例子

全部折叠

通过对优化变量的算术运算创建优化表达式。

x = Optimvar('X'3 2);expr =总和(sum (x))
expr = Linear OptimizationExpression x(1,1) + x(2,1) + x(3,1) + x(1,2) + x(3,2)
f = [2,10,4];w = f * x;秀(W)
(1,1)2 * x(1,1)+ 10 * x(2,1)+ 4 * x(3,1)(1,2)2 * x(1,2)+ 10 * x(2,2)+ 4 * x(3,2)

通过传输优化变量来创建优化表达式。

x = Optimvar('X'3 2);y = x '
y = 2x3带有属性的线性OptimizationExpression数组:IndexNames: {{} {}} Variables: [1x1 struct] contains 1 OptimizationVariable参见expression formula with show。

简单地索引到优化阵列中不会创建表达式,而是创建引用原始变量的优化变量。要查看此功能,请创建一个变量W.这是第一个和第三行X.请注意,W.是优化变量,而不是优化表达式。

w = x ([1,3],:)
w = 2x2优化阵列具有属性:只读数组范围属性:名称:'x'类型:'连续'索引name:{{} {}}元素属性:下行:[2x2 double] Upperbound:[2x2双]参考与名称'x'的优化等待的子集。查看展示变量。看到展示的边界。

通过连接优化变量创建优化表达式。

y = optimvar (“y”,4,3);z = Optimvar(“z”,4,7);f = [y,z]
f = 4x10 Linear OptimizationExpression数组的属性:IndexNames: {{} {}} Variables: [1x1 struct] contains 2 OptimizationVariables参见expression formula with show。

使用Optimexpr.创建空表达式,然后在循环中填充该表达式。

y = optimvar (“y”,6,4);expr = Optimexpr(3,2);为了我= 1:3为了j = 1:2 expr(i,j)= y(2 * i,j) -  y(i,2 * j);结尾结尾展示(expr)
(1,1)y(2,1) -  y(1,2)(2,1)y(4,1) -  y(2,2)(3,1)y(6,1) -  y(3,2)(1,2)y(2,2) -  y(1,4)(2,2)y(4,2) -  y(2,4)(3,2)y(6,2) -  y(3,4)

创建对应于目标函数的优化表达式

F X = X 2 / 1 0. + exp. - exp. - X

x = Optimvar('X');f = x ^ 2/10 + exp(-xexp(-x))
f =非线性优化表达((x。^ 2 ./ 10)+ exp(-x exp(-x)))

找到最小化的点有趣的从这点开始x0 = 0.

x0 = struct('X',0);prob = OptimProblem('客观的'f);[溶胶,fval] =解决(x0概率)
使用fminunc解决问题。发现本地最低限度。优化完成,因为梯度的大小小于最优耐受性的值。
索尔=结构体字段:X:-0.9595
fval = 0.1656

如果F不是支持的函数,您将使金宝app用它使用fcn2optimexpr.看到金宝app在优化变量和表达式上支持的操作将非线性函数转换为优化表达式

f = @(x)x ^ 2/10 + exp(-xexp(-x));fun = fcn2optimexpr(f,x)
fun =非线性优化表达anonymousfunction1(x)其中:anonymouncefunction1 = @(x)x ^ 2/10 + exp(-ixp(-x));
prob = OptimProblem('客观的'、有趣的);[溶胶,fval] =解决(x0概率)
使用fminunc解决问题。发现本地最低限度。优化完成,因为梯度的大小小于最优耐受性的值。
索尔=结构体字段:X:-0.9595
fval = 0.1656

The MathWorks, Inc.版权所有

在两个变量中创建优化表达式。

x = Optimvar('X'3 2);y = optimvar (“y”、1、2);Expr = sum(x,1) - 2*y;

在某一点计算表达式。

XMAT = [3,-1;0,1;2,6];sol.x = xmat;sol.y = [4,-3];Val =评估(Expr,Sol)
val =1×2-3 12.

更多关于

展开全部

在R2017B中介绍