📄 test.m
字号:
%形成仿射变换对角阵D及其逆矩阵D_ni
for i=1:n
D(1,i)=S(i);
D_ni(1,i)=1./S(i);
end
%形成中间矩阵Z1=A*D_ni^2
for i=1:m
for j=1:n
Z1(i,j)=A(i,j)*D_ni(1,j)^2;
end
end
Z2=inv(Z1*A');
%得出移动方向D_w,D_s
D_w=Z2*b;
D_s=-A'*Z2*b;
%求解原问题的解X,并计算X中负变量的个数
K=0;
for i=1:n
X(i,1)=-D_ni(1,i)^2*D_s(i,1);
if X(i,1)<0
K=K+1;
end
end
%检测对偶间隙是否满足精度条件
if K==0
K1=0;K2=0;
for i=1:n
K1=K1+C(i,1)*X(i,1);
end
for i=1:m
K2=K2+W(i,1)*b(i,1);
end
K3=K1-K2;
%满足精度条件,显示原问题和对偶问题的解
if K3<pr
disp('对偶问题近优解W为:');
disp(W);
disp('对偶问题近优解S为:');
disp(S);
disp('原始问题近优解X为:');
disp(X);
break
end
%不满足精度条件,调用迭代改进函数
improve
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -