27 lines
961 B
Plaintext
27 lines
961 B
Plaintext
leftRect[f_, a_Real, b_Real, N_Integer] :=
|
|
Module[{sum = 0, dx = (b - a)/N, x = a, n = N} ,
|
|
For[n = N, n > 0, n--, x += dx; sum += f[x];];
|
|
Return [ sum*dx ]]
|
|
|
|
rightRect[f_, a_Real, b_Real, N_Integer] :=
|
|
Module[{sum = 0, dx = (b - a)/N, x = a + (b - a)/N, n = N} ,
|
|
For[n = N, n > 0, n--, x += dx; sum += f[x];];
|
|
Return [ sum*dx ]]
|
|
|
|
midRect[f_, a_Real, b_Real, N_Integer] :=
|
|
Module[{sum = 0, dx = (b - a)/N, x = a + (b - a)/(2 N), n = N} ,
|
|
For[n = N, n > 0, n--, x += dx; sum += f[x];];
|
|
Return [ sum*dx ]]
|
|
|
|
trapezium[f_, a_Real, b_Real, N_Integer] :=
|
|
Module[{sum = f[a], dx = (b - a)/N, x = a, n = N} ,
|
|
For[n = 1, n < N, n++, x += dx; sum += 2 f[x];];
|
|
sum += f[b];
|
|
Return [ 0.5*sum*dx ]]
|
|
|
|
simpson[f_, a_Real, b_Real, N_Integer] :=
|
|
Module[{sum1 = f[a + (b - a)/(2 N)], sum2 = 0, dx = (b - a)/N, x = a, n = N} ,
|
|
For[n = 1, n < N, n++, sum1 += f[a + dx*n + dx/2];
|
|
sum2 += f[a + dx*n];];
|
|
Return [(dx/6)*(f[a] + f[b] + 4*sum1 + 2*sum2)]]
|