Note: This page has been translated by MathWorks. Please click here

To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

**Class: **gbm

Simulate approximate solution of diagonal-drift GBM processes

`[Paths,Times,Z] = simBySolution(MDL,NPERIODS)`

[Paths,Times,Z] = simBySolution(MDL,NPERIODS,Name,Value)

`[Paths,Times,Z] = simBySolution(MDL,NPERIODS)`

simulates
approximate solution of diagonal-drift for geometric Brownian motion
(GBM) processes.

`[Paths,Times,Z] = simBySolution(MDL,NPERIODS,Name,Value)`

simulates
approximate solution of diagonal-drift for GBM processes with additional
options specified by one or more `Name,Value`

pair
arguments.

The `simBySolution`

method simulates `NTRIALS`

sample
paths of `NVARS`

correlated state variables, driven
by `NBROWNS`

Brownian motion sources of risk over `NPERIODS`

consecutive
observation periods, approximating continuous-time GBM short-rate
models by an approximation of the closed-form solution.

Consider a separable, vector-valued GBM model of the form:

$$d{X}_{t}=\mu (t){X}_{t}dt+D(t,{X}_{t})V(t)d{W}_{t}$$

where:

*X*is an_{t}`NVARS`

-by-`1`

state vector of process variables.*μ*is an`NVARS`

-by-`NVARS`

generalized expected instantaneous rate of return matrix.*V*is an`NVARS`

-by-`NBROWNS`

instantaneous volatility rate matrix.*dW*is an_{t}`NBROWNS`

-by-`1`

Brownian motion vector.

The `simBySolution`

method simulates the state
vector *X _{t}* using an approximation
of the closed-form solution of diagonal-drift models.

When evaluating the expressions, `simBySolution`

assumes
that all model parameters are piecewise-constant over each simulation
period.

In general, this is *not* the exact solution
to the models, because the probability distributions of the simulated
and true state vectors are identical *only* for
piecewise-constant parameters.

When parameters are piecewise-constant over each observation
period, the simulated process is exact for the observation times at
which *X _{t}* is sampled.

The input argument

`Z`

allows you to directly specify the noise generation process. This process takes precedence over the`Correlation`

parameter of the`sde`

object and the value of the`Antithetic`

input flag. If you do not specify a value for`Z`

,`simBySolution`

generates correlated Gaussian variates, with or without antithetic sampling as requested.Gaussian diffusion models, such as HWV, allow negative states. By default,

`simBySolution`

does nothing to prevent negative states, nor does it guarantee that the model be strictly mean-reverting. Thus, the model may exhibit erratic or explosive growth.The end-of-period

`Processes`

argument allows you to terminate a given trial early. At the end of each time step,`simBySolution`

tests the state vector*X*for an all-_{t}`NaN`

condition. Thus, to signal an early termination of a given trial, all elements of the state vector*X*must be_{t}`NaN`

. This test enables a user-defined`Processes`

function to signal early termination of a trial, and offers significant performance benefits in some situations (for example, pricing down-and-out barrier options).

Ait-Sahalia, Y. “Testing Continuous-Time Models of the
Spot Interest Rate.” *The Review of Financial Studies*,
Spring 1996, Vol. 9, No. 2, pp. 385–426.

Ait-Sahalia, Y. “Transition Densities for Interest Rate
and Other Nonlinear Diffusions.” *The Journal of
Finance*, Vol. 54, No. 4, August 1999.

Glasserman, P. *Monte Carlo Methods in Financial Engineering.* New
York, Springer-Verlag, 2004.

Hull, J. C. *Options, Futures, and Other Derivatives*,
5th ed. Englewood Cliffs, NJ: Prentice Hall, 2002.

Johnson, N. L., S. Kotz, and N. Balakrishnan. *Continuous
Univariate Distributions.* Vol. 2, 2nd ed. New York, John
Wiley & Sons, 1995.

Shreve, S. E. *Stochastic Calculus for Finance II:
Continuous-Time Models.* New York: Springer-Verlag, 2004.

`gbm`

| `simByEuler`

| `simBySolution`

| `simulate`

Was this topic helpful?