Data Analysis Mathematics Linear Algebra Statistics
New Version 8.1!

Supports .NET 6.0. Try it for free with our fully functional 60-day trial version. 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.

```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"```