云发生器代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%正向云算法:由数字特征到定量数据表示
Ex=0;
En=1;
He=0.2;
n=2000;
X = zeros(1,n)
Y = zeros(1,n)
X= normrnd ( En, He, 1, n)
for i=1:n
Enn=X(1,i);
X(1, i) = normrnd ( Ex, Enn, 1) ;
Y(1, i) = exp ( - (X(1, i) - Ex) ^2 / (2* Enn^2) ) ;
end
plot(X(1,:),Y(1,:),'r.');
grid on
Ex=89;En=4;He=0.5;n=3000;
for i=1:n
Enn=randn(1)*He+En; x(i)=randn(1)*Enn+Ex; y(i)=exp(-(x(i)-Ex)^2/(2*Enn^2)); end
plot(x,y,'.r')
title('某煤炭企业综合管理能力评分的一维云图')
ylabel('确定度');
xlabel('综合管理能力评分');
axis([75,100,0,1])
grid on
Ex=0; %期望
En=1; %熵
He=0.2;%超熵
n=2000;
X = zeros(1,n)
Y = zeros(1,n)
X= normrnd ( En, He, 1, n)
for i=1:n
i
Enn=X(1,i)
X(1, i) = normrnd ( Ex, Enn, 1) ;
Y(1, i) = exp ( - (X(1, i) - Ex) ^2 / (2* Enn^2) ) ;
end
plot(X(1,:),Y(1,:),'r.');
通过正向云算法,可以把定性概念的整体特征变换为定量数值表示,实现概念空间到数值空间的转换;通过逆向云算法,可以实现从定量值到定性概念的转换,将一组定量数据转换为一数字特征{Ex,En,He}来表示的定性概念。
%逆向云发生器部分代码
%逆向云发生器中需要剔除隶属度大于0. 999 9的云滴,剩
%下m 个云滴。代码如下:
X1 =X;
Y1 = Y;
i = 1;
flag=0;
m=n;
size(X1)
size(Y1)
Y;
Y1;
%根据m 个云滴生成期望、熵、超熵的代码具体实现如下:
Ex =mean(X1)
%En1 = zeros(1,m);
su=0;
ssum=0;
for i=1:m
su=su+abs(X1(1,i)-Ex);
ssum=ssum+(X1(1,i)-Ex)^2;
end
center_d=su/m;
vari=ssum/(m-1);
En=sqrt(pi/2)*center_d;
He=sqrt(vari-En);
pi
Ex
En
He
书上:
matlab一维正向正态云发生器
// * * * * * * * ** * * * * * * * * * * * * * * * * * * * * * // // This function generate one -dimensional cloud drops .
// Input parameters :
// Ex : Expectation of cloud .
// En : Entropy of cloud .
// He : Hyper Entropy of cloud .
// n : number of drops want to generate .
// Output Values :
// x , y : matrix of cloud drops .
// * * * * * * * ** * * * * * * * * * * * * * * * * * * * * * // function cloud(Ex,En,He,n)
for i = 1 : n
// Step 1
Enn = randn(1) * He + En;
// Step 2
x(i) = randn(1) * Enn + Ex;
// Step 3
y(i) = exp ( - (X(i) - Ex) ^2 / (2* Enn^2) );
end
plot(X(1,:),Y(1,:),'r.');
Ex1=60;
Ex2=1.7
En1=6;
En2=0.5;
H1=0.1;
H2=0.01;
n=10000;
X1 = zeros(1,n)
X2 = zeros(1,n)
En11 =zeros(1,n)
En22 =zeros(1,n)
Y = zeros(1,n)
X= normrnd ( En, He, 1, n)
for i=1:n
X1(1, i) = normrnd ( Ex1, En1, 1) ;
X2(1, i) = normrnd ( Ex2, En2, 1) ;
En11(1, i) = normrnd ( En1, H1, 1) ;
En22(1, i) = normrnd ( En2, H2, 1) ;
Y(1, i) = exp ( - (X1(1, i) - Ex1) ^2 / (2* En11(1, i)^2)-(X2(1, i) - Ex2) ^2 / (2* En22(1, i)^2));
end
Plot3(X1(1,:),X2(1,:),Y(1,:),'r.');
Grid on
X条件发生器
Ex=89;En=4;He=0.5;n=3000;x0=83
for i=1:n
Enn=randn(1)*He+En; x(i)=randn(1)*Enn+Ex; y(i)=exp(-(x(i)-Ex)^2/(2*Enn^2)); end
plot(x,y,'.r')
title('某煤炭企业综合管理能力评分的一维云图')
ylabel('确定度');
xlabel('综合管理能力评分');
axis([75,100,0,1])
grid on
(Ex,En,He,x0,N)
(Drop(x0,y1),Drop(x0,y2),…,Drop(x0,yn))
FOR i = 1 to N
{
Enn=NORM (En,He);
Yi=(xi) = exp(-(x0-Ex)^2/(2*Enn^2))
}
OUTPUT Drop(x0,yi);
End