Documentos de Académico
Documentos de Profesional
Documentos de Cultura
New Text Document
New Text Document
h>
#include <math.h>
float min(float x, float y){
if(x>y) return y;
else return x;
}
float max(float u, float v){
if(u>v) return u;
else return v;
}
void defuzzication(int input1,int input2);
float mf(int x,int L,int C1,int C2,int R);
float
x1_ZE,x1_NE,x1_PO,x2_LO,x2_ME,x2_HI,y_NE,y_ZE,y_PS,y_PM,y_PB,tuso,mauso,output_fz;
float beta[5];//(NE ZE PS PM PB);
int main(){
defuzzication(0,0);
return 0;
}
x2_LO = mf(input2,-2,-1,5,15);
x2_ME = mf(input2,5,15,15,25);
x2_HI = mf(input2,15,25,26,27);
beta[0] = max(min(x1_NE,x2_LO),beta[0]);
//beta2 = max(min(x1_NE,x2_ME),y_PM);
beta[3] = max(min(x1_NE,x2_ME),beta[3]);
//beta3 = max(min(x1_NE,x2_HI),y_PS);
beta[2] = max(min(x1_NE,x2_HI),beta[2]);
//beta4 = max(min(x1_ZE,x2_LO),y_ZE);
beta[1] = max(min(x1_ZE,x2_LO),beta[1]);
//beta5 = max(min(x1_ZE,x2_ME),y_PS);
beta[2] = max(min(x1_ZE,x2_ME),beta[2]);
//beta6 = max(min(x1_ZE,x2_HI),y_PM);
beta[3] = max(min(x1_ZE,x2_HI),beta[3]);
//beta7 = max(min(x1_PO,x2_LO),y_NE);
beta[0]= max(min(x1_PO,x2_LO),beta[0]);
//beta8 = max(min(x1_PO,x2_ME),y_ZE);
beta[1] = max(min(x1_PO,x2_ME),beta[1]);
//beta9 = max(min(x1_PO,x2_HI),y_PB);
beta[4] = max(min(x1_PO,x2_HI),beta[4]);
////Defuzzication
//y_NE = mf(beta[0],-12,-6,-6,0);
//y_ZE = mf(beta[1],-6,0,0,6);
//y_PS = mf(beta[2],0,6,6,12);
//y_PM = mf(beta[3],6,12,12,18);
//y_PB = mf(beta[4],12,18,18,24);
tuso=beta[0]*-6+beta[1]*0+beta[2]*6+beta[3]*12+beta[4]*18;
mauso=beta[0]+beta[1]+beta[2]+beta[3]+beta[4];
output_fz=tuso/mauso;
printf("Defuzzication %f:",output_fz);
}