From 33b1ce0c6f65712bbdcd572a1d49f9f8d15ef2e7 Mon Sep 17 00:00:00 2001 From: ASPP Student Date: Thu, 31 Aug 2023 15:07:39 +0300 Subject: [PATCH] optimize numerical integration --- profiling/numerical_integration.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/profiling/numerical_integration.py b/profiling/numerical_integration.py index 8ed588c..eb40500 100644 --- a/profiling/numerical_integration.py +++ b/profiling/numerical_integration.py @@ -4,27 +4,25 @@ def numerical_integration(f, a, b, n): s = [] + dx = (b - a) / n for i in range(n): - dx = (b - a) / n x = a + (i + 0.5) * dx y = f(x) - s = s + [y * dx] + s.append(y * dx) return s def measure_integration_errors(f, F, n_values, a, b): # Calculate all integrals - F_a_list = [] F_n_list = [] + F_analytical = F(b) - F(a) for n in n_values: - F_analytical = F(b) - F(a) F_numerical_boxes = numerical_integration(f, a, b, n) - F_a_list.append(F_analytical) F_n_list.append(F_numerical_boxes) # Calculate and sum error errors = [] - for F_analytical, F_numerical_boxes in zip(F_a_list, F_n_list): + for F_numerical_boxes in F_n_list: F_numerical = sum(F_numerical_boxes) error = abs(F_analytical - F_numerical) errors = errors + [error]