File was renamed from num-int/src/numint/RiemannSum.py |
| | |
| | | from typing import Callable |
| | | |
| | | |
| | | def split(iteration=8): |
| | | (a, b) = (0, 8) |
| | | x = [a, b] |
| | |
| | | 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)] |
| | |
| | | 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)) |
| | |
| | | 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) |