• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: Matlab
  • 标签: 单纯形  

资源简介

单纯形算法的matlab实现,有详细的注释

资源截图

代码片段和文件信息

function [xf]=danchunxing(Abcbase_index)

[mn]=size(A);
if(nargin==3)       %若没有指明基矩阵的坐标,则默认为最后m列
    base_index=(n-m+1):n;
end
index=1:n;
[~non_base_index]=union(indexbase_index);
x=zeros(n1);

threshold=1e-5;
while(1)
% for i=1:20 
base=A(:base_index);       %寻找基矩阵
B_inv=inv(base);        
xb=B_inv*b;                 %基本可行解
f=c(base_index)*xb;         %计算当前目标函数值
w=c(base_index)*B_inv;      %
dis=w*A(:non_base_index)-c(non_base_index);%计算判别数
[dis_valdis_position]=max(dis);            %计算最大的判别数
if(dis_val<=threshold)
    break
end
y=B_inv*A(:dis_position);
if(max(y)<=0)
    fprintf(‘该问题不存在有限最优解\n‘)
    break
end
temp=xb./y;             %保证新的x的分量大于0
temp(temp<=0)=inf;
[r_valr]=min(temp);    %根据最小值确定进基操作    

base_index(r)=non_base_index(dis_position); %进基操作
non_base_index(dis_position)=base_index(r); %退基操作
end

x(base_index)=xb;



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        984  2015-03-31 13:33  单纯形\danchunxing.m

     文件        312  2015-03-31 12:25  单纯形\test.m

     目录          0  2015-04-02 17:01  单纯形

----------- ---------  ---------- -----  ----

                 1296                    3


评论

共有 条评论