-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrumus.py
73 lines (66 loc) · 1.78 KB
/
rumus.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
class Fuzzy:
def linearturun(a, b, x):
if x <= a:
return 1
elif x >= b:
return 0
elif x > a and x < b:
return (b-x)/(b-a)
def linearnaik(a, b, x):
if x <= a:
return 0
elif x >= b:
return 1
elif x > a and x < b:
return (x-a)/(b-a)
def sigmoidturun(a, b, c, x):
if x <= a:
return 1
elif x > a and x <= b:
return 1-2*((x-a)/(c-a))**2
elif x > b and x < c:
return 2*((c-x)/(c-a))**2
elif x >= c:
return 0
def sigmoidNaik(a, b, c, x):
if x < a:
return 0
elif x >= a and x <= b:
return 2*((x-a)/(c-a))**2
elif x >= b and x <= c:
return 1-2*((c-x)/(c-a))**2
elif x > c:
return 1
def Segitiga(a, b, c, x):
if x <= a or x >= c:
return 0
elif x == b:
return 1
elif x >= a and x < b:
return (x-a)/(b-a)
elif x > b and x <= c:
return (c-x)/(c-b)
def trapesium(a, b, c, d, x):
if x <= a or x >= d:
return 0
elif x > a and x < b:
return (x-a)/(b-a)
elif x >= b and x <= c:
return 1
elif x > c and x < d:
return (d-x)/(d-c)
def sigmoid(a, b, c, d, e, x):
if x <= a:
return 0
elif x >= a and x <= b:
return 2*((x-a)/(c-a))**2
elif x >= b and x < c:
return 1-2*((c-x)/(c-a))**2
elif x == c:
return 1
elif x > c and x <= d:
return 1-2*((x-c)/(e-c))**2
elif x >= d and x < e:
return 2*((e-x)/(e-c))**2
elif x >= e:
return 0