21 lines
662 B
Plaintext
21 lines
662 B
Plaintext
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)
|