import numpy as np import math from pyFTS import * def trimf(x, parameters): xx = round(x, 3) if xx < parameters[0]: return 0 elif parameters[0] <= xx < parameters[1]: return (x - parameters[0]) / (parameters[1] - parameters[0]) elif parameters[1] <= xx <= parameters[2]: return (parameters[2] - xx) / (parameters[2] - parameters[1]) else: return 0 def trapmf(x, parameters): if x < parameters[0]: return 0 elif parameters[0] <= x < parameters[1]: return (x - parameters[0]) / (parameters[1] - parameters[0]) elif parameters[1] <= x <= parameters[2]: return 1 elif parameters[2] <= x <= parameters[3]: return (parameters[3] - x) / (parameters[3] - parameters[2]) else: return 0 def gaussmf(x, parameters): return math.exp((-(x - parameters[0])**2)/(2 * parameters[1]**2)) #return math.exp(-0.5 * ((x - parameters[0]) / parameters[1]) ** 2) def bellmf(x, parameters): return 1 / (1 + abs((x - parameters[2]) / parameters[0]) ** (2 * parameters[1])) def sigmf(x, parameters): return 1 / (1 + math.exp(-parameters[0] * (x - parameters[1])))