在 matlab 中求解线性优化
solving linear optimisation in matlab
我有一个简单的线性问题定义为:
min f(x) such that :A.x <=b
Aeq.x = beq
lb<= x <=ub
我的变量向量是:
x =[x(1)i;x(2)i;x(3)i;x(4)i;x(5);x(6)] i=1...n
我很难写出定义如下的上限约束:
x(1).i <= x(5)
x(2).i <= x(5)
x(3).i <= x(6)
如何创建上界矢量?我应该把所有的变量都放在左边,写成不等式约束吗?
感谢您的帮助。
上限约束 ub
适用于上限为 数字 的情况(更准确地说是双精度向量)。 ub
对于广义线性不等式约束 不是 !
我将忽略你的 .i 符号,因为我不知道那是什么意思。
你的约束条件:x1 <= x5
、x2 <= x5
、x3 <= x6
可以写成矩阵形式:
[1 0 0 0 -1 0 [x1 [0
0 1 0 0 -1 0 * x2 <= 0
0 0 1 0 0 -1] x3 0];
x4
x5
x6
因此,要使用几个 Matlab 求解器,您会这样做:
A = [1, 0, 0, 0, -1, 0;
0, 1, 0, 0, -1, 0;
0, 0, 1, 0, 0, -1];
b = zeros(3, 1);
现在你的约束写成 A*x <= b
我有一个简单的线性问题定义为:
min f(x) such that :A.x <=b
Aeq.x = beq
lb<= x <=ub
我的变量向量是:
x =[x(1)i;x(2)i;x(3)i;x(4)i;x(5);x(6)] i=1...n
我很难写出定义如下的上限约束:
x(1).i <= x(5)
x(2).i <= x(5)
x(3).i <= x(6)
如何创建上界矢量?我应该把所有的变量都放在左边,写成不等式约束吗?
感谢您的帮助。
上限约束 ub
适用于上限为 数字 的情况(更准确地说是双精度向量)。 ub
对于广义线性不等式约束 不是 !
我将忽略你的 .i 符号,因为我不知道那是什么意思。
你的约束条件:x1 <= x5
、x2 <= x5
、x3 <= x6
可以写成矩阵形式:
[1 0 0 0 -1 0 [x1 [0
0 1 0 0 -1 0 * x2 <= 0
0 0 1 0 0 -1] x3 0];
x4
x5
x6
因此,要使用几个 Matlab 求解器,您会这样做:
A = [1, 0, 0, 0, -1, 0;
0, 1, 0, 0, -1, 0;
0, 0, 1, 0, 0, -1];
b = zeros(3, 1);
现在你的约束写成 A*x <= b