Welcome, guest | Sign In | My Account | Store | Cart

Numerical Integration using random sampling.

Python, 21 lines
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21``` ```# Numerical Integration using random sampling # FB - 201006292 import math import random # define any function here! def f(x): return math.sin(x) # define any xmin-xmax interval here! (xmin < xmax) xmin = 0.0 xmax = math.pi numPoints = 1000000 # bigger the better but slower! sumy = 0.0 for j in range(numPoints): x = xmin + (xmax - xmin) * random.random() sumy += f(x) numInt = (xmax - xmin) * sumy / numPoints print "Numerical integral = " + str(numInt) ``` Dieter Kadelka 12 years, 9 months ago

What is this? Is it a try to find the worst numerical integration algorithm? If you replace random.random() by equidistant 1.0*j/numPoints you get the integral 2.0. Not to mention the almost trivial Simpson algorithm and much more better more sophisticated algorithms. FB36 (author) 12 years, 9 months ago

I never claimed my algorithm is the best. I only post this thinking some people may find it interesting, that's all.

I also think it would be better if you post the best algorithm code, instead of simply criticizing others! Dieter Kadelka 12 years, 9 months ago

If you have interest in good algorithms in python, give pygsl and the gsl library in gnu a chance Created by FB36 on Wed, 30 Jun 2010 (MIT)