New Version 6.0!

Try it for free with our fully functional 60-day trial version.

Download now!

QuickStart Samples

Quasi-Random Sequences QuickStart Sample (IronPython)

Illustrates how to generate quasi-random sequences like Fauré and Sobol sequences using classes in the Extreme.Statistics.Random namespace in IronPython.

C# code Visual Basic code F# code Back to QuickStart Samples

import numerics

from Extreme.Statistics.Random import *
from Extreme.Mathematics import *
from Extreme.Mathematics.LinearAlgebra import *

#/ Illustrates the use of quasi-random sequences by computing
#/ a multi-dimensional integral.

# This QuickStart Sample demonstrates the use of
# quasi-random sequences by computing
# a multi-dimensional integral.

# We will use one million points.
capacity = 10000
# The number of dimensions:
dimension = 5

# We will evaluate the function
#
#    Product(i = 1 -> # dimensions) |4 x[i] - 2|
#
# over the hypercube 0 <= x[i] <= 1. The value of this integral
# is exactly 1.

# This vector will hold the current vector in the sequence:
point = Vector.Create(dimension)
# Create the sequence:
sequence = HaltonSequence(point, capacity)

print "# iter.  Estimate"
# Compute the integral by summing over all points:
sum = 0.0
for i in range(1, capacity):
	if i % 1000 == 0:
		print "{0:6}  {1:8.4f}".format(i, sum / i)

	# Evaluate the integrand:
	functionValue = 1.0
	for j in range(dimension):
		functionValue *= abs(4.0*point[j]-2.0)
	sum += functionValue

	sequence.MoveNext()

# Print the final result.
print "Final estimate: {0:8.4f}".format(sum / capacity)
print "Exact value: 1.0000"