%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % For plotting polynomial and Gaussian-based % cluster functions (n=1 case). % % By: Kevin Passino % Date: 3/24/99 % % Note: This program provides some divide % by zero errors, but the plots come out % in an appropriate form. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Set the cluster centers. % Uniform spacing of clusters v1=-5; v2=0; v3=5; % Non-uniform spacing of clusters (uncomment out to get) %v1=-3; %v2=6; %v3=1; % Set cluster width parameter m=2; % Set sigma for the Gaussian functions sigma1=1; sigma2=0.7; % For th nonuniform setting above uncomment out the next line %sigma2=0.1; sigma3=1; % Define the domain x=-10:.1:10; for i=1:length(x); % Begin with the polynomial functions p1(i)=(((x(i)-v1)^2/(x(i)-v1)^2)^(1/(m-1))+((x(i)-v1)^2/(x(i)-v2)^2)^(1/(m-1))+((x(i)-v1)^2/(x(i)-v3)^2)^(1/(m-1)))^(-1); p2(i)=(((x(i)-v2)^2/(x(i)-v1)^2)^(1/(m-1))+((x(i)-v2)^2/(x(i)-v2)^2)^(1/(m-1))+((x(i)-v2)^2/(x(i)-v3)^2)^(1/(m-1)))^(-1); p3(i)=(((x(i)-v3)^2/(x(i)-v1)^2)^(1/(m-1))+((x(i)-v3)^2/(x(i)-v2)^2)^(1/(m-1))+((x(i)-v3)^2/(x(i)-v3)^2)^(1/(m-1)))^(-1); mug1(i)=exp(-0.5*(x(i)-v1)^2/(sigma1^2)); % Calculate Gaussian mug2(i)=exp(-0.5*(x(i)-v2)^2/(sigma2^2)); mug3(i)=exp(-0.5*(x(i)-v3)^2/(sigma3^2)); sum(i)=mug1(i)+mug2(i)+mug3(i); mug1(i)=mug1(i)/sum(i); % Normalize it mug2(i)=mug2(i)/sum(i); mug3(i)=mug3(i)/sum(i); end % Plot the results: figure(1) clf subplot(211) plot(x,p1,'k-',x,p2,'k--',x,p3,'k:') grid xlabel('x') title('Polynomial-based cluster functions') subplot(212) plot(x,mug1,'k-',x,mug2,'k--',x,mug3,'k:') grid xlabel('x') title('Gaussian-based cluster functions') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % End of program %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%