主要内容

OptimizationExpression

算术表达式或功能的优化变量

描述

一个OptimizationExpression是一个算术表达式或功能的优化变量。使用一个OptimizationExpression作为一个目标函数,或作为一个不平等或平等的约束方程。

创建

创建一个优化表达式通过执行操作OptimizationVariable对象。使用标准的MATLAB®算法包括权力、索引和连接的优化变量创建表达式。看到金宝app支持操作优化变量和表达式例子

您还可以创建一个优化表达式从MATLAB函数应用到优化变量使用fcn2optimexpr。有关示例,请参见从非线性函数创建表达式具体问题具体分析非线性优化

创建一个空的优化使用表达式optimexpr。通常,然后填补这一表达在一个循环中。有关示例,请参见通过循环创建优化表达式optimexpr函数引用页面。

在您创建一个表达式,用它作为一个目标函数,或者作为一个约束方程。有关示例,请参见解决函数引用页面。

属性

全部展开

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

数据类型:细胞

这个属性是只读的。

优化变量的对象,指定为一个结构OptimizationVariable对象。

数据类型:结构体

对象的功能

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

例子

全部折叠

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

x = optimvar (“x”3 2);expr =总和(sum (x))
线性OptimizationExpression expr = x (1) + (2, 1) + x (3,1) + (1、2) + x (2, 2) + (3 2)
f = (2 10 4);w = f * x;显示(w)
(1,1)2 * x (1,1) + 10 * x (2, 1) + 4 * (3,1) (1、2) 2 * x (1、2) + 10 * x (2, 2) + 4 * (3 2)

创建一个优化表达式通过更换一个优化变量。

x = optimvar (“x”3 2);y = x '
y = 2 x3线性OptimizationExpression数组属性:IndexNames:{{}{}}变量:[1 x1 struct]包含1 OptimizationVariable看到显示的表达公式。

简单的索引优化阵列不会创建一个表达式,而是创建一个优化变量引用原来的变量。看到这,创建一个变量w这是第一和第三排x。请注意,w是一个优化变量,而不是一个优化表达式。

w = x ([1,3],:)
w = 2 x2 OptimizationVariable数组属性:只读array-wide属性:名称:“x”型:“连续”IndexNames: {{} {}} Elementwise属性:下界:[2 x2双]UpperBound: [2 x2双]引用的一个子集OptimizationVariable名称“x”。看到显示的变量。看到与showbounds界限。

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

y = optimvar (“y”4、3);z = optimvar (“z”4、7);f = [y, z]
f = 4 x10线性OptimizationExpression数组属性:IndexNames:{{}{}}变量:[1 x1 struct]包含2 OptimizationVariables看到显示的表达公式。

使用optimexpr创建一个空的表情,然后填补这一表达在一个循环中。

y = optimvar (“y”、6、4);expr = optimexpr (3,2);i = 1:3j = 1:2 expr (i, j) = (2 * i, j) - y (i, j 2 *);结束结束显示(expr)
(1,1)(2,1)- y (1、2) (2, 1) y (4,1) - y (2, 2) (1) (6,1) - y (3 2) (1、2) (2, 2), y (1、4) (2, 2) y (4,2) - y (2、4) (2) (6 2) - y (3、4)

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

f ( x ) = x 2 / 1 0 + 经验值 ( - - - - - - 经验值 ( - - - - - - x ) )

x = optimvar (“x”);f = x ^ 2/10 + exp (exp (- x))
非线性OptimizationExpression f = ((x。^ 2。/ 10)+ exp (exp ((- x)))))

找到最小的点有趣的从一点开始x0 = 0

x0 =结构(“x”,0);概率= optimproblem (“目标”f);[溶胶,fval] =解决(x0概率)
使用fminunc解决问题。局部最小值。优化完成因为梯度的大小小于最优值的宽容。
索尔=结构体字段:x: -0.9595
fval = 0.1656

如果f不支持的功能,你会把它金宝app使用fcn2optimexpr。看到金宝app支持操作优化变量和表达式将非线性函数优化表达式

f = @ (x) x ^ 2/10 + exp (exp (- x));有趣= fcn2optimexpr (f, x)
非线性OptimizationExpression有趣= ((x。^ 2。/ 10)+ exp (exp ((- x)))))
概率= optimproblem (“目标”、有趣的);[溶胶,fval] =解决(x0概率)
使用fminunc解决问题。局部最小值。优化完成因为梯度的大小小于最优值的宽容。
索尔=结构体字段:x: -0.9595
fval = 0.1656

版权2018 - 2020 MathWorks公司。

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

x = optimvar (“x”3 2);y = optimvar (“y”、1、2);expr =总和(x, 1) - 2 * y;

计算表达式在一个点。

xmat = [3, 1;0,1;2,6];sol.x = xmat;sol.y = [4 3];索尔val =评估(expr)
val =1×23 12

更多关于

全部展开

版本历史

介绍了R2017b