Numerical integration: Difference between revisions
Content added Content deleted
(Add Python) |
|||
Line 712: | Line 712: | ||
let square x = x *. x |
let square x = x *. x |
||
let rl = integrate square 0. 1. 10 left_rect |
let rl = integrate square 0. 1. 10 left_rect |
||
let rm = integrate square 0. 1. 10 mid_rect |
let rm = integrate square 0. 1. 10 mid_rect |
||
Line 717: | 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|Python}}== |
|||
<python> |
|||
def left_rect(f,x,h): |
|||
return f(x) |
|||
def mid_rect(f,x,h): |
|||
return f(x + h/2) |
|||
def right_rect(f,x,h): |
|||
return f(x+h) |
|||
def trapezium(f,x,h): |
|||
return (f(x) + f(x+h))/2.0 |
|||
def simpson(f,x,h): |
|||
return (f(x) + 4*f(x + h/2) + f(x+h))/6.0 |
|||
def square(x): |
|||
return x*x |
|||
def integrate( f, a, b, steps, meth): |
|||
h= (b-a)/steps |
|||
ival = h*sum( (meth(f, a+i*h, h) for i in range(0,steps))) |
|||
return ival |
|||
t = integrate( square, 3.0, 7.0, 30, simpson ) |
|||
</python> |
|||
=={{header|Scheme}}== |
=={{header|Scheme}}== |