【发布时间】:2019-08-11 06:19:11
【问题描述】:
我正在尝试为最大化 LP 问题编写仿射缩放方法,我使用了以下代码。
function [X,y,k] = affsm(A,x,c)
xx(:,1)=x';
er=1e-5
k=1;
test=1;
r=2/3;
theta=1
while test>er/theta
D = diag(xx(:,k).^2);
AD = A*D;
dx = -(D-AD'*(AD*A')^(-1)*AD)*c';
theta =r*min([xx(:,k)./abs(dx);1]);
xx(:,k+1) = xx(:,k) + theta*dx ;
test=max([c*dx ,norm(dx)]);
k=k+1;
end
y=xx(:,k);
X=xx;
end
我正在尝试解决以下问题
\begin{array}{c}{\max \quad Z=3 x+5 y} \\ {x+3 y \leq 60} \\ {3 x+4 y \leq 120} \\ {x \geq 10} \\ {x, y \geq 0}\end{array}
但它给了我错误的结果我在上面的代码中做错了什么?
注意:最优解必须是$(x,y)=(12,24)$ with $z=132$
【问题讨论】:
-
您的问题中有一个错误:
(x,y)=(24,12)而不是(12,24)。 SO也不支持latex。
标签: matlab optimization linear-programming