Advertisement
toweber

fuzzy_operations

Sep 9th, 2021
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.20 KB | None | 0 0
  1. import os
  2. import ipdb # ipdb.set_trace()
  3. import numpy as np
  4. import matplotlib.pyplot as plt
  5.  
  6. def trimf(x, abc):
  7.     a, b, c = abc
  8.     y = np.zeros(len(x))
  9.     left_side_eq = (1/(b-a))*(x-a)
  10.     right_side_eq = (1/(c-b))*(-x+c)
  11.     y = np.minimum(left_side_eq,right_side_eq)    
  12.     y = np.maximum(y,0)
  13.     return y
  14.  
  15.  
  16. # conjunto Universo  das variáveis base
  17. #X = [0, 1, 2, ... 10]
  18. X = np.arange(0,10.1,1)
  19.  
  20.  
  21. # Funções de Pertinência
  22. u_x_baixo = trimf(X,[0,3,6])  # funcao de pertinencia para variável linguística x com valor baixo
  23. u_x_medio = trimf(X,[2,5,8])  # funcao de pertinencia para variável linguística x com valor medio
  24. u_x_alto  = trimf(X,[4,7,10])  # funcao de pertinencia para variável linguística x com valor alto
  25.  
  26. # plotá-las
  27. plt.plot(X,u_x_baixo)
  28. plt.plot(X,u_x_medio)
  29. plt.plot(X,u_x_alto)
  30. plt.show()
  31.  
  32. # plotar a união entre u_x_baixo e u_x_alto
  33. u_uniao = np.maximum(u_x_baixo,u_x_alto)
  34. plt.plot(X,u_uniao)
  35. plt.show()
  36.  
  37.  
  38. # plotar a intersecção entre u_x_baixo e u_x_alto
  39. u_interseccao = np.minimum(u_x_baixo,u_x_alto)
  40. plt.plot(X,u_interseccao)
  41. plt.show()
  42.  
  43. # plotar o complemento do u_x_alto
  44. u_complemento = 1-(u_x_alto)
  45. plt.plot(X,u_complemento)
  46. plt.show()
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement