# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

# simTermStructs

Simulate term structures for LIBOR Market Model

## Syntax

``[ZeroRates,ForwardRates] = simTermStructs(LMM,nPeriods)``
``[ZeroRates,ForwardRates] = simTermStructs(___,Name,Value)``

## Description

example

````[ZeroRates,ForwardRates] = simTermStructs(LMM,nPeriods)` rsimulates future zero curve paths using a specified `LiborMarketModel` object.```

example

````[ZeroRates,ForwardRates] = simTermStructs(___,Name,Value)` adds optional name-value pair arguments. ```

## Examples

collapse all

Create a `LMM` object.

```Settle = datenum('15-Dec-2007'); CurveTimes = [1:5 7 10 20]'; ZeroRates = [.01 .018 .024 .029 .033 .034 .035 .034]'; CurveDates = daysadd(Settle,360*CurveTimes,1); irdc = IRDataCurve('Zero',Settle,CurveDates,ZeroRates); LMMVolFunc = @(a,t) (a(1)*t + a(2)).*exp(-a(3)*t) + a(4); LMMVolParams = [.3 -.02 .7 .14]; numRates = 20; VolFunc(1:numRates-1) = {@(t) LMMVolFunc(LMMVolParams,t)}; Beta = .08; CorrFunc = @(i,j,Beta) exp(-Beta*abs(i-j)); Correlation = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),Beta); LMM = LiborMarketModel(irdc,VolFunc,Correlation,'Period',1)```
```LMM = LiborMarketModel with properties: ZeroCurve: [1x1 IRDataCurve] VolFunctions: {1x19 cell} Correlation: [19x19 double] NumFactors: NaN Period: 1 ```

Simulate the term structures for the specified `LMM` object.

`[ZeroRates, ForwardRates] = simTermStructs(LMM, 20,'nTrials',100);`

## Input Arguments

collapse all

`LiborMarketModel` object, specified using the `LMM` object created using `LiborMarketModel`.

Data Types: `object`

Number of simulation periods, specified as a numeric value. The `nPeriods` value is determined by the swaption expiry and the periodicity of the rates of the model. For example, if you were to price a swaption expiring in 5 years with a semiannual LIBOR Market Model (LMM), then `nPeriods` would be `10`.

Data Types: `double`

### Name-Value Pair Arguments

Specify optional comma-separated pairs of `Name,Value` arguments. `Name` is the argument name and `Value` is the corresponding value. `Name` must appear inside single quotes (`' '`). You can specify several name and value pair arguments in any order as `Name1,Value1,...,NameN,ValueN`.

Example: ```[ZeroRates, ForwardRates] = simTermStructs(LMM, 20,'nTrials',100)```

collapse all

Number of simulated trials (sample paths), specified as a positive scalar integer value of `nPeriods` observations each. If you do not specify a value for this argument, the default is `1`, indicating a single path of correlated state variables.

Data Types: `double`

Flag indicating whether antithetic sampling is used to generate the Gaussian random variates that drive the zero-drift, unit-variance rate Brownian vector dW(t), specified as a Boolean scalar flag. For details on the Brownian vector, see `simBySolution`.

Data Types: `logical`

Direct specification of the dependent random noise process, specified as a numeric value. The `Z` value is used to generate the zero-drift, unit-variance rate Brownian vector dW(t) that drives the simulation. For details, see `simBySolution` for the GBM model.

Data Types: `double`

Maturities to compute at each time step, specified as a numeric vector.

`Tenor` enables you to choose a different set of rates to output than the underlying rates. For example, you may want to simulate quarterly data but only report annual rates; this can be done by specifying the optional input `Tenor`.

The default for `tenor` is the number of rates in the `LiborMarketModel` object as specified by the `Correlation` and `VolFunc` input arguments for the `LiborMarketModel` object.

Data Types: `double`

## Output Arguments

collapse all

Simulated zero-rate term structures, returned as a `nPeriods+1`-by-`nTenors`-by-`nTrials` matrix.

Simulated zero-rate term structures, returned as a `nPeriods+1`-by-`nTenors`-by-`nTrials` matrix.