local function integrate(a, b, n, f) local h = (b - a) / n local sum = {0, 0, 0, 0, 0} for i = 1, n do local x = a + (i - 1) * h sum[1] += f(x) sum[2] += f(x + h / 2) sum[3] += f(x + h) sum[4] += (f(x) + f(x + h)) / 2 sum[5] += (f(x) + 4 * f(x + h / 2) + f(x + h)) / 6 end local methods = {"LeftRect ", "MidRect ", "RightRect", "Trapezium", "Simpson "} for i = 1, 5 do print($"{methods[i]} = {sum[i] * h}") end print() end integrate(0, 1, 100, |v| -> v * v * v) integrate(1, 100, 1_000, |v| -> 1 / v) integrate(0, 5_000, 5_000_000, |v| -> v) integrate(0, 6_000, 6_000_000, |v| -> v)