云发生器代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档