function f(x) return x^2 * math.sin(x) end N = 100 -- N must be an even number a, b = 1, 2 h = ( b - a ) / N h2 = 2 * h sum0 = f(a) + f(b) x = a - h sum1 = 0 for i = 2, N, 2 do x = x + h2 sum1 = sum1 + f(x) end sum1 = 4 * sum1 x = a sum2 = 0 for i = 3, N-1, 2 do x = x + h2 sum2 = sum2 + f(x) end sum2 = 2 * sum2 S = h * ( sum0 + sum1 + sum2 ) / 3 io.write( "\nSimpson's rule result: ", S, "\n\n" )