Вы находитесь на странице: 1из 2

function [U,V,O]=fcm2(x,c)

[n,m]=size(x);
%% initialization
%% matriks data: n baris x m kolom
w=2;
teta=1e-5;
P0=0;
Pt=0;
OB=[];
%step 1 : Initilize U
U=rand(n,c);
Q=sum(U')'
for i=1:n
U(i,:)=U(i,:)/Q(i);
end
U
pause
ITER=1;
Obj=1e5;
while (Obj>teta)
%step 2 : update V
Q=sum(U.^w)';
V=(U'.^w*x);
for i=1:c
V(i,:)=V(i,:)/Q(i);
end;
disp('NILAI V'), V
pause
%step 3 : update U from V
for i=1:n
S=0;
for k=1:c
S1=0;
for j=1:m
S1=S1+(x(i,j)-V(k,j))^2;
end
S1=S1^(-1/(w-1));
U(i,k)=S1;
S=S+S1;
end
for k=1:c
U(i,k)=U(i,k)/S;
end
end
disp('NILAI U');U
pause
%step 4 : menghitung F
P0=Pt;
Pt=0;
for i=1:n
for k=1:c
for j=1:m
Pt=Pt+( x(i,j)-V(k,j))^2*U(i,k)^w;
end
end
end
Obj=abs(Pt-P0)

ITER=ITER+1
pause
OB=[OB Obj];
end
O=OB;

Вам также может понравиться