A multivariate Brownian motion process \(\{\mathbf{X}(t) : t \geq0 \}\) sampled via bridge sampling. More...
Public Member Functions | |
| MultivariateBrownianMotionBridge (int c, double[] x0, double[] mu, double[] sigma, double[][] corrZ, RandomStream stream) | |
| Constructs a new MultivariateBrownianMotionBridge with parameters \(\boldsymbol{\mu}= \)mu,. | |
| MultivariateBrownianMotionBridge (int c, double[] x0, double[] mu, double[] sigma, double[][] corrZ, NormalGen gen) | |
| Constructs a new MultivariateBrownianMotionBridge with parameters \(\boldsymbol{\mu}= \)mu,. | |
| double[] | generatePath () |
| Generates, returns, and saves the sample path. | |
| void | resetStartProcess () |
| Resets the observation counter to its initial value \(j=0\), so that the current observation \(X(t_j)\) becomes \(X(t_0)\). | |
| double[] | nextObservationVector () |
| Generates and returns the next observation \(\mathbf{X}(t_j)\) of the multivariate stochastic process in a vector created automatically. | |
| void | nextObservationVector (double[] obs) |
| Generates and returns in obs the next observation. | |
| Public Member Functions inherited from umontreal.ssj.stochprocess.MultivariateBrownianMotion | |
| MultivariateBrownianMotion (int c, double[] x0, double[] mu, double[] sigma, double[][] corrZ, RandomStream stream) | |
| Constructs a new MultivariateBrownianMotion with parameters. | |
| MultivariateBrownianMotion (int c, double[] x0, double[] mu, double[] sigma, double[][] corrZ, NormalGen gen) | |
| Constructs a new MultivariateBrownianMotion with parameters. | |
| double[] | nextObservationVector (double nextTime, double[] obs) |
| Generates and returns the vector of next observations, at time \(t_{j+1} =
\mathtt{nextTime}\), using the previous observation time \(t_j\) defined earlier (either by this method or by setObservationTimes), as well as the value of the previous observation \(X(t_j)\). | |
| double[] | nextObservationVector (double x[], double dt) |
| Generates an observation (vector) of the process in dt time units, assuming that the process has (vector) value \(x\) at the current time. | |
| double[] | generatePath (double[] uniform01) |
| Same as generatePath() but requires a vector of uniform random numbers which are used to generate the path. | |
| double[] | generatePath (RandomStream stream) |
| Same as generatePath(), but first resets the stream to stream. | |
| void | setParams (int c, double x0[], double mu[], double sigma[], double corrZ[][]) |
| Sets the dimension \(c = \mathtt{c}\), the initial value. | |
| void | setParams (double x0[], double mu[], double sigma[]) |
| Sets the dimension \(c = \mathtt{c}\), the initial value. | |
| void | setStream (RandomStream stream) |
| Resets the random stream of the normal generator to stream. | |
| RandomStream | getStream () |
| Returns the random stream of the normal generator. | |
| NormalGen | getGen () |
| Returns the normal random variate generator used. | |
| double[] | getMu () |
| Returns the vector mu. | |
| Public Member Functions inherited from umontreal.ssj.stochprocess.MultivariateStochasticProcess | |
| void | getSubpath (double[] subpath, int[] pathIndices) |
| Returns in subpath the values of the process at a subset of the observation times, specified as the times \(t_j\) whose indices. | |
| void | setObservationTimes (double[] t, int d) |
| Sets the observation times of the process to a copy of t, with. | |
| void | getObservation (int j, double[] obs) |
| Returns \(\mathbf{X}(t_j)\) in the \(c\)-dimensional vector obs. | |
| double | getObservation (int j, int i) |
| Returns \(X_i(t_j)\) from the current sample path. | |
| void | getCurrentObservation (double[] obs) |
| Returns the value of the last generated observation. | |
| double[] | getX0 (double[] x0) |
| Returns in x0 the initial value \(\mathbf{X}(t_0)\) for this process. | |
| int | getDimension () |
| Returns the dimension of \(\mathbf{X}\). | |
| Public Member Functions inherited from umontreal.ssj.stochprocess.StochasticProcess | |
| void | setObservationTimes (double delta, int d) |
| Sets equidistant observation times at \(t_j = j\delta\), for. | |
| double[] | getObservationTimes () |
| Returns a reference to the array that contains the observation times. | |
| int | getNumObservationTimes () |
| Returns the number \(d\) of observation times, excluding the time \(t_0\). | |
| double[] | getPath () |
| Returns a reference to the last generated sample path \(\{X(t_0), ... ,
X(t_d)\}\). | |
| double | getObservation (int j) |
| Returns \(X(t_j)\) from the current sample path. | |
| boolean | hasNextObservation () |
| Returns true if \(j<d\), where \(j\) is the number of observations of the current sample path generated since the last call to resetStartProcess. | |
| double | nextObservation () |
| Generates and returns the next observation \(X(t_j)\) of the stochastic process. | |
| int | getCurrentObservationIndex () |
| Returns the value of the index \(j\) corresponding to the time. | |
| double | getCurrentObservation () |
| Returns the value of the last generated observation \(X(t_j)\). | |
| double | getX0 () |
| Returns the initial value \(X(t_0)\) for this process. | |
| void | setX0 (double s0) |
| Sets the initial value \(X(t_0)\) for this process to s0, and reinitializes. | |
| int[] | getArrayMappingCounterToIndex () |
| Returns a reference to an array that maps an integer \(k\) to \(i_k\), the index of the observation \(S(t_{i_k})\) corresponding to the. | |
A multivariate Brownian motion process \(\{\mathbf{X}(t) : t \geq0 \}\) sampled via bridge sampling.
We use a Cholesky decomposition of the relevant covariance matrix to generate the next \(c\)-dimensional vector at each step of the bridge sampling algorithm. For this, we construct the same matrix \(\boldsymbol{\Sigma}\) as in
MultivariateBrownianMotion and we compute its Cholesky decomposition \(\boldsymbol{\Sigma}= B B^{\mathsf{t}}\).
<div class="SSJ-bigskip"></div><div class=
"SSJ-bigskip"></div>
Definition at line 46 of file MultivariateBrownianMotionBridge.java.
| umontreal.ssj.stochprocess.MultivariateBrownianMotionBridge.MultivariateBrownianMotionBridge | ( | int | c, |
| double[] | x0, | ||
| double[] | mu, | ||
| double[] | sigma, | ||
| double | corrZ[][], | ||
| RandomStream | stream ) |
Constructs a new MultivariateBrownianMotionBridge with parameters \(\boldsymbol{\mu}= \)mu,.
\(\boldsymbol{\sigma}= \)sigma, correlation matrix \(\mathbf{R}_z = \)corrZ, and initial value \(\mathbf{X}(t_0) = \)x0. The normal variates \(Z_j\) in are generated by inversion using the umontreal.ssj.rng.RandomStream stream.
Definition at line 65 of file MultivariateBrownianMotionBridge.java.
| umontreal.ssj.stochprocess.MultivariateBrownianMotionBridge.MultivariateBrownianMotionBridge | ( | int | c, |
| double[] | x0, | ||
| double[] | mu, | ||
| double[] | sigma, | ||
| double | corrZ[][], | ||
| NormalGen | gen ) |
Constructs a new MultivariateBrownianMotionBridge with parameters \(\boldsymbol{\mu}= \)mu,.
\(\boldsymbol{\sigma}= \)sigma, correlation matrix \(\mathbf{R}_z = \)corrZ, and initial value \(\mathbf{X}(t_0) = \)x0. The normal variates \(Z_j\) in are generated by gen.
Definition at line 82 of file MultivariateBrownianMotionBridge.java.
| double[] umontreal.ssj.stochprocess.MultivariateBrownianMotionBridge.generatePath | ( | ) |
Generates, returns, and saves the sample path.
\(\{\mathbf{X}(t_0), \mathbf{X}(t_1), …, \mathbf{X}(t_d)\}\), 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 \(X_i(t_j)\) for \(j=0,…,d\) and \(i=1,…,c\).
Reimplemented from umontreal.ssj.stochprocess.MultivariateBrownianMotion.
Definition at line 90 of file MultivariateBrownianMotionBridge.java.
| double[] umontreal.ssj.stochprocess.MultivariateBrownianMotionBridge.nextObservationVector | ( | ) |
Generates and returns the next observation \(\mathbf{X}(t_j)\) of the multivariate stochastic process in a vector created automatically.
The processe is sampled sequentially, i.e. if the last observation generated was for time \(t_{j-1}\), the next observation returned will be for time \(t_j\).
Reimplemented from umontreal.ssj.stochprocess.MultivariateBrownianMotion.
Definition at line 134 of file MultivariateBrownianMotionBridge.java.
| void umontreal.ssj.stochprocess.MultivariateBrownianMotionBridge.nextObservationVector | ( | double[] | obs | ) |
Generates and returns in obs the next observation.
\(\mathbf{X}(t_j)\) of the multivariate stochastic process. The processe is sampled sequentially, i.e. if the last observation generated was for time \(t_{j-1}\), the next observation returned will be for time \(t_j\).
Reimplemented from umontreal.ssj.stochprocess.MultivariateBrownianMotion.
Definition at line 138 of file MultivariateBrownianMotionBridge.java.
| void umontreal.ssj.stochprocess.MultivariateBrownianMotionBridge.resetStartProcess | ( | ) |
Resets the observation counter to its initial value \(j=0\), so that the current observation \(X(t_j)\) becomes \(X(t_0)\).
This method should be invoked before generating observations sequentially one by one via nextObservation, for a new sample path.
Reimplemented from umontreal.ssj.stochprocess.StochasticProcess.
Definition at line 128 of file MultivariateBrownianMotionBridge.java.