hbui
2024-07-21 f12ecb67472aa2453d3b1b3fb68e4eb9521aee77
num-int/src/numint/riemann_sum.py
File was renamed from num-int/src/numint/RiemannSum.py
@@ -1,3 +1,6 @@
from typing import Callable
def split(iteration=8):
    (a, b) = (0, 8)
    x = [a, b]
@@ -14,7 +17,7 @@
    pass
def numint(f, a, b, epsilon=1e-3):
def numint_epsilon(f:Callable[[float], float], a: float, b: float, epsilon: float = 1e-3):
    dx = b - a
    x = [a, b]  # debug only
    y = [f(a), f(b)]
@@ -25,7 +28,6 @@
        parts = 2 * parts
        dx = dx / 2
        n += 1
        # print(n, " → ", parts)
        for i in range(1, parts, 2):
            x.insert(i, a + i * dx)
            y.insert(i, f(a + i * dx))
@@ -34,7 +36,27 @@
    return x, y, s_left, s_right, n
def numint_compact(f, a, b, epsilon=1e-3):
def numint_section(f:Callable[[float], float], a: float, b: float, section_count: int = 8):
    dx = b - a
    x = [a, b]
    y = [f(a), f(b)]
    (n, parts) = (0, 1)
    s_left = dx * y[0]
    s_right = dx * y[1]
    while parts < section_count:
        parts = 2 * parts
        dx = dx / 2
        n += 1
        for i in range(1, parts, 2):
            x.insert(i, a + i * dx)
            y.insert(i, f(a + i * dx))
        s_left = sum(y[0:-1]) * dx
        s_right = sum(y[1:]) * dx
        pass
    return x, y, s_left, s_right, n
def numint_compact(f: Callable[[float], float], a: float, b: float, epsilon=1e-3):
    dx = b - a
    y_l = f(a)
    y_r = f(b)