SSJ API Documentation
Stochastic Simulation in Java
Loading...
Searching...
No Matches
umontreal.ssj.discrepancy.DiscShift2 Class Reference

This class computes the discrepancy in [81]  (eq. More...

Inheritance diagram for umontreal.ssj.discrepancy.DiscShift2:
umontreal.ssj.discrepancy.Discrepancy umontreal.ssj.discrepancy.DiscShift2Lattice

Public Member Functions

 DiscShift2 (double[][] points, int n, int s)
 Constructor with the \(n\) points \(P_i = \) points[i] in dimension \(s\), with all weights \(\gamma_j =1\).
 DiscShift2 (double[][] points, int n, int s, double[] gamma)
 Constructor with the \(n\) points \(P_i = \) points[i] in dimension \(s\), with the weights \(\gamma_j = \) gamma[j-1],.
 DiscShift2 (int n, int s, double[] gamma)
 The number of points is \(n\), the dimension \(s\), and the.
 DiscShift2 (PointSet set)
 Constructor with the point set set.
 DiscShift2 ()
 Empty constructor.
double compute (double[][] points, int n, int s)
 Computes the discrepancy ( shift2 ) for the first \(n\) points of set points in dimension \(s\).
double compute (double[][] points, int n, int s, double[] gamma)
 Computes the discrepancy ( shift2 ) for the first \(n\) points of set points in dimension \(s\) and with weight \(\gamma_r = \) gamma[r-1].
double compute (double[] T, int n)
 Computes the discrepancy ( shift2dim1 ) for the first \(n\) points of \(T\) in 1 dimension, with weight \(\gamma= 1\).
double compute (double[] T, int n, double gamma)
 Computes the discrepancy ( shift2dim1 ) for the first \(n\) points of \(T\) in 1 dimension, with weight \(\gamma=\) gamma.
Public Member Functions inherited from umontreal.ssj.discrepancy.Discrepancy
 Discrepancy (double[][] points, int n, int s)
 Constructor with the \(n\) points points[i] in \(s\) dimensions.
 Discrepancy (double[][] points, int n, int s, double[] gamma)
 Constructor with the \(n\) points points[i] in \(s\) dimensions and the \(s\) weight factors gamma[ \(j\)], \(j = 0, 1, …, (s-1)\).
 Discrepancy (int n, int s, double[] gamma)
 The number of points is \(n\), the dimension \(s\), and the.
 Discrepancy (PointSet set)
 Constructor with the point set set.
 Discrepancy ()
 Empty constructor.
double compute ()
 Computes the discrepancy of all the points in maximal dimension (dimension of the points).
double compute (int s)
 Computes the discrepancy of all the points in dimension \(s\).
double compute (double[][] points)
 Computes the discrepancy of all the points of points in maximum dimension.
double compute (double[] T)
 Computes the discrepancy of all the points of T in 1 dimension.
double compute (PointSet set, double[] gamma)
 Computes the discrepancy of all the points in set in the same dimension as the point set and with weights gamma.
double compute (PointSet set)
 Computes the discrepancy of all the points in set in the same dimension as the point set.
int getNumPoints ()
 Returns the number of points \(n\).
int getDimension ()
 Returns the dimension of the points \(s\).
void setPoints (double[][] points, int n, int s)
 Sets the points to points and the dimension to \(s\).
void setPoints (double[][] points)
 Sets the points to points.
void setGamma (double[] gam, int s)
 Sets the weight factors to gam for each dimension up to \(s\).
double[] getGamma ()
 Returns the weight factors gamma for each dimension up to \(s\).
String toString ()
 Returns the parameters of this class.
String formatPoints ()
 Returns all the points of this class.
String getName ()
 Returns the name of the Discrepancy.

Additional Inherited Members

Static Public Member Functions inherited from umontreal.ssj.discrepancy.Discrepancy
static double[][] toArray (PointSet set)
 Returns all the \(n\) points ( \(s\)-dimensional) of.
static DoubleArrayList sort (double[] T, int n)
 Sorts the first \(n\) points of \(T\).

Detailed Description

This class computes the discrepancy in [81]  (eq.

15) for the randomly shifted points of a set \(\mathcal{P}\). It is given by

\[ [\mathcal{D}(\mathcal{P})]^2 = -1 + \frac{1}{n^2} \sum_{i=1}^n \sum_{j=1}^n \prod_{r=1}^s \left[1 + \frac{\gamma_r^2}{2} B_2(\{x_{ir} - x_{jr}\}) - \frac{\gamma_r^4}{12}B_4(\{x_{ir} - x_{jr}\}) \right], \tag{shift2} \]

where \(n\) is the number of points of \(\mathcal{P}\), \(s\) is the dimension of the points, \(x_{ir}\) is the \(r\)-th coordinate of point \(i\), and the \(\gamma_r\) are arbitrary positive weights. The \(B_{\alpha}(x)\) are the Bernoulli polynomials [1]  (chap. 23) of degree \(\alpha\) (see umontreal.ssj.util.Num.bernoulliPoly in class util/Num). The notation \(\{x\}\) means the fractional part of \(x\), defined as \(\{x\} = x \bmod1\). In one dimension, the formula simplifies to

\[ [\mathcal{D}(\mathcal{P})]^2 = \frac{1}{n^2} \sum_{i=1}^n \sum_{j=1}^n \left[\frac{\gamma^2}{2} B_2(\{x_i - x_j\}) - \frac{\gamma^4}{12}B_4(\{x_i - x_j\}) \right]. \tag{shift2dim1} \]

The discrepancy represents a worst-case error criterion for the approximation of integrals, when the integrands have a certain degree of smoothness and lie in a Hilbert space \(\mathcal{H}\) with a reproducing kernel \(K\) given by

\[ K(\mathbf{x},\mathbf{y}) = \prod_{r=1}^s \left[ - \frac{\gamma_r^4}{4!} B_4(\{x_r-y_r\}) + \sum_{\alpha=0}^2 \frac{\gamma_r^{2\alpha}}{(\alpha!)^2} B_{\alpha}(x_r)B_{\alpha}(y_r) \right], \]

The norm of the vectors in \(\mathcal{H}\) is defined by

\[ \| f\|^2 = \sum_{u \subseteq S}\sum_{v \subseteq u}\gamma_u^{-2}\gamma_v^{-2} \int_{[0,1]^v}d\mathbf{x}_v\left[\int_{[0,1]^{S-v}} \frac{\partial^{|u| + |v|}f}{\partial\mathbf{x}_u\partial\mathbf{x}_v} d\mathbf{x}_{S-v} \right]^2, \]

where \(S= \{1, …, s\}\) is a set of coordinate indices, \(u \subseteq S\), and \(\gamma_u = \prod_{r\in u} \gamma_r\).

Definition at line 69 of file DiscShift2.java.

Constructor & Destructor Documentation

◆ DiscShift2() [1/5]

umontreal.ssj.discrepancy.DiscShift2.DiscShift2 ( double points[][],
int n,
int s )

Constructor with the \(n\) points \(P_i = \) points[i] in dimension \(s\), with all weights \(\gamma_j =1\).

points[i][j] is the j-th coordinate of point i. Both indices i and j starts at 0.

Definition at line 95 of file DiscShift2.java.

◆ DiscShift2() [2/5]

umontreal.ssj.discrepancy.DiscShift2.DiscShift2 ( double points[][],
int n,
int s,
double[] gamma )

Constructor with the \(n\) points \(P_i = \) points[i] in dimension \(s\), with the weights \(\gamma_j = \) gamma[j-1],.

\(j = 1, …, s\). points[i][j] is the j-th coordinate of point i. Both indices i and j starts at 0.

Definition at line 106 of file DiscShift2.java.

◆ DiscShift2() [3/5]

umontreal.ssj.discrepancy.DiscShift2.DiscShift2 ( int n,
int s,
double[] gamma )

The number of points is \(n\), the dimension \(s\), and the.

\(s\) weight factors are gamma[ \(j\)], \(j = 0, 1, …, (s-1)\). The \(n\) points will be chosen later.

Definition at line 116 of file DiscShift2.java.

◆ DiscShift2() [4/5]

umontreal.ssj.discrepancy.DiscShift2.DiscShift2 ( PointSet set)

Constructor with the point set set.

All the points are copied in an internal array.

Definition at line 124 of file DiscShift2.java.

◆ DiscShift2() [5/5]

umontreal.ssj.discrepancy.DiscShift2.DiscShift2 ( )

Empty constructor.

One must set the points, the dimension, and the weight factors before calling any method.

Definition at line 132 of file DiscShift2.java.

Member Function Documentation

◆ compute() [1/4]

double umontreal.ssj.discrepancy.DiscShift2.compute ( double[] T,
int n )

Computes the discrepancy ( shift2dim1 ) for the first \(n\) points of \(T\) in 1 dimension, with weight \(\gamma= 1\).

Reimplemented from umontreal.ssj.discrepancy.Discrepancy.

Reimplemented in umontreal.ssj.discrepancy.DiscShift2Lattice.

Definition at line 189 of file DiscShift2.java.

◆ compute() [2/4]

double umontreal.ssj.discrepancy.DiscShift2.compute ( double[] T,
int n,
double gamma )

Computes the discrepancy ( shift2dim1 ) for the first \(n\) points of \(T\) in 1 dimension, with weight \(\gamma=\) gamma.

Reimplemented from umontreal.ssj.discrepancy.Discrepancy.

Reimplemented in umontreal.ssj.discrepancy.DiscShift2Lattice.

Definition at line 198 of file DiscShift2.java.

◆ compute() [3/4]

double umontreal.ssj.discrepancy.DiscShift2.compute ( double points[][],
int n,
int s )

Computes the discrepancy ( shift2 ) for the first \(n\) points of set points in dimension \(s\).

All weights \(\gamma_r = 1\).

Reimplemented from umontreal.ssj.discrepancy.Discrepancy.

Reimplemented in umontreal.ssj.discrepancy.DiscShift2Lattice.

Definition at line 140 of file DiscShift2.java.

◆ compute() [4/4]

double umontreal.ssj.discrepancy.DiscShift2.compute ( double points[][],
int n,
int s,
double[] gamma )

Computes the discrepancy ( shift2 ) for the first \(n\) points of set points in dimension \(s\) and with weight \(\gamma_r = \) gamma[r-1].

Reimplemented from umontreal.ssj.discrepancy.Discrepancy.

Reimplemented in umontreal.ssj.discrepancy.DiscShift2Lattice.

Definition at line 150 of file DiscShift2.java.


The documentation for this class was generated from the following file: