Documentos de Académico
Documentos de Profesional
Documentos de Cultura
c tiene funcin de
El complemento denotado como A
~
pertenencia
mAc (x) = 1 - mA(x)
CODIGO
if (opcion==1)
%opcion 1 Union
resultado=max(u,v);
end
if (opcion==2)
%opcion 2 interseccion
resultado = min(u,v);
end
if (opcion==3) %opcion 3 complemento
[m, n]=size(u);
resultado = ones(m) - u;
end
if (opcion==4) %opcion 4 diferencia
[m, n]=size(v);
q=ones(m)-v;
resultado=min(u, q);
end
disp('El resultado de la operacin es: ')
disp(resultado)
end
Dr. Ismael Osuna G.. Certified LabVIEW Associate Developer
clear all
clc
disp('Este programa realiza las operaciones de dos conjuntos difusos continuos')
disp('El conjunto difuso A es triangular')
disp('El conjunto difuso B es trapezoidal')
disp('Los datos para el conjunto A es de la forma [a, b, p]')
disp('donde a:= punto inicial de la base; b:= punto final de la base; p:=punto de
vrtice')
A=input('Introduce el vector de datos del conjunto A: ');
disp('Los datos para el conjunto B es de la forma [a, b, p, q]')
disp('donde a:= punto inicial de la base; b:= punto final de la base')
disp('donde p:= punto inicial del nucleo; q:= punto final del nucleo')
B=input('Introduce el vector de datos del conjunto B: ');
disp('Las operaciones que se pueden realizar son:')
disp('1 UNION')
disp('2 INTERSECCION')
disp('3 COMPLEMENTO DE A')
disp('4 DIFERENCIA A-B')
yB = 0.*(x<pinicial) + (m1*x+b1).*((pinicial<=x)&(x<paltura1)) +
altura.*((paltura1<=x)&(x<paltura2)) +
(m2*x+b2).*((paltura2<=x)&(x<pfinal)) +
0.*(pfinal<x) ;
if opcion==1
%Union
yresultado=max(yA,yB);
end
if opcion==2
%Interseccion
yresultado=min(yA,yB);
end
if opcion==3
%Complemento de A
yresultado=1-yA;
end
if opcion==4
%Diferencia A-B
yresultado=min(yA, 1-yB);
end
subplot(2,2,1); plot(x,yA,'b.')
subplot(2,2,2); plot(x,yB,'r.')
subplot(2,2,3:4); plot(x,yresultado, 'g.')
grid on
EJERCICIO
Hacer un programa que dados dos conjuntos difusos discretos
calcule el producto cartesiano.
COMPOSICION DE RELACIONES
DIFUSAS
Sea R una relacin difusa en X x Y y sea S una relacin difusa
~
~
en Y x Z. Se puede considerar una nueva relacin en X x Z
como la composicin entre las relaciones difusas denotada
por T = R o S
~
COMPOSICION MAX-MIN
T~= { ( (x,z), max
{ min { mR(x,y), mS(y,z) } } ) | xX, yY, zZ }
y
COMPOSICION MAXIMO PRODUCTO
T = { ( (x,z), max { mR(x,y). mS(y,z) } ) | xX, yY, zZ }
y
~
Dr. Ismael Osuna G.. Certified LabVIEW Associate Developer
COMPOSICION MAX-MIN
y1
x1 a11
R=
x2 a21
.
.
.
y2
a12
yj
a1j
.
.
.
b12
b1n
y2 b21 b22
b2n
.
.
. .
.
.
.
.
yj b b
j1
j2
z1
valor
mximo
zr
.
.
.
S=
amj
z2
y1 b11
a22
a2j
. .
.
.
. .
.
.
xm am1 am2
z1
z2
bjn
z3
zn
x1
x2
.
.
.
xm
Dr. Ismael Osuna G.. Certified LabVIEW Associate Developer
y2
yj
x1 a11
a12
a1j
x2 a21
a22
a2j
. .
.
.
. .
.
.
.
.
.
R=
xm am1 am2
a21 .b12
a22 b22
.
.
.
.
a2n . bm2
z1
zr
b12
b1n
y2 b21 b22
b2n
.
.
. .
.
y1 b11
.
.
.
S=
.
.
.
yj b b
j1
j2
amj
z1
valor
mximo
z2
z2
bjn
z3
zn
x1
x2
.
.
.
xm
Dr. Ismael Osuna G.. Certified LabVIEW Associate Developer
CODIGO
%ESTE PROGRAMA ES PARA CALCULAR LA COMPOSICION DE RELACIONES
%DIFUSAS POR LOS METODOS DE MIN-MAX Y MAXIMO PRODUCTO
clear all
clc
disp('Este programa realiza las composicin discreta RoS')
R=input('Introduce la relacin difusa R: ');
S=input('Introduce la relacin difusa S: ');
[renglonR, columnaR] = size(R);
[renglonS, columnaS] = size(S);
if columnaR ~= renglonS
disp('No es posible realizar la composicin RoS.');
else
T=zeros(renglonR,columnaS);
D=zeros(renglonS,1);
disp('Las operaciones que se pueden calcular son:');
disp('1 MIN - MAX');
disp('2 MAXIMO PRODUCTO');
opcion=input('Que tipo de composicin deseas calcular? ');
Dr. Ismael Osuna G.. Certified LabVIEW Associate Developer
for k=1:renglonR
for j=1:columnaS
C1 = R(k , :) ;
C2 = S(: , j) ;
for cont = 1:renglonS
if opcion==1
D(cont)=min(C1(cont),C2(cont));
else
D(cont)=C1(cont)*C2(cont);
end
end
T(k , j) = max(D);
end
end
disp('El resultado de la composicin es:')
disp(T)
end
Dr. Ismael Osuna G.. Certified LabVIEW Associate Developer
TALLER DE PROGRAMACION Y
DISPOSITIVAS LABVIEW SOLICITAR AL
CORREO
ismaos2006@gmail.com
Examen de unidad 26 de Febrero
CONJUNTOS DIFUSOS
CONTINUOS
Las operaciones de unin, interseccin, complemento y
diferencia no estn restringidas a conjuntos discretos. son
llevados de forma natural hacia conjuntos continuos
mediante su definicin
CODIGO
% ESTE PROGRAMA REALIZA OPERACIONES SOBRE CONJUNTOS DIFUSOS CONTINUOS
% DE UNA TRIANGULAR Y UNA TRAPEZOIDAL
clear all
clc
disp('Este programa realiza las operaciones de union, interseccin, complemento y diferencia ')
disp('de dos conjuntos difusos continuos.')
disp('El conjunto difuso A es triangular')
disp('El conjunto difuso B es trapezoidal')
disp('Los datos para el conjunto A es de la forma [a, b, p]')
disp('donde a:= punto inicial de la base; b:= punto final de la base; p:=punto de vrtice')
A=input('Introduce el vector de datos del conjunto A: ');
disp('Los datos para el conjunto B es de la forma [a, b, p, q]')
disp('donde a:= punto inicial de la base; b:= punto final de la base')
disp('donde p:= punto inicial del nucleo; q:= punto final del nucleo')
B=input('Introduce el vector de datos del conjunto B: ');
disp('Las operaciones que se pueden realizar son:')
disp('1 UNION')
disp('2 INTERSECCION')
disp('3 COMPLEMENTO DE A')
disp('4 DIFERENCIA A-B')
m2=(1)/(paltura-pfinal);
b2=-m2*pfinal;
yA=0.*(x<pinicial) + (m1*x+b1).*((pinicial<=x)&(x<paltura))
+ (m2*x+b2).*((paltura<=x)&(x<pfinal)) + 0.*(pfinal<x) ;
clear pinicial pfinal m1 m2 b1 b2;
pinicial=B(1); pfinal=B(2);
paltura1=B(3); paltura2=B(4);
m1=(1)/(paltura1-pinicial); b1=-m1*pinicial;
m2=(1)/(paltura2-pfinal);
b2=-m2*pfinal;
yB = 0.*(x<pinicial) + (m1*x+b1).*((pinicial<=x)&(x<paltura1)) +
altura.*((paltura1<=x)&(x<paltura2)) +
(m2*x+b2).*((paltura2<=x)&(x<pfinal)) +
0.*(pfinal<x) ;
if opcion==1
%Union
yresultado=max(yA,yB);
end
if opcion==2
%Interseccion
yresultado=min(yA,yB);
end
if opcion==3
%Complemento de A
yresultado=1-yA;
end
if opcion==4
%Diferencia A-B
yresultado=min(yA, 1-yB);
end
subplot(2,2,1); plot(x,yA,'b.')
subplot(2,2,2); plot(x,yB,'r.')
subplot(2,2,3:4); plot(x,yresultado, 'g.')
grid on
Dr. Ismael Osuna G.. Certified LabVIEW Associate Developer
CODIGO
%ESTE PROGRAMA CALCULA EL CENTROIDE DE UNA FUNCION
%ES NECESARIO INTRODUCIR LA FUNCION DE LA FORMA
%@(x) (f1).*(intervalo1)+(f2).*(intervalo2)+...
clear all
clc
syms x
disp('Este programa calcula el centroide de una funcin')
disp('Se debe introducir la funcin de la forma')
disp('@(x) (f1).*(intervalo1) + (f2).*(intervalo2) + ..')
a= input(Introduce el extremo inicial del intervalo: ');
b= input(Introduce el extremo final del intervalo: ');
f=input('Introduce la funcin: ');
t=a:0.0001:b;
y=f(t);
Numerador=t.*f(t);
Denominador = f(t);
Suma1=sum(Numerador);
Suma2=sum(Denominador);
resultado=Suma1/Suma2;
disp('El resultado es: ')
disp(resultado)
CODIGO
%ESTA FUNCION PERMITE CALCULAR LOS PUNTOS DE CORTE DE
%UNA FUNCION TRIANGULAR
function triangulo(pinicial,paltura,pfinal)
x=pinicial-1:0.001:pfinal+1;
m1=1/(paltura-pinicial);
b1=-m1*pinicial;
m2=1/(paltura-pfinal);
b2=-m2*pfinal;
y= 0.*(x<pinicial) + (m1*x+b1).*((pinicial<=x)&(x<paltura)) +
(m2*x+b2).*((paltura<=x)&(x<=pfinal)) + 0.*(pfinal<x) ;
pc1=(0.5-b1)/m1;
pc2=(0.5-b2)/m2;
disp('Los puntos de corte son')
disp(pc1)
disp(pc2)
plot(x,y,'b.')
hold on
plot(x,0.5,'r--')
text(pc2,0.53,'puntos de corte')
grid on
CODIGO
%ESTA FUNCION PERMITE CALCULAR LOS PUNTOS DE CORTE DE
%UNA FUNCION TRAPEZOIDAL
function trapecio(pinicial,paltura1,paltura2,pfinal)
x=pinicial-1:0.01:pfinal+1;
m1=1/(paltura1-pinicial);
b1=-m1*pinicial;
m2=1/(paltura2-pfinal);
b2=-m2*pfinal;
y=0.*(x<pinicial) + (m1*x+b1).*((pinicial<=x)&(x<paltura1)) +
1.*((paltura1<=x)&(x<paltura2)) +
(m2*x+b2).*((paltura2<=x)&(x<pfinal)) + 0.*(pfinal<x) ;
pc1=(0.5-b1)/m1;
pc2=(0.5-b2)/m2;
disp('Los puntos de corte son')
disp(pc1)
disp(pc2)
plot(x,y,'b.')
hold on
plot(x,0.5,'r--')
text(pc2,0.53,'puntos de corte')
grid on