% Podane zbiory rozmyte A i B A = [0.3; 1; 0.7; 2; 0.5; 3; 0.8; 4]; B = [0.5; -2; 0.4; -1; 1.0; 0; 0.7; 2; 0.6; 3]; % Definicja funkcji f(x) f1 = @(x) 2*x + 1; f2 = @(x) (x - 2)^2 + 5; f3 = @(x, y) x*y; f4 = @(x, y) (x - 3)*y^2; % Obliczenie zbioru rozmytego C dla każdej funkcji C1 = zeros(length(A)/2, 1); % Dla funkcji jednowymiarowych C2 = zeros(length(A)/2, 1); % Dla funkcji dwuwymiarowych for i = 1:length(C1) x = A(2*i - 1); % Wartość x z A mu_A = A(2*i); % Stopień przynależności do A mu_B = B(2*i); % Stopień przynależności do B % Obliczenie stopnia przynależności do C dla funkcji f1 C1(i) = min(mu_A, interp1(B(1:2:end), B(2:2:end), f1(x), 'linear')); % Obliczenie stopnia przynależności do C dla funkcji f2 C2(i) = min(mu_A, interp1(B(1:2:end), B(2:2:end), f2(x), 'linear')); end % Obliczenie zbioru rozmytego C dla funkcji f3 i f4 C3 = zeros(length(A)/4, 1); % Dla funkcji dwuwymiarowych C4 = zeros(length(A)/4, 1); % Dla funkcji dwuwymiarowych % Generowanie siatki punktów [X, Y] = meshgrid(A(1:4:end), A(2:4:end)); for i = 1:length(C3) x = A(4*i - 3); % Wartość x z A y = A(4*i - 2); % Wartość y z A mu_A = A(4*i); % Stopień przynależności do A mu_B = B(4*i); % Stopień przynależności do B % Obliczenie stopnia przynależności do C dla funkcji f3 C3(i) = min(mu_A, interp1(B(1:2:end), B(2:2:end), f3(x, y), 'linear')); % Obliczenie stopnia przynależności do C dla funkcji f4 C4(i) = min(mu_A, interp1(B(1:2:end), B(2:2:end), f4(x, y), 'linear')); end % Wyświetlenie wyników za pomocą subplot subplot(2, 2, 1); plot(A(1:2:end), C1, 'b-o'); title('f(x) = 2x + 1'); xlabel('x'); ylabel('\mu_C'); grid on; subplot(2, 2, 2); plot(A(1:2:end), C2, 'r-o'); title('f(x) = (x - 2)^2 + 5'); xlabel('x'); ylabel('\mu_C'); grid on; subplot(2, 2, 3); mesh(X, Y, reshape(C3, size(X))); title('f(x, y) = xy'); xlabel('x'); ylabel('y'); zlabel('\mu_C'); grid on; subplot(2, 2, 4); mesh(X, Y, reshape(C4, size(X))); title('f(x, y) = (x - 3)y^2'); xlabel('x'); ylabel('y'); zlabel('\mu_C'); grid on;