Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
73
Task/Numerical-integration/Lua/numerical-integration.lua
Normal file
73
Task/Numerical-integration/Lua/numerical-integration.lua
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
function leftRect( f, a, b, n )
|
||||
local h = (b - a) / n
|
||||
local x = a
|
||||
local sum = 0
|
||||
|
||||
for i = 1, 100 do
|
||||
sum = sum + a + f(x)
|
||||
x = x + h
|
||||
end
|
||||
|
||||
return sum * h
|
||||
end
|
||||
|
||||
function rightRect( f, a, b, n )
|
||||
local h = (b - a) / n
|
||||
local x = b
|
||||
local sum = 0
|
||||
|
||||
for i = 1, 100 do
|
||||
sum = sum + a + f(x)
|
||||
x = x - h
|
||||
end
|
||||
|
||||
return sum * h
|
||||
end
|
||||
|
||||
function midRect( f, a, b, n )
|
||||
local h = (b - a) / n
|
||||
local x = a + h/2
|
||||
local sum = 0
|
||||
|
||||
for i = 1, 100 do
|
||||
sum = sum + a + f(x)
|
||||
x = x + h
|
||||
end
|
||||
|
||||
return sum * h
|
||||
end
|
||||
|
||||
function trapezium( f, a, b, n )
|
||||
local h = (b - a) / n
|
||||
local x = a
|
||||
local sum = 0
|
||||
|
||||
for i = 1, 100 do
|
||||
sum = sum + f(x)*2
|
||||
x = x + h
|
||||
end
|
||||
|
||||
return (b - a) * sum / (2 * n)
|
||||
end
|
||||
|
||||
function simpson( f, a, b, n )
|
||||
local h = (b - a) / n
|
||||
local sum1 = f(a + h/2)
|
||||
local sum2 = 0
|
||||
|
||||
for i = 1, n-1 do
|
||||
sum1 = sum1 + f(a + h * i + h/2)
|
||||
sum2 = sum2 + f(a + h * i)
|
||||
end
|
||||
|
||||
return (h/6) * (f(a) + f(b) + 4*sum1 + 2*sum2)
|
||||
end
|
||||
|
||||
|
||||
int_methods = { leftRect, rightRect, midRect, trapezium, simpson }
|
||||
for i = 1, 5 do
|
||||
print( int_methods[i]( function(x) return x^3 end, 0, 1, 100 ) )
|
||||
print( int_methods[i]( function(x) return 1/x end, 1, 100, 1000 ) )
|
||||
print( int_methods[i]( function(x) return x end, 0, 5000, 5000000 ) )
|
||||
print( int_methods[i]( function(x) return x end, 0, 6000, 6000000 ) )
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue