-
Notifications
You must be signed in to change notification settings - Fork 0
/
trape_simp.py
28 lines (23 loc) · 893 Bytes
/
trape_simp.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
def open_txt_file(n=0):
point_x, point_y = [], []
with open('webplot_red_110.txt', 'r') as f:
data_point = f.readlines()
step = (len(data_point) // n) - 1
for i in range(0, len(data_point), step):
point_x.append(float(data_point[i].split()[0]))
point_y.append(float(data_point[i].split()[1]))
trap = trapezoid(point_x, point_y)
simp = simp13(point_x, point_y)
print("%.5f\t%.5f" % (abs(trap), abs(simp)))
def trapezoid(data_x, data_y):
answer = 0.0
for i in range(len(data_x) - 1):
area = 0.5 * (data_x[i + 1] - data_x[i]) * (data_y[i + 1] + data_y[i])
answer += area
return answer
def simp13(data_x, data_y):
answer = 0.0
for i in range(0, len(data_x) - 2, 2):
area = (data_x[i+2]-data_x[i]) * (data_y[i]+4*data_y[i+1]+data_y[i+2])/6
answer += area
return answer