SSJ
V. labo.

umontreal.iro.lecuyer.stochprocess
Class MultivariateBrownianMotionPCABigSigma

java.lang.Object
  extended by umontreal.iro.lecuyer.stochprocess.StochasticProcess
      extended by umontreal.iro.lecuyer.stochprocess.MultivariateStochasticProcess
          extended by umontreal.iro.lecuyer.stochprocess.MultivariateBrownianMotion
              extended by umontreal.iro.lecuyer.stochprocess.MultivariateBrownianMotionPCABigSigma

public class MultivariateBrownianMotionPCABigSigma
extends MultivariateBrownianMotion

A multivariate Brownian motion process {X(t) : t >= 0} sampled entirely using the principal component decomposition (PCA). In this class, a matrix which equals the Kronecker products of two matrices C and Σ must be computed. C is the usual one dimensional Brownian motion covariance matrix and Σ is the matrix that defined the covariance between the one dimensionnal Brownian motion. This Kronecker products is time and memory consuming as it might creates an enormous matrix, matrix that is called BigSigma here. The class MultivariateBrownianMotionPCA provides faster results.


Constructor Summary
MultivariateBrownianMotionPCABigSigma(int c, double[] x0, double[] mu, double[] sigma, double[][] corrZ, NormalGen gen)
          Constructs a new MultivariateBrownianMotionPCABigSigma with parameters μ = mu, σ = sigma, correlation matrix Rz = corrZ, and initial value X(t0) = x0.
MultivariateBrownianMotionPCABigSigma(int c, double[] x0, double[] mu, double[] sigma, double[][] corrZ, RandomStream stream)
          Constructs a new MultivariateBrownianMotionPCABigSigma with parameters μ = mu, σ = sigma, correlation matrix Rz = corrZ, and initial value X(t0) = x0.
 
Method Summary
 double[] generatePath()
          Generates, returns, and saves the sample path {X(t0),X(t1),…,X(td)}, which can then be accessed via getPath, getSubpath, or getObservation.
 double[] generatePath(double[] uniform01)
          Same as generatePath() but requires a vector of uniform random numbers which are used to generate the path.
 void setParams(int c, double[] x0, double[] mu, double[] sigma, double[][] corrZ)
          Sets the dimension c = c, the initial value X(t0) = x0, the average μ = mu, the volatility σ = sigma and the correlation matrix to corrZ.
 
Methods inherited from class umontreal.iro.lecuyer.stochprocess.MultivariateBrownianMotion
generatePath, getGen, getMu, getStream, nextObservationVector, nextObservationVector, nextObservationVector, nextObservationVector, setParams, setStream
 
Methods inherited from class umontreal.iro.lecuyer.stochprocess.MultivariateStochasticProcess
getCurrentObservation, getDimension, getObservation, getObservation, getSubpath, getX0, setObservationTimes
 
Methods inherited from class umontreal.iro.lecuyer.stochprocess.StochasticProcess
getArrayMappingCounterToIndex, getCurrentObservation, getCurrentObservationIndex, getNbObservationTimes, getObservation, getObservationTimes, getPath, getX0, hasNextObservation, nextObservation, resetStartProcess, setObservationTimes, setX0
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultivariateBrownianMotionPCABigSigma

public MultivariateBrownianMotionPCABigSigma(int c,
                                             double[] x0,
                                             double[] mu,
                                             double[] sigma,
                                             double[][] corrZ,
                                             RandomStream stream)
Constructs a new MultivariateBrownianMotionPCABigSigma with parameters μ = mu, σ = sigma, correlation matrix Rz = corrZ, and initial value X(t0) = x0. The normal variates Zj in are generated by inversion using the RandomStream stream.


MultivariateBrownianMotionPCABigSigma

public MultivariateBrownianMotionPCABigSigma(int c,
                                             double[] x0,
                                             double[] mu,
                                             double[] sigma,
                                             double[][] corrZ,
                                             NormalGen gen)
Constructs a new MultivariateBrownianMotionPCABigSigma with parameters μ = mu, σ = sigma, correlation matrix Rz = corrZ, and initial value X(t0) = x0. The normal variates Zj in are generated by gen.

Method Detail

setParams

public void setParams(int c,
                      double[] x0,
                      double[] mu,
                      double[] sigma,
                      double[][] corrZ)
Description copied from class: MultivariateBrownianMotion
Sets the dimension c = c, the initial value X(t0) = x0, the average μ = mu, the volatility σ = sigma and the correlation matrix to corrZ. The vectors x0, mu ans sigma must be of size c as well as the matrix corrZ must be of size c x c. Warning: This method will recompute some quantities stored internally, which may be slow if called too frequently.

Overrides:
setParams in class MultivariateBrownianMotion

generatePath

public double[] generatePath()
Description copied from class: MultivariateStochasticProcess
Generates, returns, and saves the sample path {X(t0),X(t1),…,X(td)}, which can then be accessed via getPath, getSubpath, or getObservation. The generation method depends on the process type. If path[] denotes the returned array, then path[cj + i-1] contains Xi(tj) for j = 0,..., d and i = 1,..., c.

Overrides:
generatePath in class MultivariateBrownianMotion

generatePath

public double[] generatePath(double[] uniform01)
Description copied from class: MultivariateBrownianMotion
Same as generatePath() but requires a vector of uniform random numbers which are used to generate the path.

Overrides:
generatePath in class MultivariateBrownianMotion

SSJ
V. labo.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.