文档库 最新最全的文档下载
当前位置:文档库 › 模糊数学方法及其应用1-4

模糊数学方法及其应用1-4

%谢季坚 刘承平《模糊数学方法及其应用》第三版 中部分算法MATLAB程序
%1.F_tj.m

function[Ax]=F_tj(A,m0)%定义函数
%模糊统计,m0划分区间个数
[n,m]=size(A);%获得矩阵的行列数
Amin=A(1,1);%A的最小值
Amax=A(1,2);%A的最大值
for(i=1:n)
if(A(i,1)>A(i,2))x=A(i,2);A(i,2)=A(i,1);A(i,1)=x;end%A的最小值
if(A(i,1)if(A(i,2)>Amax)Amax=A(i,2);end%A的最大值
end
x=Amin:(Amax-Amin)/m0:Amax;
Ax=[];
for(k=1:m0+1)Ax(k)=0;
for(i=1:n)if(x(k)>=A(i,1) & x(k)<=A(i,2))Ax(k)=Ax(k)+1;end;end
Ax(k)=Ax(k)/n;
end
Bar(Ax);%模糊统计直方图,或用plot(x,Ax)画出折线图


%谢季坚 刘承平《模糊数学方法及其应用》第三版 中部分算法MATLAB程序
%2.Max_Min.m

function[C]=Max_Min(A,B)
%模糊矩阵的合成运算,先取大,后去小
[m,s]=size(A);[s1,n]=size(B);C=[];
if(s1~=s)return;end
for(i=1:m)for(j=1:n)C(i,j)=0;
for(k=1:s)x=0;
if(A(i,k)else x=B(k,j);end
if(C(i,j)end
end;end


%谢季坚 刘承平《模糊数学方法及其应用》第三版 中部分算法MATLAB程序
%3.F_JlSjBzh.m

function[X]=F_JlSjBzh(cs,X)
%模糊聚类分析数据标准化变换
%X原始数据矩阵;cs=0,不变换;cs=1,标准差变换;cs=2,极差变换
if(cs==0)return;end
[n,m]=size(X); ;%获得矩阵的行列数
if(cs==1) %平移?标准差变换
for(k=1:m)xk=0;
for(i=1:n)xk=xk+X(i,k);end
xk=xk/n;sk=0;
for(i=1:n)sk=sk+(X(i,k)-xk)^2;end
sk=sqrt(sk/n);
for(i=1:n)X(i,k)=(X(i,k)-xk)/sk;end
end
else%平移?极差变换
for(k=1:m)xmin=X(1,k);xmax=X(1,k);
for(i=1:n)
if(xmin>X(i,k))xmin=X(i,k);end
if(xmaxend
for(i=1:n)X(i,k)=(X(i,k)-xmin)/(xmax-xmin);end
end
end



%谢季坚 刘承平《模糊数学方法及其应用》第三版 中部分算法MATLAB程序
%4.F_JlR.m

function[R]=F_JlR(cs,X)
%模糊聚类分析建立模糊相似矩阵
%X,数据矩阵
%cs=1,数量积法
%cs=2,夹角余弦法
%cs=3,相关系数法
%cs=4,指数相似系数法
%cs=5,最大最小法
%cs=6,算术平均最小法
%cs=7,几何平均最小法
%cs=8,直接欧几里德距离法
%cs=9,直接海明距离法(绝对值减数法)
%cs=10,直接切比雪夫距离法
%cs=11,倒数欧几里德距离法
%cs=12,倒数海明距离法(绝对值倒数法)
%cs=13,倒数切比雪夫距离法
%cs=14,指数欧几里德距离法
%cs=15,指数海明距离法(绝对值指数法)
%cs=16,指数切比雪夫距离法
[n,m]=size(X);%获得矩阵的行列数
R=[];
if(cs==1)maxM=0;pd=0;%数量积法
for(i=1:n)for(j=1:n)if(j~=i)x=0;
for(k=1:m)x=x+X(i,k)*X(j,k);end
if(maxMend;end;end
if(maxM<0.000001)return;end
maxM=maxM+1;
for(i=1:n)for(j=1:n)

if(i==j)R(i,j)=1;
else R(i,j)=0;
for(k=1:m)R(i,j)=R(i,j)+X(i,k)*X(j,k);end
R(i,j)=R(i,j)/maxM;
if(R(i,j)<0)pd=1;end
end
end;end
if(pd)for(i=1:n)for(j=1:n)R(i,j)=(R(i,j)+1)/2;end;end;end
elseif(cs==2)%夹角余弦法
for(i=1:n)for(j=1:n)xi=0;xj=0;
for(k=1:m)xi=xi+X(i,k)^2;xj=xj+X(j,k)^2;end
s=sqrt(xi*xj);R(i,j)=0;
for(k=1:m)R(i,j)=R(i,j)+X(i,k)*X(j,k);end
R(i,j)=R(i,j)/s;
end;end
elseif(cs==3)%相关系数法
for(i=1:n)for(j=1:n)xi=0;xj=0;
for(k=1:m)xi=xi+X(i,k);xj=xj+X(j,k);end
xi=xi/m;xj=xj/m;xis=0;xjs=0;
for(k=1:m)xis=xis+(X(i,k)-xi)^2;xjs=xjs+(X(j,k)-xj)^2;end
s=sqrt(xis*xjs);R(i,j)=0;
for(k=1:m)R(i,j)=R(i,j)+abs((X(i,k)-xi)*(X(j,k)-xj));end
R(i,j)=R(i,j)/s;
end;end
elseif(cs==4)%指数相似系数法
for(i=1:n)for(j=1:n)R(i,j)=0;
for(k=1:m)xk=0;
for(z=1:n)xk=xk+X(z,k);end
x=xk/n;sk=0;
for(z=1:n)sk=sk+(X(z,k)-xk)^2;end
sk=sk/n;R(i,j)=R(i,j)+exp(-0.75*((X(i,k)-X(j,k))/sk)^2);
end
R(i,j)=R(i,j)/m;
end;end
elseif(cs<=7)%最大最小发 算数平均最小法 几何平均最小法
for(i=1:n)for(j=1:n)fz=0;fm=0;
for(k=1:m)
if(X(j,k)<0)R=[];return;end
if(X(j,k)else x=X(j,k);end
fz=fz+x;
end
if(cs==5)%最大最小法
for(k=1:m)if(X(i,k)>X(j,k))x=X(i,k);else x=X(j,k);end;end
fm=fm+x;
elseif(cs==6)for(k=1:m)fm=fm+(X(i,k)+X(j,k))/2;end%算数平均最小法
else for(k=1:m)fm=fm+sqrt(X(i,k)*X(j,k));end;end%几何平均最小法
R(i,j)=fz/fm;
end;end
elseif(cs<=10)C=0;%直接距离法
for(i=1:n)for(j=i+1:n)d=0;
if(cs==8)for(k=1:m)d=d+(X(i,k)-X(j,k))^2;end
d=sqrt(d);%欧几里得距离
elseif(cs==9)for(k=1:m)d=d+abs(X(i,k)-X(j,k));end%海明距离
else for(k=1:m)if(dif(Cend;end
C=1/(1+C);
for(i=1:n)for(j=1:n)d=0;
if(cs==8)for(k=1:m)d=d+(X(i,k)-X(j,k))^2;end
d=sqrt(d);%欧几里得距离
elseif(cs==9)for(k=1:m)d=d+abs(X(i,k)-X(j,k));end%海明距离
else for(k=1:m)if(dR(i,j)=1-C*d;
end;end
elseif(cs<=13)minM=Inf;%倒数距离法
for(i=1:n)for(j=i+1:n)d=0;
if(cs==11)for(k=1:m)d=d+(X(i,k)-X(j,k))^2;end
d=sqrt(d);%欧几里得距离
elseif(cs==12)for(k=1:m)d=d+abs(X(i,k)-X(j,k));end%海明距离

else for(k=1:m)if(dif(minM>d)minM=d;end
end;end
minM=0.9999*minM;
if(minM<0.000001)return;end
for(i=1:m)for(j=1:n)d=0;
if(j==i)R(i,j)=1;continue;end
if(cs==11)for(k=1:m)d=d+(X(i,k)-X(j,k))^2;end
d=sqrt(d);%欧几里得距离
elseif(cs==12)for(k=1:m)d=d+abs(X(i,k)-X(j,k));end%海明距离
else for(k=1:m)if(dR(i,j)=minM/d;
end;end
else for(i=1:n)for(j=1:n)d=0;%指数距离法
if(cs==14)for(k=1:m)d=d+(X(i,k)-X(j,k))^2;end
d=sqrt(d);%欧几里得距离
elseif(cs==12)for(k=1:m)d=d+abs(X(i,k)-X(j,k));end%海明距离
else for(k=1:m)if(dR(i,j)=exp(-d);
end;end;end

相关文档
相关文档 最新文档