SSJ
V. labo.

umontreal.iro.lecuyer.stochprocess
Class MultivariateBrownianMotionPCA

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.MultivariateBrownianMotionPCA

public class MultivariateBrownianMotionPCA
extends MultivariateBrownianMotion

A multivariate Brownian motion process {X(t) : t >= 0} sampled entirely using the principal component decomposition (PCA), as explained in, page 92. We construct the same matrix Σ as in MultivariateBrownianMotion and decompose it as Σ = BBt via PCA. We also compute the matrix C whose element (i, j) is Cov[B(ti+1), B(tj+1)] = min(ti+1, tj+1) and its PCA decomposition C = AAt, as in class BrownianMotionPCA.


Constructor Summary
MultivariateBrownianMotionPCA(int c, double[] x0, double[] mu, double[] sigma, double[][] corrZ, NormalGen gen)
          Constructs a new MultivariateBrownianMotionPCA with parameters μ = mu, σ = sigma, correlation matrix Rz = corrZ, and initial value X(t0) = x0.
MultivariateBrownianMotionPCA(int c, double[] x0, double[] mu, double[] sigma, double[][] corrZ, RandomStream stream)
          Constructs a new MultivariateBrownianMotionPCA with parameters μ = mu, σ = sigma, correlation matrix Rz = corrZ, and initial value X(t0) = x0.
 
Method Summary
 double[] generatePath()
          Sets the parameters
 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

MultivariateBrownianMotionPCA

public MultivariateBrownianMotionPCA(int c,
                                     double[] x0,
                                     double[] mu,
                                     double[] sigma,
                                     double[][] corrZ,
                                     RandomStream stream)
Constructs a new MultivariateBrownianMotionPCA 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.


MultivariateBrownianMotionPCA

public MultivariateBrownianMotionPCA(int c,
                                     double[] x0,
                                     double[] mu,
                                     double[] sigma,
                                     double[][] corrZ,
                                     NormalGen gen)
Constructs a new MultivariateBrownianMotionPCA 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()
Sets the parameters

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.