-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathintegral.py
42 lines (36 loc) · 1.21 KB
/
integral.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
# https://github.com/IgorAlmeeida/Calculo-Numerico dê uma olha neste repositorio
def integralSimpson(listaPontos):
a = listaPontos[0][0]
b = listaPontos[len(listaPontos)-1][0]
h = (b - a)/(len(listaPontos)-1)
soma1 = 0
soma2 = 0
soma3 = 0
for i in range(len(listaPontos)):
if(i == 0 or i == len(listaPontos)-1):
soma1+= listaPontos[i][1]
elif (i % 2 == 0):
soma3 += listaPontos[i][1]
else:
soma2 += listaPontos[i][1]
#h = h/3
h = (3 * (1/3))/8
return h*(soma1 + 4*soma2 + 2*soma3)
def integralTrapezio(listaPontos):
a = listaPontos[0][0]
b = listaPontos[len(listaPontos)-1][0]
h = (b - a)/(len(listaPontos)-1)
soma = 0
for i in range(len(listaPontos)):
if(i == 0 or i == len(listaPontos)-1):
soma += listaPontos[i][1]/2
else:
soma += listaPontos[i][1]
return h*soma
#listaPontos=[[0,0],[2,1.8],[4,2],[6,4],[8,4],[10,6],[12,4],[14,3.6],[16,3.4],[18,2.8],[20,0]]
listaPontos= [[0,1],[1/3,1.3956],[2/3,1.9477],[1,2.7182]] # dados da aula do pedro borges
print("Trapézios:")
print (integralTrapezio(listaPontos))
print("")
print("Simpson:")
print(integralSimpson(listaPontos))