Numerical integration: Difference between revisions
Content added Content deleted
m (Moved to Arith cat) |
(+ Pascal) |
||
Line 718: | Line 718: | ||
let t = integrate square 0. 1. 10 trapezium |
let t = integrate square 0. 1. 10 trapezium |
||
let s = integrate square 0. 1. 10 simpson |
let s = integrate square 0. 1. 10 simpson |
||
=={{header|Pascal}}== |
|||
<pascal> |
|||
function RectLeft(function f(x: real): real; xl, xr: real): real; |
|||
begin |
|||
RectLeft := f(xl) |
|||
end; |
|||
function RectMid(function f(x: real): real; xl, xr: real) : real; |
|||
begin |
|||
RectMid := f((xl+xr)/2) |
|||
end; |
|||
function RectRight(function f(x: real): real; xl, xr: real): real; |
|||
begin |
|||
RectRight := f(xr) |
|||
end; |
|||
function Trapezium(function f(x: real): real; xl, xr: real): real; |
|||
begin |
|||
Trapezium := (f(xl) + f(xr))/2 |
|||
end; |
|||
function Simpson(function f(x: real): real; xl, xr: real): real; |
|||
begin |
|||
Simpson := (f(xl) + 4*f((xl+xr)/2) + f(xr))/6 |
|||
end; |
|||
function integrate(function method(function f(x: real): real; xl, xr: real): real; |
|||
function f(x: real): real; |
|||
a, b: real; |
|||
n: integer); |
|||
var |
|||
integral, h: real; |
|||
k: integer; |
|||
begin |
|||
integral := 0; |
|||
h := (b-a)/n; |
|||
for k := 0 to n-1 do |
|||
begin |
|||
integral := integral + method(f, a + k*h, a + (k+1)*h) |
|||
end; |
|||
integrate := integral |
|||
end; |
|||
</pascal> |
|||
=={{header|Python}}== |
=={{header|Python}}== |