线性规划——最小化 t
Linear Programming -- Minimizing t
我正在尝试在 matlab 中解决以下问题,但遇到了一些困难。
Min t
s.t.
t>= 0.0538λ_2 - 0.7071λ_1
t>= λ_1 - 0.3827λ_2
where 0<=λ_j<=1 for j=1,2
这是我目前拥有的:
f=[0;0;1]
A=[-0.7071 0.0538 -1;
1 -0.3827 -1]
B=[0;0]
ub=zeros(2,1)
lb=zeros(2,1)
linprog(f,A,B,[],[],lb,ub);
这个问题取自一篇研究论文,作者解决了上述问题并找到了最优值t=−0.12698。我的实施没有得到正确的答案。有人能帮助我吗。另外,如何在 linprog()
中指定我想使用单纯形法。
矩阵 A 设置不正确。
您需要确定哪些变量应该放在什么位置。
A=[-0.7071 0.0538 -1;
1 -0.3827 -1]
P.S。对不起我的英语。
这应该会给您正确的结果:
f=[1;0;0];
A=[-1 -0.7071 0.0538;
-1 1 -0.3827] ;
B=[0;0] ;
ub=[inf 1 1] ;
lb=[-inf 0 0] ;
options = optimset('Algorithm','simplex');
xres = linprog(f,A,B,[],[],lb,ub,[],options);
请注意,linprog
需要您输入以下格式:
分钟 x
s.t。斧 <=b
我在这里所做的是设置向量 x = [t l1 l2]
,因此结果向量 xres
中的第一个条目对应于 t
。您可以使用 optimset
函数设置算法。
此外,您只为 3 个变量中的 2 个设置了下限和上限,因此 matlab 在这方面给了我一些警告。为了保险起见,通常最好为不受限制的变量设置'dummy'限制(即这里我将t
的上限设置为inf
,下限设置为-inf
).这样,您就可以确保将正确的界限应用于正确的变量。
我正在尝试在 matlab 中解决以下问题,但遇到了一些困难。
Min t
s.t.
t>= 0.0538λ_2 - 0.7071λ_1
t>= λ_1 - 0.3827λ_2
where 0<=λ_j<=1 for j=1,2
这是我目前拥有的:
f=[0;0;1]
A=[-0.7071 0.0538 -1;
1 -0.3827 -1]
B=[0;0]
ub=zeros(2,1)
lb=zeros(2,1)
linprog(f,A,B,[],[],lb,ub);
这个问题取自一篇研究论文,作者解决了上述问题并找到了最优值t=−0.12698。我的实施没有得到正确的答案。有人能帮助我吗。另外,如何在 linprog()
中指定我想使用单纯形法。
矩阵 A 设置不正确。 您需要确定哪些变量应该放在什么位置。
A=[-0.7071 0.0538 -1;
1 -0.3827 -1]
P.S。对不起我的英语。
这应该会给您正确的结果:
f=[1;0;0];
A=[-1 -0.7071 0.0538;
-1 1 -0.3827] ;
B=[0;0] ;
ub=[inf 1 1] ;
lb=[-inf 0 0] ;
options = optimset('Algorithm','simplex');
xres = linprog(f,A,B,[],[],lb,ub,[],options);
请注意,linprog
需要您输入以下格式:
分钟 x
s.t。斧 <=b
我在这里所做的是设置向量 x = [t l1 l2]
,因此结果向量 xres
中的第一个条目对应于 t
。您可以使用 optimset
函数设置算法。
此外,您只为 3 个变量中的 2 个设置了下限和上限,因此 matlab 在这方面给了我一些警告。为了保险起见,通常最好为不受限制的变量设置'dummy'限制(即这里我将t
的上限设置为inf
,下限设置为-inf
).这样,您就可以确保将正确的界限应用于正确的变量。