文件帮助中心文件
创建空的优化不等式数组
constr = OptimineQ(n)
CONSTRIC = OPTOMINEQ(CSTR)
CONSTR = OptimineQ(CSTR1,N2,...,CSTRK)
CONSTRIC = OptimineQ({CSTR1,CSTR2,...,CSTRK})
class = OptimineQ([n1,n2,...,nk])
用optimineq初始化一组不等式表达式。
optimineq
提示
有关完整的工作流,请参见基于问题的优化工作流程.
例子
约束= OptimineQ(N.的)创造一个N.- 1个空虚的优化不等式数组。用约束初始化创建不等式表达式的循环。
约束= OptimineQ(N.的)
约束
N.
约束= OptimineQ(CSTR.的)创建一系列索引的空优化约束CSTR.,字符向量或字符串向量的单元格数组。
约束= OptimineQ(CSTR.的)
CSTR.
如果CSTR.是1-by-N.CSTR., 在哪里N.CSTR.是元素的数量CSTR., 然后约束也是1-by-N.CSTR..否则,约束是N.CSTR.-By-1。
约束= OptimineQ(CSTR.1,N.2……CSTR.k)或约束= OptimineQ({CSTR.1,CSTR.2……CSTR.k})或约束= optimineq ([N.1,N.2……N.K]),任何组合CSTR.和N.参数,创建一个N.CSTR.1 -N.2 -…——-N.CSTR.k阵列空优化不等式,在哪里N.CSTR.元素的个数是多少CSTR..
约束= OptimineQ(CSTR.1,N.2……CSTR.k)
约束= OptimineQ({CSTR.1,CSTR.2……CSTR.k})
约束= optimineq ([N.1,N.2……N.K])
全部收缩
创建一个两个元素变量的约束X必须位于若干圆心和半径在数组中的圆盘的交点上吗中心和半径.
X
中心
半径
x = Optimvar('X',1,2);中心= [1 -2; 3 -4; -2 3];radii = [6 7 8];CONSTR = OPTOMINEQ(长度(RADII));为了i = 1:长度(约束)contr(i)= sum((x - 中心(i,i:))。^ 2)<=半径(i)^ 2;结尾
查看不等式表达式。
展示(约束)
arg_lhs <= arg_rhs其中:arg1 = zeros([3,1]);arg1(1)= sum((x - extraparams {1})。^ 2);arg1(2)= sum((x - extraparams {2})。^ 2);arg1(3)= sum((x - extraparams {3})。^ 2);arg_lhs = arg1(:);arg1 = zeros([3,1]);arg1(1)= 36;arg1(2)= 49;arg1(3)= 64;arg_rhs = arg1(:); extraParams{1}: 1 -2 extraParams{2}: 3 -4 extraParams{3}: -2 3
您可以通过对变量使用矩阵操作来创建相同的约束,而不是使用循环。
contract2 = sum(([x; x; x] - 中心)。^ 2,2)<=半径'。^ 2;
通过使用矩阵操作创造不等式,循环中的不平等可能会更耗时。
创建索引不等式和变量,以表示饮食中消耗的卡路里。每餐都有不同的卡路里限制。创建代表每种食物的膳食,食物和卡路里的阵列。
饭菜= [“早餐”那“午餐”那“晚餐”];食物= [“谷物”那“麦片”那“酸奶”那“花生酱三明治”那“比萨”那“汉堡包”那......“沙拉”那“牛扒”那“沙锅”那“冰淇淋”];卡路里= [200,175,150,450,350,800,150,650,350,300]'
创建优化变量,代表每一餐的食物,索引的食物名称和膳食名称。
饮食= Optimvar('饮食',食物,饭菜,'indowbound', 0);
设置不平等约束,使每顿饭都有一个卡路里的上限。
CONSTRIC = OPTOMINEQ(餐);为了I = 1:3 constr(I) = diet(:, I)'*卡路里<= 250* I;结尾
观察不平等晚餐.
晚餐
展示(约束(“晚餐”))
200 *饮食('谷物','晚餐')+ 175 *饮食('燕麦','晚餐')+ 150 *饮食('酸奶','晚餐')+ 450 *饮食('花生酱三明治','晚餐')+ 350 *饮食('披萨','晚餐')+ 800 *饮食('汉堡包,'晚餐')+ 150 *饮食('沙拉','晚餐')+ 650 *饮食('牛排','晚餐')+ 350 *饮食('砂锅','晚餐')+ 300 *饮食('冰淇淋','晚餐')<= 750
通过在变量上使用矩阵操作而不是使用循环,可以创建相同的不等式。
Constr2 = diet'*卡路里<= 250*(1:3)';
属性包括不等式的适当索引名称IndexNames财产。
IndexNames
constr2.indexnames = {餐,{}};
显示新的不等式晚餐.注意,它们与前面的不等式相同。
展示(CONTRACH2(“晚餐”))
约束尺寸的大小,指定为正整数。
的大小constr = OptimineQ(n)是N.-By-1。
的大小若干= optimineq (N1、N2)是N1——- - - - - -N2.
若干= optimineq (N1、N2)
N1
N2
的大小CONSTRIC = OPTOMINEQ(N1,N2,...,NK)是N1——- - - - - -N2-By -...-Nk.
CONSTRIC = OPTOMINEQ(N1,N2,...,NK)
Nk
例子:5.
5.
数据类型:双倍的
双倍的
索引的名称,指定为字符向量或字符串向量的单元格数组。
例子:{“红色”、“橙”、“绿色”、“蓝”}
{“红色”、“橙”、“绿色”、“蓝”}
例子:[“红色”;“橙色”;“绿色”;“蓝色”]
[“红色”;“橙色”;“绿色”;“蓝色”]
数据类型:细绳|细胞
细绳
细胞
OptimizationInequality
约束,返回为空OptimizationInequality数组中。用约束初始化创建约束表达式的循环。
例如,
x = Optimvar('X',8);CONSTR = OPTOMINEQ(4);为了k = 1:4约束(k)= 5 * k *(x(2 * k) - x(2 * k-1))<= 10 - 2 * k;结尾
使用向量化表达式创建约束通常比使用循环更有效。看到创建有效的优化问题.
您可以使用optimconstr代替optimineq为优化问题创建不等式约束。
optimconstr
optimconstr|optimeq|OptimizationInequality
optimeq
您拥有此示例的修改版本。您是否希望使用您的编辑打开此示例?
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,以便在可用的地方进行翻译内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获得最佳网站性能。其他MathWorks国家网站未优化您所在地的访问。
联系您当地的办公室