|
SSJ
3.2.1
Stochastic Simulation in Java
|
This class is a multivariate version of GeometricBrownianMotion. More...
Public Member Functions | |
| MultivariateGeometricBrownianMotion (int c, double[] x0, double[] mu, double[] sigma, MultivariateBrownianMotion mbm) | |
Constructs a new MultivariateGeometricBrownianMotion with parameters \(\mu= \mathtt{mu}\), \(\sigma= \mathtt{sigma}\), and \(S(t_0) = \mathtt{x0}\), using mbm as the underlying MultivariateBrownianMotion. More... | |
| void | setObservationTimes (double[] t, int d) |
Sets the observation times of the MultivariateGeometricBrownianMotion, but also those of the inner MultivariateBrownianMotion. | |
| double [] | nextObservationVector () |
| void | nextObservationVector (double[] obs) |
| Generates and returns the vector of next observations. | |
| double [] | generatePath () |
| void | resetStartProcess () |
Same as in StochasticProcess, but also invokes resetStartProcess for the underlying BrownianMotion object. | |
| void | setParams (int c, double[] x0, double[] mu, double[] sigma) |
| Sets the parameters \(S(t_0) = \mathtt{x0}\), \(\mu= \mathtt{mu}\) and \(\sigma= \mathtt{sigma}\) of the process. More... | |
| void | setStream (RandomStream stream) |
Resets the random stream for the underlying Brownian motion to stream. | |
| RandomStream | getStream () |
| Returns the random stream for the underlying Brownian motion. | |
| NormalGen | getGen () |
| Returns the normal random variate generator used. | |
| MultivariateBrownianMotion | getBrownianMotion () |
| Returns a reference to the MultivariateBrownianMotion object used to generate the process. | |
Public Member Functions inherited from MultivariateStochasticProcess | |
| abstract double [] | generatePath () |
| Generates, returns, and saves the sample path. More... | |
| 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. More... | |
| void | setObservationTimes (double[] t, int d) |
Sets the observation times of the process to a copy of t, with. More... | |
| 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. | |
| abstract void | nextObservationVector (double[] obs) |
Generates and returns in obs the next observation. More... | |
| void | getCurrentObservation (double[] obs) |
| Returns the value of the last generated observation. More... | |
| 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 StochasticProcess | |
| void | setObservationTimes (double[] T, int d) |
Sets the observation times of the process to a copy of T, with. More... | |
| void | setObservationTimes (double delta, int d) |
| Sets equidistant observation times at \(t_j = j\delta\), for. More... | |
| double [] | getObservationTimes () |
| Returns a reference to the array that contains the observation times. More... | |
| int | getNumObservationTimes () |
| Returns the number \(d\) of observation times, excluding the time \(t_0\). | |
| abstract double [] | generatePath () |
| Generates, returns, and saves the sample path \(\{X(t_0), X(t_1), \dots, X(t_d)\}\). More... | |
| double [] | generatePath (RandomStream stream) |
Same as generatePath(), but first resets the stream to stream. | |
| double [] | getPath () |
| Returns a reference to the last generated sample path \(\{X(t_0), ... , X(t_d)\}\). More... | |
| 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. More... | |
| double | getObservation (int j) |
| Returns \(X(t_j)\) from the current sample path. More... | |
| void | resetStartProcess () |
| Resets the observation counter to its initial value \(j=0\), so that the current observation \(X(t_j)\) becomes \(X(t_0)\). More... | |
| 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. More... | |
| double | nextObservation () |
| Generates and returns the next observation \(X(t_j)\) of the stochastic process. More... | |
| int | getCurrentObservationIndex () |
| Returns the value of the index \(j\) corresponding to the time. More... | |
| 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. | |
| abstract void | setStream (RandomStream stream) |
Resets the random stream of the underlying generator to stream. | |
| abstract RandomStream | getStream () |
| Returns the random stream of the underlying generator. | |
| 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 \(k\)-th observation to be generated for a sample path of this process. More... | |
Protected Member Functions | |
| void | init () |
Protected Member Functions inherited from MultivariateStochasticProcess | |
| void | init () |
| void | createPath () |
Protected Member Functions inherited from StochasticProcess | |
| void | init () |
Protected Attributes | |
| NormalGen | gen |
| MultivariateBrownianMotion | mbm |
| double [] | mu |
| double [] | mudt |
Protected Attributes inherited from MultivariateStochasticProcess | |
| double [] | x0 |
| int | c = 1 |
Protected Attributes inherited from StochasticProcess | |
| boolean | observationTimesSet = false |
| double | x0 = 0.0 |
| int | d = -1 |
| int | observationIndex = 0 |
| int | observationCounter = 0 |
| double [] | t |
| double [] | path |
| int [] | observationIndexFromCounter |
Package Attributes | |
| double [] | sigma |
This class is a multivariate version of GeometricBrownianMotion.
It represents a multivariate GBM process \(\{\mathbf{S}(t) = (S_1(t),…,S_c(t)), t\ge0\}\), which can be written as
\[ S_i(t) = S_i(0) \exp\left[ X_i(t) \right], \tag{GBM2} \]
where \(\mathbf{X}(t) = (X_1(t),…,X_c(t))\) is a multivariate Brownian motion. The GBM process is simulated by simulating the BM process \(\mathbf{X}\) (which is stored internally) and taking the exponential.
| MultivariateGeometricBrownianMotion | ( | int | c, |
| double [] | x0, | ||
| double [] | mu, | ||
| double [] | sigma, | ||
| MultivariateBrownianMotion | mbm | ||
| ) |
Constructs a new MultivariateGeometricBrownianMotion with parameters \(\mu= \mathtt{mu}\), \(\sigma= \mathtt{sigma}\), and \(S(t_0) = \mathtt{x0}\), using mbm as the underlying MultivariateBrownianMotion.
The parameters of mbm are automatically reset to \(\mu-\sigma^2/2\) and \(\sigma\), regardless of the original parameters of mbm. The correlation structure is determined by the underlying MultivariateBrownianMotion. The observation times are the same as those of mbm. The generation method depends on that of mbm (sequential, bridge sampling, PCA, etc.).
| void setParams | ( | int | c, |
| double [] | x0, | ||
| double [] | mu, | ||
| double [] | sigma | ||
| ) |
Sets the parameters \(S(t_0) = \mathtt{x0}\), \(\mu= \mathtt{mu}\) and \(\sigma= \mathtt{sigma}\) of the process.
Warning: This method will recompute some quantities stored internally, which may be slow if called repeatedly.
1.8.14