资源描述:
《模糊数学方法及其应用6-7》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、模糊数学方法及其应用6-7%谢季坚刘承平《模糊数学方法及其应用》第三版中部分算法MATLAB程序%6.F_Jlfx.mfunctionF_Jlfx(bzh,fa,X)%模糊聚类分析%bzh数据标准化类型;fa建立模糊相似矩阵的方法;X原始数据矩阵X=F_JlSjBzh(bzh,X);R=F_JlR(fa,X);[m,n]=size(R);if(m~=n
2、m==0)return;endF_JlDtjl(R);%谢季坚刘承平《模糊数学方法及其应用》第三版中部分算法MATLAB程序%7.TwoLp.mfunction[z,x,
3、p]=TwoLp(A,b,c,T)%两阶段法求解线性规划%入口参数A,b,c分别表示技术系数矩阵,资源限量向量,价值系数向量,入口参数T是一个向量%向量b的维数必须等于矩阵A的行数m,向量c的维数必须等于矩阵A的列数n%向量T的1至m个分量分别表示m个约束条件,0表示=,1表示≤,2表示≥%向量T的第m+1个分量,0表示min,1表示max%出口参数第一个记录最优值z,第二个记录最优解x%参考例子:[z,x]=twolp([2,3;0,4],[26,13],[1,3],[2,2,0]);[m0,n0]=size(A);%
4、获得矩阵的行列数z=0;x=[];ysn=n0;p=0;if(m0==0)return;end[m,n]=size(c);if(n==1)c=c';n=m;m=1;endif(n~=n0
5、m~=1)fprintf('错误:向量c(第三个入口参数)的维数不等于矩阵A(第一个入口参数)的列数');p=3;return;end[m,n]=size(b);if(m==1)b=b';m=n;n=1;endif(m~=m0
6、n~=1)fprintf('错误:向量b(第2个入口参数)的维数不等于矩阵A(第一个入口参数)
7、的行数');p=3;return;end[m,n]=size(T);if(m==1)m=n;n=1;endif(m<=m0
8、n~=1)fprintf('错误:向量T(第4个入口参数)的维数m0)for(i=1:m0)if(T(i)<0
9、T(i)>2)fprintf('错误:向量T(第4个入口参数)的第%d个分量不是0,1或2',i);p=3;return;end;endif(T(m0+1)<0
10、T(m0+1)>1)f
11、printf('错误:向量T(第4个入口参数)的第%d个分量不是0,或1',m0+1);p=3;return;endendm=m0;n=n0;wcx=0.000000001;Control=T(m+1);if(Control)c=-c;endycs=c;Vb=[];%Vb记录基变量的序号for(i=1:m)%将右端常数变为非负if(abs(b(i))12、);b(i)=-b(i);if(T(i)==2)T(i)=1;elseif(T(i)==1)T(i)=2;endendif(T(i))n=n+1;%化为标准型A(:,n)=0;if(T(i)==1)A(i,n)=1;Vb(i)=n;elseA(i,n)=-1;endendendif(n>ysn)c(n)=0;endc0=c;c=zeros(1,n);n1=n;%非人工变量数for(i=1:m0)if(T(i)~=1)n=n+1;A(i,n)=1;Vb(i)=n;c(n)=1;end;end%增加人工变量A(:,n)=0;
13、[i,j]=size(b);if(i==1)b=b';endif(n==n1)c=c0;endB=eye(m);ddbs=0;%记录迭代次数fprintf('两阶段法求解线性规划:');cB=[];for(j=1:m)cB(j)=c(Vb(j));endwhile(1)ddbs=ddbs+1;%换基迭代bb=B*b;z=cB*bb;%计算检验数行s=0;cBB=cB*B;for(j=1:n1)%搜索正检验数cj=cBB*A(:,j)-c(j);if(abs(round(cj)-cj)<0.000001)cj=roun
14、d(cj);endif(cj>wcx)s=j;break;endendif(s)r=0;p=B*A(:,s);minfds=Inf%假如有正检验数for(i=1:m)if(p(i)>wcx&bb(i)/p(i)