clc
clear all
close all

var_fis = readfis('fuzzy_gorjeta.fis'); %Salva o arquivo do toolbox no workspace
serv = linspace(0,10,40); % quarenta pontos de resolucao
comi = linspace(0,10,40);

%Caso 10000 pontos
M = zeros(40,40); %Inicializa o vetor M
for i =1:40 % Loop para mapear todos pontos
  for j =1:40
      M(i,j) = evalfis([comi(j), serv(i)],var_fis,10000);
  end
end

figure('Name','Superfície(10000)')
surf(serv,comi,M) %Plotar a superficie
xlabel('Serviço')
ylabel('Comida')
zlabel('Gorjeta(10000 pontos)')

%Caso 10 pontos
N = zeros(40,40); %Inicializa o vetor M
for i =1:40 % Loop para mapear todos pontos
  for j =1:40
      N(i,j) = evalfis([comi(j), serv(i)],var_fis,10);
  end
end

figure('Name','Superfície(10)')
surf(serv,comi,N) %Plotar a superficie
xlabel('Serviço')
ylabel('Comida')
zlabel('Gorjeta(10 pontos)')

%Comparacao
C = M-N;
figure('Name','Comparacao')
surf(serv,comi,C) %Plotar a superficie
xlabel('Serviço')
ylabel('Comida')
zlabel('Gorjeta(10000)-Gorjeta(10)')

C_modulo = abs(C);
figure('Name','Comparacao2')
surf(serv,comi,C_modulo) %Plotar a superficie
xlabel('Serviço')
ylabel('Comida')
zlabel('Módulo(Gorjeta(10000)-Gorjeta(10))')

Maior_diferenca = 0;
Serv_maior_diferenca = 0;
Comi_maior_diferenca = 0;

for i =1:40 % Loop para mapear todos pontos
  for j =1:40
      if C_modulo(i,j) >= Maior_diferenca
          Maior_diferenca = C_modulo(i,j);
          Serv_maior_diferenca = serv(j);
          Comi_maior_diferenca = comi(i);
      end
  end
end

Maior_diferenca
Serv_maior_diferenca
Comi_maior_diferenca

