avatar
Untitled

Guest 75 7th May, 2024

MARKUP 2.20 KB
                                           
                         % 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;
                      
                                       
To share this paste please copy this url and send to your friends
RAW Paste Data
Recent Pastes
Ta strona używa plików cookie w celu usprawnienia i ułatwienia dostępu do serwisu oraz prowadzenia danych statystycznych. Dalsze korzystanie z tej witryny oznacza akceptację tego stanu rzeczy.
Wykorzystywanie plików Cookie
Jak wyłączyć cookies?
ROZUMIEM